News >> Viewpoints

Software development outsourcing takes off, but dissappoints many CIO`s As business leaders become more familiar with the benefits of technology, including the streamlining of business processes and enhanced productivity, outsourced software development projects are increasing.

At the same time, more organisations are becoming disillusioned with bespoke software implementations. The main reason is the fact that many software development organisations do not have a solid understanding of the principles that underlie implementations, and should govern all phases of the implementation. They include a sound understanding of software solution architecture, the software development lifecycle (SDLC) and a solid engineering and project management approach.

Waterfalls and agility

There are a number of methodologies for managing the SDLC, falling into two main categories: the waterfall approach and the agile, or iterative, methodology. With the first - currently the most common in SA - scoping, planning and requirement assessment is conducted at the beginning of the project.

While this method is sound in its theoretical approach to development, it does not allow for dynamic changes in an organisation, giving limited flexibility in addressing new requirements or challenges. And with the challenges inherent in the new-age technologies common today, the solution must be prototyped before rollout - which is not easily done when following the waterfall approach.

The agile methodology follows a similar procedure, but is done in small `chunks`. Thus, each project deliverable is subject to the above process.

This allows the client and developer to draw an almost `real-time` view of the project.

However, for this approach to be successful, the software developer must have a good understanding of the `bigger picture` and software architecture principles. It is often necessary to combine methodologies to ensure a successful implementation.

Another challenge facing developers is the lack of understanding of new-age technologies on the part of decision-makers.

Get your hands off my stack

Then there is `turf protection` in software development and lack of knowledge sharing. Often, companies employ staff that is reluctant to share information. When the specifications for projects are provided and development undertaken, the development team does not always gain a true understanding of what is required.

Inaccurate implementation and, hence, delays in delivery, are thus a result of incorrect system requirements being communicated. To address this challenge, a co-sourcing model is needed, in which the team responsible for development works closely with and mentors the internal development team that will deliver and maintain the system. This also enables the skills transfer necessary in a solution that delivers ongoing business benefits and scalability.

Another result of incorrectly conveyed system requirements is that systems can appear to have `bugs` as, when testing is conducted, errors are received. These are due to the fact that - when writing the code - developers have been unable to plan for every eventuality. This can be addressed by implementing biweekly or monthly user acceptance testing, including regression testing.

This reduces the number of bugs that occur late in the process. Thus, agile methodologies assist in reducing development time and capex, as both the client and development team are able to draw a `real-time snap-shot` view of the project.

The challenges facing the software development industry which lead to issues around delivery can be addressed by selecting the correct partner, ensuring that all involved parties are correctly educated, and that the correct development methodology is followed.

Tags: Viewpoints