Successful software development relies on business and developers understanding each other

THE SOFTWARE INDUSTRY started in the early 1960s when universities and businesses first began to use computers and to seek out programs to do certain computing tasks. Many of these programs were written in-house by full-time staff programmers. Some were distributed freely between users of a particular machine for no charge. But others were done on a commercial basis, and the very first standalone software firms started in the US in the 1960s.

The industry expanded greatly with the rise of the personal computer in the mid-1970s, which created a growing market for games, applications, and utilities. And gradually the concept that software should be bought and paid for took hold. The software industry has continued to grow with the growing need of businesses and consumers alike for more applications, tools and utilities.

As the software development industry matures, business is constantly demanding more flexibility, more responsiveness and more scope for changing requirements further into the development process. While this responsiveness is needed in order to remain competitive in a rapidly changing marketplace, business often doesn`t know how to go about achieving it, or even what it really needs.

"Business also requires tighter control of spend," points out , technical director at Saratoga Software. "These two requirements may seem to conflict with one another and often they do, resulting in poor quality processes that deliver poor quality software."

OPPORTUNITIES FOR FAILURE

Since there are several different approaches to software development, with significant advantages and disadvantages to the various methodologies, it makes sense that the opportunities for project failure are legion. Large-scale software development efforts today are conducted in complex, distributed IT environments. Development occurs in a fragile matrix of applications, users, customer demands, laws, internal politics, budgets, and project and organisational dependencies that change constantly.

Moreover, software today must not just automate processes; it must create business value, by improving customer service or delivering a competitive advantage. Raising the stakes of every large-scale development project is return on investment (ROI): software must have a measurable impact on a company`s bottom line.

Project managers who lack enterprise-wide multi-project planning, control and tracking tools often find it impossible to comprehend the system as a whole. Underestimating project complexity and ignoring changing requirements are basic reasons why projects fail. Under these conditions, software project management is almost an oxymoron.

CHALLENGES

According to , executive director of Airborne Consulting, software development is a risky business. "It`s not an easy product to deliver. Business asks the question: `How much does it cost?` when the real question should be `What are their development processes and how will they do it?`," he says. "This is where most projects fail - they are too cost sensitive without asking the right questions."

nVision IT`s technical director, Nick McKenzie, feels that one of the biggest problems is the actual definition of custom development. "At what point does customisation become custom development?" he asks. "Businesses should think carefully about what to build - building stuff that already exists is a waste of time unless it is specifically needed."

MIP`s CEO, , agrees that customisation is not trivial. He says he`s seen a massive shift in the industry, though, with more calls for custom development and less for customisation. "As the new South Africa has matured, the legislation has matured. The local legislation has been customised to the South African market, with the effect that international systems can`t just plug and play any more. There is therefore little scope for out-of-the-box solutions," he says.

McKenzie adds that the vision of a business of its needs ranges, and some just don`t know what`s causing their pain. "Sign-off from the customer is often a major problem because they don`t understand their need, so the developer is not supplying what the customer expected because he hasn`t got that understanding either. Getting everyone speaking same language is the biggest challenge."

STRATEGIES

Firth says the first step is to get a closer match between business and technology speak. "The first thing any developer needs to do is establish what the business needs," he says. McKenzie agrees, adding that one of the most important aspects of a software development project is to manage the client`s expectations.

"Companies know their own business better than the developers do, and if the developer isn`t told exactly what`s needed, the developer ends up making assumptions. You have to understand the requirements first, understand who`s going to be involved from the company`s side, and understand the commitments," he says. He adds that a successful project has to have buy-in across the organisation. "Change management is vital. If it`s not handled correctly, the software will fail."

Sean O`Connell, Airborne Consulting`s MD, says that all software development projects are about people, and software development has to take cognisance of that. He and Harding say that because of technological convergence, it is now important to look at projects in the context of infrastructure. "You have to take into account the integrated strategy, enterprise architecture etc.," says Harding.

Gebhardt points out that the agile approach to software development offers remedies for some of the fundamental flaws present in many current development projects. "Competent developers love it, because it puts responsibility and control of the process in their hands. However, key stakeholders in the business can sometimes struggle with the mind shift that it requires," he says. "The fundamental difficulty appears to be getting the business to alter its thinking upfront and engage with the process sufficiently to change the way they relate to development teams and the development process."

Firth points out that lots of people try to equate software development to the building industry, but that there`s no such thing as once-off development. "The building model is important, but there`s only one way to sell applications and that`s service. There has to be change management going into the system monthly, and support is vital. There are two areas to support, each equally important - maintenance and changing to develop what the business requires as needs change."

SKILLS

While these are all vital aspects to ensuring the success of a software development project, none of them are as important as having the skills to complete a project. Firth says that resources - both technological and human - are an important part of development. Harding adds to this by saying that it is important for a developer to be highly skilled, not a jack of all trades.

However, this seems to be rare locally. Firth says that South African developers` skill sets are much broader. "In the international market, people seem to focus more on one area," he says. McKenzie agrees, adding that the element of local knowledge, of understanding legislative requirements etc., is vital. However, he paints the usual dismal skills picture common throughout the IT industry. "A lot of colleges are letting woefully underskilled people into the workplace.  Skills are expensive, and the shortage has driven up salaries to where they are out of whack with the job."

However, the situation isn`t sounding the death knell for development houses locally. In fact, Firth says that they don`t really battle to find developers, they have just had to increase their training. McKenzie says there are other challenges in South Africa compared to overseas markets - not just skills. "For example, you have to think about bandwidth all the time. The challenges around logistics in Africa make for more interesting solutions, though," he says.

While the stats remain poor - McKenzie says that two thirds of software development projects are challenged and a third of projects fail - South African business seems to be willing and able to embrace the challenges necessary to ensure success. Software development has moved on from a "big bang" approach, with the multimillion-rand projects common in the past occurring less and less, and developers and business have learned that success lies in talking to each other.



Tags: Software  Development