October 30, 2006

Why Unit Testing?

Data from projects worldwide says that in spite of the progress we have made as an industry, many software projects fail and most are completed later or over budget. As the pace of business increases, software development teams need to respond faster to deliver the software the organization needs.

Most Java development teams want to be much more agile, and are trying to meet three related goals:

Faster time-to-market: Too many development and QA cycles are consumed coddling fragile legacy applications (Yes, even with Java – legacy code is not just for COBOL anymore. It refers to any code created without the detailed tests that make it easy to change the code with confidence). The drag from ongoing problems in legacy code slows down the organization, making it harder to meet its commitments.

Higher quality: Teams often release code with more bugs than they would like, leading to longer and more expensive QA cycles and more bugs delivered to end users. There's been too much focus on testing to remove bugs, instead of building software without bugs in the first place.

More flexibility: Many legacy systems are too fragile and too inflexible to enhance. It’s hard to be agile as a business if you’re afraid to change the code on which the business depends.

What can you do to build better code and make the code that you already have better - so that you can deliver more software, faster?

The bottom line? Your team is under a ton of pressure, and it feels like there’s no way out. Or is there? Let’s look at how software development works now, and how it could work a lot better.

read more