By: Michael J. Petty
Over the last 15 years, a lot has changed in IT even though we still face many of the same challenges today as an industry. One of the big challenges the IT industry is facing is the high rate of project failure. It has been shown by many surveys and studies by a number of organizations that nearly 70% of IT projects fail. A failed project can fall into any of the following categories:
Delivers no value to the business
Doesn't deliver all the required functionality
By its nature, software systems are complex and are under continual pressure to change due to the needs of the business. It's a combination of art and science involving lots of competing opinions, tools and methodologies. In my opinion, the solutions that work best are the ones that are custom-fit to the organization, company culture, people and constraints under which the software project is being implemented.
Another key issue that few people discuss is the relative youth of the IT industry. The first electronic digital computers were developed between 1940 and 1945 which were used for military applications. Businesses started to leverage them in the 1950's. Compared to other industries such as medicine, aeronautics or electrical engineering, software is relatively new. As an industry, we're still trying to figure-out how to build high-quality systems on time, within budget that meet the business' needs. What makes information systems development hard to master, is the fact that it's a fast-moving target. The rate of innovation is incredible and I think that history will show that we're living through the heyday of computer technology innovation. There are many that believe that software development cannot be estimated accurately and that any attempt to do so is a work of fiction. I belive that software can be accurately estimated, however, there are a number of factors that influence the success of projects as follows:
Understanding of the problem being solved.
Selection of viable technologies that address the project's technical requirements.
Accurate and honest estimates.
A team that is competent with the tools, technologies and concepts being utilized.
An ongoing working relationship between the business and the development team.
A viable software development workflow to include proper development environments and source code management.
A proper software integration, testing and release process.
Accurate and honest status reporting of the project's progress.