Software Development About People

Anyone involved with software development projects knows they have a very high rate of failure. According to the Standish Group’s 2009 Chaos Report, which tracks IT software project success rates, less than a third of surveyed IT software projects undertaken in the past two years were rated successful, meaning they came in on time, on budget and with required features. Forty-four percent were challenged, meaning they were late, over budget, or lacked required features, and 24 percent failed completely, meaning they were cancelled or never used.

As if the risk of failure wasn’t great enough for in-house projects, many of today’s software projects are outsourced to overseas partners as a way to cut costs, speed time to market, and focus an organization’s internal resources on what it does best.

When handled intelligently, outsourcing can be a very successful way to build new software quickly and inexpensively. However, when companies outsource solely as a way to cut costs, they invite failure. Why is this? Because there’s much more to successful software development than low cost, technical expertise and intelligent processes. Perhaps more than most undertakings, successful software development depends on people.

Software development remains a predominantly collaborative, creative endeavor requiring just the right mix of hard skills, such as software programming, architecture, and engineering, and soft skills, such as communication, collaboration, and project management. When teams are separated by oceans, the value of both soft and hard skills is magnified.

That’s why if you intend to outsource a development project, it’s preferable to seek out a development partner that goes beyond typical mainstream certifications. Ideally your partner should provide its own structured, effective system for training and developing its employees with the education, certifications, and experience they need to acquire the most advanced hard and soft skills.

Hard Skills

Hard skills are about more than the requisite Java or .NET skills and certifications. A growing number of today’s development projects require expertise and experience in complex software architecture and engineering. Resulting applications must be able to scale appropriately to meet a client’s shifting and often unpredictable needs in the Internet age.

A company with very mature IT operations and in-house expertise can outsource successfully to just about any competent overseas partner. However, many IT departments will not succeed without the benefit of equal partners who come with the education, experience, and confidence to ask the right architectural questions, point out missing or conflicting requirements, and suggest improvements in the process or solution that benefit usability, functionality, scalability or security.

Project Management

Software development projects often have complex requirements with many dependencies, and involve multiple players with different agendas and interests. Changes in requirements are frequent and unforeseen issues can suddenly arise at any phase of the process.

Achieving success at low cost requires project managers who not only have the requisite PMI or related certifications, but also the project management experience on projects of similar size and complexity to your own to handle these issues. A truly skilled, experienced project manager will discover, correct, and prevent project flaws and weaknesses early in the development process and help to guarantee high quality consistent results on time and on budget. Good project managers can also identify process improvements that will get your project out the door more quickly, saving significant time and expense.