In-Depth

Tailor-Made for Applications Development

Special Report: Tailor made for applications developmentWhat’s the first thing you do when you have to write a new software program on a tight schedule? For years, the answer has been to just start banging out code.

Now, a growing number of programmers in large commercial software companies, corporate IT departments and the military are dealing with tight deadlines by delaying the time when they write that first line of code. Instead, they spend almost four days analyzing their resources and requirements and perhaps sparring with senior managers to make sure that deadlines aren’t only tight, but that they’re reasonable.

These nonconformists are devotees of Personal Software Process and Team Software Process, two intertwined methodologies that offer formal processes for improving software quality and managing schedules. “This isn’t rocket science or a silver bullet,” says Eileen Fagan, software engineering process manager for Intuit, which began using PSP and TSP early last year. “It’s a collection of all the things you need to do to be highly successful, one project at a time.”

Intuit declines to reveal what it spent for PSP/TSP and what the resulting paybacks were, but it and other organizations believe the extensive data collection associated with the methodologies point to concrete benefits.

The techniques are having an impact on deadline performance and software quality, not only at Intuit, but also at Boeing, IBM, Microsoft, Motorola, Teradyne and the U.S. Navy. In some cases, PSP and TSP are helping teams deliver programs with less than one bug per 1,000 lines of code.

As time goes by
Obviously, software quality has been a driving force for developers, IT managers and senior executives for years. However, with each passing year, as increasingly sophisticated computer systems run everything from the most complex fighter planes to mundane household appliances, the ripple effect of programming problems becomes more acute. Adding to the nuisance—and danger—of quality problems are hackers who exploit security holes in commercial software to steal personal and financial information and feed worldwide identity theft rings.

Like most software bugs, security holes usually are fixed after an intrusion. Now, some commercial developers and software engineering academics say enterprises can no longer adopt the traditional break-fix approach to software development for financial, competitive and security reasons. Instead, software developers, working with support from their managers and senior executives outside the IT department, need to fix code during the development process, which can also help them do a better job of scheduling and cost-estimating large programming projects.

One way to do this is using methodologies that have become common among quality-savvy manufacturing companies. A formal strategy for implementing these practices is the two-pronged PSP/TSP attack being pushed by the Software Engineering Institute, part of Carnegie Mellon University. Watts Humphrey, an SEI fellow and developer of both PSP and TSP, has spelled out these principles in a number of books, including Winning With Software: An Executive Strategy and PSP: A Self-Improvement Process for Software Engineers.

PSP, first developed in the early 1990s, helps individual programmers estimate how long it takes them to write code, document the incidence of bugs and identify defects early in the process to avoid time consuming fixes at the end. The second prong, TSP, arrived at the end of the 1990s and expanded PSP principles to workgroups composed of PSP graduates.

It’s the increased adoption of that second prong among commercial and military software engineers that offers encouraging signs that complex software projects can be better managed. “Until there was TSP to go along with PSP, our goals weren’t fully achievable,” says Jeff Schwalb, National TSP lead for the U.S. military’s Naval Air Systems Command (NAVAIR, which provides support for the maritime combat activities of the Navy and Marines). Creating high-quality software can be a matter of life and death at NAVAIR; programs often bolster aircraft and weapons systems.

People, not tools, matter most

ADT on your desktopThe best-in-class software development projects are 3.37 times faster to market and 7.48 times cheaper than the worst, according to a new study of "the best and worst in class projects" from Quantitative Software Management.

The costs and duration associated with being "best" or"worst" are dramatic: the construction and test portion (the build phase) of the project for best in class was about 3.6 months and cost $200,000, while the worst in class took a year and rang up $1.4 million, QSM found. The total lifecycle costs (the requirements analysis plus the build phase) are also meaningful: just above 7.5 months and cost $300,000 total for the best in class; the worst in class took more than 2 years at a budget-busting $2.2 million.

Four factors contributed to the results, and only one was technology-related. The rest concerned management and technology approaches. Development teams in the "best" category were able to control requirements change; employed highly skilled people with good functional knowledge of the application domain; used tooling effectively; and had project leadership.

"Controlling change is the most important element to successful development projects," says Doug Putnam, managing partner of QSM. "An inability to adroitly manage change can be the enemy of productivity and quality. Effective leadership creates a culture where change is well managed by highly skilled teams with good domain knowledge."

Although tools are always a significant factor as productivity drivers, they ranked only third as an influencing factor for the quality of the projects, according to QSM. There's no technology substitute for training and management, the study concludes.

