Ten Tips to Reduce Development Costs
Stories Columns Opinions Resources
Preflight builds spread wings for smoother projects
Developers are increasingly turning to preflight builds, allowing them to experiment with ...
|
Coverity creates program to enforce code adherence
The Architecture Analyzer uses mapping technology from the company's Software DNA static a...
|
QCon 2008 features domain-driven development
This year's QCon invites speakers like Eric Evans and Dan North to talk about domain-drive...
|
.NET similarities prove golden for Silverlight
Microsoft has focused on making Silverlight 2 symmetric with the .NET platform, and that h...
|
SOA Watch: New economic realities
In the current economic downturn, agile programming and SOA are attractive options that bu...
|
Integration Watch: A new twist on threads
The key to raising the efficiency of multiprocessors is to shrink the overall workload by ...
|
Integration Watch: The Return of NetRexx?
Java scripting languages are seeing a surge in popularity, with NetRexx looking particular...
|
Windows & .NET Watch: Transaction crowd gets a boost
With multicore chips becoming the standard for processors, the need for a flexible, usable...
|
From the Editors: Election should shake up JCP
Rod Johnson has the right ideas for opening up the Java Community Process, and he may be a...
|
Letters to the Editor: Sun gives REST, SOAP choice
A reader takes issue with a headline on our story about Sun working with REST along with S...
|
Guest View: Be smart and lazy
The optimal solution for problems is the simplest one, so always aim to streamline your ap...
|
Zeichick's Take: From EXEC to EXEC 2 to REXX to NetRexx
Andrew Binstock's column last week, "The Return of NetRexx," brought back some fond memori...
|
Advanced Corda CenterView™ Data Visualization for the BusinessObjects™ Intelligence Platform
Corda Technologies presents a white paper on pervasive BI. The BusinessObjects business in...
|
From Mobile to SOA: A Guide for Optimized Application Deployment
Customer need has driven the emergence of multiple computing tiers. Today’s application d...
|
e-Kit: Web Application Security
Is your network secure? What about your web applications.
If IT security is your top p...
|
Practical tips for saving money on code maintenance
If software design is expensive, well, code maintenance is even more so. When you look...
|
By Edward J. Correia
June 17, 2008 —
The sagging economy, fueled by rising fuel prices, has hit businesses hard, and everyone’s looking for ways to offset their new top-line cost: energy.
Some advice comes from the U.K., which has been dealing with energy costs higher than those in the U.S. for decades. Martin Adcock, managing director of London-based software quality management solutions consultancy Experimentus, offers 10 ways to reduce software development life cycle costs within IT departments. Here are the first five.
1. Focus on well-documented functional requirements
Without documented requirements, there’s the potential for a system to be delivered that doesn’t meet the customer’s expectations. “For example, perhaps it does not work as they believe it should—even though the development team believes that they have worked in line with the requirements as documented,” says Adcock. This can lead to rework, release delays, increased costs and potential discord between the customer and the software team.
2. Non-functional requirements should be defined early and clearly
Many organizations focus solely on the functional aspect of systems, on what it does, rather than on how it does it. “Non-functional elements comprise everything from performance to security to usability,” says Adcock, and are just as important.
Without clear, early definition of such non-functional requirements, a system could be delivered that does exactly what the customer wants—but is difficult to use, slow, insecure, unreliable, or is not scalable. “Once again, this can lead to development rework—although some non-functional areas are so integral to the design of the product, it can be difficult to correct them without starting the project again.”
3. Ensure change control procedures are in place
Without change control, system development can find itself in an uncertain state. “For example,” Adcock explains, “development may be initially performed against what is believed to be the final version of a requirements document. However, more changes might be made to the requirements while development continues, each change without a proper impact assessment.”
As there is no procedure for consulting with or informing development of the changes, it may not be the case that the knowledge of the changes is passed on in a timely fashion, Adcock says. Additionally, the impact of some changes might be so large that they can’t easily be incorporated into the software at a late stage. “In this case, if the changes are deemed to be vital, major development rework might have to take place. For these reasons, every change should be strictly controlled.” Change can be allowed, he adds, but should take place only after a full impact assessment, to see how it will affect the project timescales and costs.
4. Use configuration management for code, data and documentation
Without configuration management, high-quality testing is impossible. “This is because there cannot be high levels of confidence that the right version of the software or documentation is being tested, or that the right version will be released to the customer,” Adcock says.
Organizations with poor configuration management might test one version of a product, and release a slightly different version, containing untested features. “It is viewed as untested, as potentially major faults may have been introduced which change the behaviour of parts of the system from that which was intended—or in some cases, even disabling the entire system.”
5. Focus on preventing defects rather than detecting them
Correcting a mistake in a requirements document before development begins is far quicker and cheaper than correcting the software after it has been developed incorrectly. “It has been proven many times that the later in the software development life cycle a defect is found, the more costly it is to rectify it.”
Next week, Adcock brings advice on acceptance testing, selecting the test approach and tool usage.
Share this link: http://www.sdtimes.com/link/32373