Compact programming |
From cincinnati.bizjournals.com :
Lance Williams
'Lean' could be newest trend in software design
Cincinnati Business Courier - January 24, 2003No one could confuse the practice of building cars with writing software, but the processes are closer than you might think.
While many auto manufacturers have spent the past several decades refining the way they make cars, some contend that software manufacturers are still stuck in the 1950s.
Henry's Ford principles of "scientific" management and assembly-line production that dominated the industrial complex for much of the 20th century are still very much alive in software business. Just as auto factories would build cars on assembly lines, test them at the end and fix what didn't work, software programmers will spend months working on software code, test it at the end and then rework it again - often after the product has been released.
For the auto industry, a shift occurred in the 1950s when Toyota began to introduce lean manufacturing into its factories. Using that process, testing occurred at every station. Through increased and earlier testing, Toyota's methods improved efficiency and lowered costs, and other automakers followed their lead with other lean manufacturing efforts.
Now a similar trend is developing in the software community, and it could eventually mean savings in terms of money and time for millions of software purchasers.
Mark Windholtz, owner of Cincinnati's ObjectWind Software, is an advocate of the Lean Software Development model. The programming component of the model is often referred to as XP, or extreme programming.
According to the National Institute of Standards and Technology, nearly $60 billion is wasted in the United States each year because of software defects. That occurs because more than half of all software errors are discovered after the software has reached customers' hands, Windholtz said.
"Software users and purchasers expect defects, so is it any surprise that they get them?" Windholtz asked. "That's a catastrophe."
Using the Lean Software Development approach, the dynamics of software development changes.
First, programmers working on code are seen as producing inventory. Just as factories lose money by carrying too much inventory, too much code is bad for programmers and viewed as waste, Windholtz said.
Lean programming is based on using smaller chunks of flexible programming code to build software for customers based on emerging needs. Another key aspect is that the software code is tested early on, and defects are fixed immediately.
Windholtz said this approach reduces errors and gets products in customers' hands much faster, and its business implications are much wider than just for those in the software business.
For example, Windholtz said, a Swiss insurance company heavily relies on lean programming. If the company wanted to introduce a new policy, any software required to process those new customers would be written on an as-needed basis.
For instance, when the first customer wants to sign up, code would be written to handle new customers. From that point, any new needs regarding the policy would be written on a daily - or even hourly - basis by the company's software provider.
Under the old model, it might have taken months to develop the software package in its entirety, Windholtz said. If the product was a failure, then most of that work would have been wasted.
He said by adopting this new business model, companies can adapt to changing markets much faster without having to wait on their software to catch up.
Windholtz said recent results for a Dayton defense contractor show the promise for lean programming. At the end of a recent 18-month project, Windholtz said the project finished two weeks behind schedule and 8 percent over budget. Compare that to the previous 12 months of the projects using the old methods that finished 12 months behind schedule and 800 times over budget.
Matthew Avery, a senior developer with eInnovation, said he was wary of XP and lean software development at first, but he became a believer after seeing the process in action.
He said that by focusing on smaller chunks of code, programmers can work together more closely and have more interaction with the clients.
"Customers really feel like they are in complete control," Avery said. "It's a really, really efficient use of time."
Still, Avery said getting software programmers to look at new methods is not easy. He said programmers typically like staying with methods that are comfortable to them.
"We're working on a really faster pace than what they're used to," Avery said.
About author: Williams covers technology for the Courier. Call him with story tips at (513) 621-6665 or e-mail him at lawilliams@bizjournals.com.