QSM surveyed 536 IT projects from 31 companies in 16 countries, including 16 industries and 9 sub-sectors, ranging from aerospace to financial IT. --ADT Staff

Talking Points

ALTERNATIVE APPROACH TO BANGING OUT CODE

  • Some commercial developers and software engineering academics say enterprises can no longer adopt the traditional break-fix approach to software development for financial, competitive and security reasons.
  • Software developers need to fix code during the development process, which can also help them do a better job of scheduling and cost-estimating large programming projects.
  • PSP and TSP require long hours of training not only for software developers but also for senior managers and anyone else in the company who interacts with the programming staff.

It’s like factory work sometimes
PSP and TSP offer an alternative to the decades-old software approach of “banging out code and testing it,” Watts believes. “That approach leads to re-dos. Anyone with any quality background will look at that and say that’s fundamentally wrong,” he says.

With PSP and TSP, he applies quality principles introduced by W. Edwards Deming and Japanese auto makers that focus on quality at the beginning of the job. “The fundamental principle of factory work is you do it right the first time, which makes you cost competitive because you eliminate redundant work,” Humphrey says.

He says software developers haven’t traditionally taken this approach because they’re often pressured by management to meet unrealistic schedules that induce errors. “Senior managers always push completion dates until they get enough push-back to convince them that this is the best they can expect,” Humphrey says. “The problem is software developers haven’t known how to push back” so they find themselves agreeing to deadlines without first determining whether the schedules are realistic. “Basically, all we’ve done with PSP and TSP is to show software developers how to push back,” Humphrey says.

He set out to develop this language in 1989, and over two years, wrote 70 programs. Along the way, “I gathered data on everything, I managed quality and I defined processes—everything I thought should be done,” he recalls. “And I found it worked.” Using statistics on how long it took him to write programs and by documenting defects as he went along, Humphrey could accurately estimate schedules and improve the quality of his programs.

He began teaching PSP courses that mirrored his experiences. Current classes require students to write eight programs using a standard process: Make a plan, develop a program, do a post mortem. “During those steps, students gather data about how much time it takes them to do the work, measure how big the program is and record all of their defects,” he explains.

Although there’s a lot of formal classroom and textbook study associated with PSP instruction, TSP is much less theoretical and more hands-on, says NAVAIR’s Schwalb.

Reconciling needs with desires
TSP consists of a number of project development phases, beginning with a detailed planning session. According to TSP gospel, the development staff first hears a project summary from senior management that spells out the parameters of the new software initiative, including the deadline for completing the code, the business case for launching the effort and any details—often scant—about specific functionality the new software should offer.

Next, the development staff sequesters itself for 3 1/2 days to compare project goals to available resources and to the data collected by PSP methods showing how fast individual staff members can write nearly defect-free code. Then, they reconcile this analysis with senior management’s deadline expectations.

Out of the hundreds of teams I've seen go through this process, I've yet to have a team lose an argument, because they have a plan, lots of data and they put a lot of effort into it.

Day 4, when developers present their conclusions to management, is typically when the fireworks fly. Rarely do a development team’s conclusions meet the deadlines set by management, Humphrey says. But the analysis process provides a way for the two sides to hammer out a more workable schedule, preferably with alternatives the development staff identified in advance. For example, the programmers might ask for more resources or cutbacks in the functionality of the proposed software.

“We tell the teams to do their best to do what management wants and prove they really put their hearts into the effort,” Humphrey says. “Out of the hundreds of teams I’ve seen go through this process, I’ve yet to have a team lose an argument, because they have a plan, lots of data and they put a lot of effort into it. If management argues, everyone on the team can come back with a response. When the whole team is there and everyone’s behind the effort, management listens.”

Although the planning phase is a key starting point to TSP, it’s not a one-time effort. Schwalb says large projects typically incorporate multiple planning sessions that coincide with key milestones.

Meeting schedules with fewer bugs
NAVAIR has been using PSP since 1996, after Schwalb heard a presentation by Humphrey a year earlier. NAVAIR added TSP around 2001. The original move to PSP was part of the organization’s overall desire to improve its software development processes, a move that first led it to classical process improvement techniques that included the Capability Maturity Model, a framework developed by the SEI that spells out hundreds of development best practices.

The emphasis of CMM and its cousin CMMI (Integrated) is organization-wide process management, not the individual and team orientation of PSP and TSP.

