Only 15% to 20% of all application development projects come in on time and on budget. Much of this shortfall can be attributed to poor development lifecycle practices and unclear communication and understanding of project goals and components, says Alan Raubenheimer, CEO of Embarcadero Africa.
While development productivity and efficiency has long been the goal of development organisations, today`s economic climate and the shortage of development talent makes it even more imperative that tools increase a company`s competitive edge and not add another layer of complexity that bogs down development time.
Too many vendors approach the development market with their own version of development nirvana: if you buy and implement their tools and processes then your problems will be solved.
But the reality is that no single vendor`s product set can satisfy all of a company`s development needs and there are three basic problems development organisations face and must overcome.
Firstly, inherent friction exists among development teams. Software development organisations are composed of specialists with expertise in each area of the development process, including architecture, application development, data modelling and database management. The differences between the various team members are partially technical but also cultural in that they prefer to work within the environment with which they feel most comfortable.
One way to resolve this friction is to encourage the adoption of new tools and processes that bring these members together under an entirely new technical environment, but a new toolset can negatively impact performance and disrupt development. Organisations should leverage tools that bridge the gap between these disparate groups, yet still adapt to the needs of each specific audience.
Secondly, development tools need to decrease two levels of complexity. Computing environments in most organisations are already a complex mix of tool, technology and processes; the introduction of any new tool should reduce, not increase, intricacy.
In any organisation complexity occurs at two distinct levels: the individual and the development team. At the individual level development tools should simplify tasks. Today team members still need to complete repetitive development tasks by hand, work in a cumbersome interface and work without a visual model of what their next steps should be.
Organisations should evaluate and choose products that:
* Automate repetitive tasks;
* Reduce error-prone tasks with wizard-driven processes; and
* Enable work in an intuitive user interface as a way of enhancing individual productivity.
At the organisational level, tools should ease processes. Developers appreciate familiarity and once they have experience with a tool and have grown accustomed to its features, functionality and processes, they are very reluctant to switch to something new. Organisations should evaluate and buy products that can easily fit in their existing environment, can easily integrate with existing tools from other development divisions and do not require a high learning curve.
Thirdly, organisations should improve understanding of complex, interdependent systems. The complexity of e-business development and the need to integrate once-standalone systems has shown the benefits of model-driven development. Systems must enable information sharing and data interaction as more business processes are moving to the Web. The emerging Web services computing model extends interaction even further, allowing application to transact with one another via the Web. Yet this also creates a host of complexity and new challenges for application development.
A strong underlying design architecture is crucial to the success of e-business or any critical internal application. When developing rapidly it is important to know what systems already exist so developers can take advantage of existing components and reuse them in new applications. Therefore, it is more important than ever to maintain an accurate blueprint of application systems and their designs, documenting what an organisation has in place and leveraging it for the future.
Integration boosts productivity
Tighter integration between development team member toolsets improves communication and understanding of the project, which improves productivity across the development team. Comfort levels with tools is important for developers - tools that build on their skill set rather than disrupt it, are those that will increase developer efficiency and productivity. The end result is better constructed applications that more closely align with business requirements.
To be effective, development tools should help organisations manage the complexity within their current environment to get the job done, not add to the complexity of the job.
Editorial contacts

