Lifecycle training

This article was originally published in VSJ, which is now part of Developer Fusion.
Companies are increasingly having to look at ways to make software development more cost effective. Outsourcing, the topic of last month’s article on these pages, is one strategy to cut costs, but some organisations are discovering that it fails to produce the savings they anticipate. Howard Knowles, founder and CEO of Cogenture, a UK company that characterises itself as a software process improvement company, argues that improving the efficiency of software development throughout its lifecycle can produce considerable savings, potentially outweighing those resulting from offshoring. Traditionally, coding, the part of the process that tends to be outsourced, accounts for only 15% of the cost of a project. Therefore, concentrating on reducing costs in the remaining 85% by using more effective methods is likely to have a more significant impact.

Cogenture aims to help its clients develop software through consultancy, mentoring and training in the adoption and optimisation of iterative software development processes and tools, and was recognised by IBM as its number one Rational training partner for 2004. The RUP (Rational Unified Process) is at the heart of Cogenture’s services portfolio. Its team specialises in the theory and application of the RUP, and provides a range of services to help organisations maximise their investment from its Telford-based Learning Centre. Among the courses in its portfolio, all of which are IBM authorised, are Essentials of the Rational Unified Process, a two-day course which provides introduction to the RUP, and emphasises the main principles of iterative software development: phases and their objectives, and the mitigation of risks.

Paul Besly, a principal technologist at QA, has experienced situations where companies have become disillusioned with offshoring. Having been tempted by the prospect of paying only a tiny fraction of the costs of coding, they discover problems with the results; being not entirely sure that what they had been sent was what they initially wanted, or how to integrate the returned code with other components. One way to mitigate this problem is by ensuring that requirements are properly specified. RUP provides a solid foundation for this by setting a series of stages to go through, and ensuring that the software checkpoints are mapped to existing documents that are recognised by the organisation.

The three-day QA course Requirements Gathering with the Rational Unified Process is aimed at project managers, business analysts, architects, developers and testers on RUP projects. It describes how to gather requirements, analyse them, design the software, and build and test it, in an iterative and incremental style. Delegates are shown how to define a common vision for a project: understanding the overall scope, identifying the project stakeholders, and documenting constraints. They learn how to write use cases in a clear style, so that they can be read and understood by business people, and how to use them to design a successful software project. A number of techniques for eliciting requirements, such as workshops, brainstorming and walkthroughs are explored and used during the individual and team exercises focused on a Case Study that runs throughout the course.

Paul also emphasises the need for incorporating testing into the entire application development process. “Testing tends to be one of the first things to be axed when budgets and timescales are tight, but this is a false economy. Instead it’s necessary to adopt a mindset in which writing the tests first becomes an integral part of the development process.”

Paul explains how the ideal approach is to test small steps: “It’s like clearing mines – move forward a little and prod.” This practice is included in courses that Paul teaches, including the .NET Best Practices workshop where the NUnit tool is used. “Although using NUnit sounds like a slow method, in practice it tends to be faster. When you resolve issues sequentially you avoid the problems that result from the interaction of several bugs.”

Dunstan Thomas is another company which sets out to change mindsets. According to training manager Luisa Partridge, “Many people view the software development lifecycle as that time between when a software developer or programmer sits down to write the first line of code, and the point when the completed program successfully compiles and executes. Successful software development organisations, however, have much more complete definitions of a software lifecycle. These lifecycle definitions start with early requirements-gathering and analysis stages, and proceed through testing and into deployment. The maturity of a software development organisation, in fact, is closely related to its understanding of the software lifecycle and the underlying processes and procedures required to successfully develop software. This is a relatively new area for training, but it is an important one.”

Dunstan Thomas Training offers expertise in all areas of the application lifecycle, and provides training to improve the way software is developed encompassing all stages of the process, from business requirements analysis and design through coding to testing. As Luisa explains, “Being process-agnostic, Dunstan Thomas covers many different approaches, and can incorporate (for example) agile programming and Scrum, and can even develop a custom process for its clients.”

The spin-off problems of outsourcing, in particular the issues posed by having to dovetail disparate components of a complex whole, may be a contributory factor to the upsurge in demand for project management training courses. QA runs its three-day PRINCE2 – Foundation courses on a weekly basis in London, and at regular intervals in other venues around the UK. Richard Cordy, lead PRINCE2 instructor at QA, explains the importance of strong project management skills: “we have to get developers more involved in project management in order to avoid the delays that have tended to beset software; senior developers need to understand the problems of project management and the project management implications of their own roles.”

The acronym PRINCE stands for PRojects IN Controlled Environments, and was first developed by the Central Computer and Telecommunications Agency (CCTA), which is now part of the Office of Government Commerce (OGC). The revised version, PRINCE2, was designed to allow the method to become a generic, best-practice approach for the management of all types of projects, but remains ideally suited to the management of IT.

Richard Cordy explains that the reason projects fail is often nothing to do with technical problems or mis-specification of requirements, but instead a lack of appreciation of the dependencies between the different project elements, and of the timescales required to accommodate them. The PRINCE2 method ensures that projects are split into manageable chunks and that the implications of timescales and risks are taken into account. The method also has the advantage of being easily tailored and scaled to individual project environments, enabling users to be proportionate, varying the degree of control imposed on a project according to its size and duration.

QA’s three-day accredited course, PRINCE2 – Foundation, and the five-day extended version, PRINCE2 – Practitioners start by covering the need for structured project management, why pragmatic and intelligent use of methods is so important, and how PRINCE2 can be employed to achieve business-related objectives. The second element considers the method itself: what PRINCE2 looks like, how the major components and processes such as planning and control work on their own as well as together, and how the roles associated with the method can be made really effective. It goes on to deal with implementation, and provides sound, practical advice on introducing the method into a range of different environments, always bearing in mind the need to keep bureaucracy to a minimum.

QA also offers Fundamental of Project Management, an entry-level three-day course for those with no experience of project management. It can either be taken as a stand-alone course for those who just need a basic awareness, or as a springboard on to the PRINCE2 courses.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“It works on my machine.” - Anonymous