NAVAIR’s software managers became frustrated with CMM after spending months creating new processes, then finding themselves conducting seemingly endless training session to get everyone onboard. “It was just taking too long, and people were running out of energy,” Schwalb recalls. When he learned about PSP, however, “I made paradigm shift,” he says. “It gave us a starting point and a way to tailor the development process.”

Within about six months of taking SEI-led PSP training courses, many of NAVAIR’s developers began to feel comfortable collecting performance data and using it for project management. Success rates in hitting scheduling targets soon began to improve, Schwalb ways. Although PSP moved NAVAIR a step closer to where Schwalb wanted to go, it wasn’t a complete answer. After going through PSP training, many programmers said they weren’t using what they’d learned because others in the organization weren’t similarly trained. “That was frustrating, but nobody said stop the training, Schwalb recalls. That frustration eased in 2000 when NAVAIR began incorporating the workgroup concepts of TSP that the SEI was formalizing. “We saw real successes when we applied TSPin its full version around 2001,” Schwalb says.

Planning and ongoing timetable assessments have had an impact at NAVAIR. In the past, projects may have come in anywhere from six to nine months behind schedule. The new PSP/TSP techniques have helped the staff hit deadlines within one week of the original schedule, Schwalb reports. What’s more, code quality goes hand in hand with hitting schedules. One reason schedules are more accurate is that NAVAIR is spending less time fixing errors at the end of the development process.

Late fixes are not only time consuming, they’re especially costly because changes often have a ripple affect on other sections of completed code, which then must be revised to accommodate the corrections. “When you go into test phases, you spend lots of unplanned hours or perhaps even weeks on the changes, which can blow your schedule out of the water,” Schwalb says. “To meet the schedule, you have to go from finding several defects in tests to finding one or none,” he adds.

Intuiting what a project might need
Small groups of software developers at Intuit began PSP/TSP training in the fall of 2003, and in the following spring, the company launched pilot projects using the techniques on development work for three products, including two versions of the QuickBooks small business accounting software. Fagan says even quality-minded software engineers didn’t always immediately embrace the PSP/TSP concepts, for fear they might be a flavor-of-the-month process-improvement solution that ultimately wouldn’t be adopted.

Sensitive to this skepticism, Fagan was careful to follow the full PSP/TSP program and avoid short cuts such as compressing the training or launch phases. She also aborted one of the pilots after only a couple of months when contract developers were hired because the project proved to be much larger than anticipated. The contractors weren’t PSP/TSP trained, which goes against one of the tenants of the approach.

“Because all of the elements for success weren’t there, we chose to stop the pilot rather than try something that wasn’t going to work,” she says. “If engineers started to see things falling apart,” the commitment to PSP/TSP would have suffered, she adds.

Progress in the remaining two projects wasn’t always problem free either. At one point, the development teams began to significantly miss milestones. Fagan decided to use a TSP tool: the relaunch. “If your plan and your actual performance get too far apart, you have to stop and ask, ‘What’s going on?’” she says. “The right thing to do is create a new plan. A relaunch isn’t something you do without thought. But if there’s a systemic problem, you have to take another look at your plan.”

The first relaunch elicited “significant concern” among managers, who feared the PSP/TSP approach may not be working. But from that experience, Fagan learned to set expectations in future projects that relaunches aren’t unusual in an environment where features, resources and estimates change. “We don’t know everything” about a project during the initial launch phase, she says. With better upfront prepping about the fluidity of the software process, managers at Intuit are now more accepting of relaunches. Of course, success also helps managers accept the PSP/TSP approach. Developers in the pilots found 86 percent of their defects before the formal test phase began. As a result, the testing phase accounted for only 9 percent of the project’s total time. Non-TSP teams at Intuit have spent as much as 50 percent of their time at this stage.

Esperanto for the enterprise
PSP and TSP require long hours of training not only for software developers but also for senior managers and anyone else in the company who interacts with the programming staff. The data-gathering and planning components of the methodologies can seem tedious and even irrelevant to programmers who prefer to just dive into the coding process. Humphrey admits that the most highly productive programmers on a development staff may actually see their output decline because of PSP and TSP. But for the nonelite, the formalized approach typically boosts production by 10 to 20 percent.

And perhaps more important, it gives software developers a language for speaking with managers and the rest of the organization. A language that helps everyone negotiate more rational schedules and do better work. “There’s nothing fancy about this stuff,” Humphrey says. “It’s just the modern way to do software development.”


On ADTmag.com
Soft dev survey says people matter most
By ADT Staff

Proponents push business rules
By Stephen Swoyer

Extreme programming for a rainy day
By Matt Stephens