Home >> Integrating IT >> Development Environments

Fixed prices for IT projects are unethical: IBM

Fixed prices for IT projects are unethical: IBM By:  Rafael Ruffolo On: 17 Apr 2008 For: ComputerWorld Canada Creator

Big Blue’s Agile development guru, Scott Ambler, outlines for ProjectWorld 2008 attendees how he keeps the stakeholders happy and helps teams actually meet their deadlines



Email a friend   |  









Print   |   Text + / -   |  Add a Comment   |   Views: 351   |   Rating:offoffoffoffoff  (0 votes)
Rate this article on a scale of
1 to 5 stars,5 being the best.




TORONTO -- If your IT projects are consistently late and over budget, chances are you haven’t implemented Agile software development practices.

Speaking at this week’s ProjectWorld/Business Analyst World in Toronto, Scott Ambler, practice leader of Agile development at IBM Corp., told a crowd of IT professionals to throw away most of their traditional software development theories and take a new approach in their future projects.

In most development projects, Ambler said, business analysts write out a detailed requirements specification document and send it over to the software developers to carry out the design. By developing the plans upfront, he said, the people making the requirements document end up guessing the type of things the company may need down the road and more often than not, the IT projects end up in failure.

“Writing a detailed requirement spec up front is a worst practice, despite being considered a best practice for the longest time,” he said. “When you do this, you are building to specs as opposed to building to what people actually need.”

Ambler also said that because many IT projects carve their requirements in stone before any actual tests or coding has been done, their budgets are often unrealistic and inaccurate.

“Fixed prices for IT projects are unethical,” he said. “We can’t estimate up front and the only way to enforce the costs is through change management, which is also unethical. Change management is really about change prevention.”

To combat these ineffective IT projects, Ambler recommended organizations consider the Agile approach – which he defined as an incremental process that is performed in a highly collaborative manner to meet the changing needs of the stakeholders.

“The traditional way of writing a bunch of documentation and flipping it over to the next group doesn’t work,” he said. “We prefer executable documentation, which requires that we test the code first. It’s far more disciplined and [for example] every two weeks or so we have working and visual software to show to our stakeholders.”

Besides increased teamwork between multiple business groups, some of the key criteria to an agile system, according to Ambler, include continuous testing that drives development, daily work with the stakeholders, and producing working software on a regular basis. Many IT organizations, he said, too often lose sight of their true goals. “You have to know your audience,” Ambler said. “Treat your stakeholders like adults and keep them involved in the process. Any dollar spent on documentation is a dollar not spent on working software.”

Cem Kaner, author of Lessons Learned in Software Testing and Testing Computer Software, agreed, saying Agile development can reduce the cost of late changes and make it easier for IT organizations to respond as the stakeholders’ needs continually evolve.


Sign up for our Newsletters
Rafael Ruffolo Rafael Ruffolo joined ComputerWorld as a staff writer in June 2007 and was the winner of a Kenneth R. Wilson award for business journalism. He is interested in government IT, copyright, virt... more

Related Articles

Related Blogs

Comments (9)

Iterative Programming anyone ?
5/3/2008 12:00:00 AMThat of which I speak is an old idea (about 10 years old). By all means, look it up with along with Foresters, and appears quite similar to what IBM is pushing now. I'm not completely sure whether IBM wasn't into Iterative Programming at some time in the past, but I'm pretty sure it came out of academic minds. That of which I speak is a fairly old idea (about 10 years - by all means Google it), and appears quite similar to what IBM is pushing now. I'm not completely sure whether IBM wasn't into Iterative Programming at some time in the past, but I'm pretty sure it originally came out of academic minds. Sure, the technological applications have changed, but as far as methodologies go . . .
Thank-goodness they said it
4/20/2008 12:00:00 AMAnyone who has been in the industry as long as I have has seen this tragedy. The customer sees an opportunity to re-engineer his business process. The project team lead turns white with terror because he?s got a fixed budget. The arguing begins. The project ends, and either the customer is unsatisfied and got exactly what they originally asked for, *or* the project is over-budget and the project firm management is upset about cost over-runs. I posted a more detailed comment on my site at http://blog.jkl5group.com/ ... bottom line, I'm glad to see the industry leader leading the industry in a better direction.
Further to Joe's comment....
4/29/2008 12:00:00 AMBang on Joe, it's somewhere in-between. The 'stack' that the IBMer talks about is, in fact, a prioritized set of requirements. So clearly even in agile development, you must have some requirements. It is also a given that the quality of the requirements (complete, accurate, etc) will drive the quality of the end product. The word 'specifications' implies that someone has transformed the requirements into a specification of how the function will work - all that agile does is jump to developing the 'spec' in the form of semi-working software. It just makes sense that it's easier for a customer to signoff on working software than a MS Word document. Joe's comment that the nature of the application is also astute. Furthermore, regulated industries often require full business and design documentation - by law e.g. nuclear, pharma, blood supply management. I generally prefer taking an as-agile-as-possible approach. Manage expectations and give yourself some contingency time/budget for curve balls from your team and the customer.
Agile Requires Customer Attention
4/29/2008 12:00:00 AMOrganizations that adopt Agile / XP do need to understand that this just doesn't allow you to cut off the requirements spec stage of a project and so that you can send a person off into a corner to come out with a finished product. The 'customer' needs to have time to spend with the development staff throughout the lifecycle of the product... which also means that the development staff need to be available at all times during the lifecycle of the product. Otherwise you end up with a product that doesn't change to meet ongoing business needs AND you are right back to square one!
Need a better 'How to' for bringing Finance onboard
4/29/2008 12:00:00 AMYou're pretty much 'singing to the choir' presenting this as the most successful direction for enhancing business process. You need to tackle the first step. The proper way of building truly useful applications is a new method to gain financial budget approval. Upfront budget approval encompassing total vendor and man-hour costs can only be done with pretty specific requirements. This is the way we are locked into working now. This is the 'millstone' that hampers the success and true usefulness of these projects. Let's hear how you would sell this to the pencil pushers, because we're onboard.
Management Consultant
5/14/2008 12:00:00 AMClearly, Joe from Kelowna has had more practical experience than those marketing this new 'agile' concept. The concept of a radically new way of doing software development has been around (without significant success)since 1978.(that is as far back as I can go.) The first revolution was called Computer Aided Software Engineering (James Martin and CASE;then there was RAD (Rapid Application Development) and then Iterative Programming, the latest one is Test Case Driven development(TCD Development). So here we are again falling for the never ending trap of assuming there is a silver bullet way of solving very complex business problems. The assumption of the speaker is that 'specs' are always poorly written, out of date, and out of touch with the customers they serve. This does not have to be the case! If the project is structured to facilitate a good working relationship between developers and business experts the specs are likely to turn out great. This has nothing to do with methodologies and everything to do with good management practises. Joe is right in saying the answer lies in moderation. I would add: common sense and 'thinking it through'. If the system that is being developed is primarly a visual system. (i.e. heavy on the user interface, but light on background processing) then developing the system (including multiple iterations) is faster than writing specs and then developing. If, as an example, it is an Insurance system where the core of the system depends on the complex Underwriting calculations driving the Premium calculations then you had better get the specs right before developing anything or you will be re-doing it several times with several million dollars wasted.
Prototype that Nuclear Facility ... Please
4/29/2008 12:00:00 AMI cannot admit to being a nuclear power station system developer, but ir does seem to me that the complexity of such a system would defy full up front analysis and design. I can only imagine doing such a system by a continuous cycle of development and validation ... a prototyping activity, in an agile manner, to ensure that nothing is delivered that has not been fully tested, validated and verified. So my question would be Would one really want the software controlling a nuclear power pplant not programmed using agile methods. Sorry Joe, I do not see that the bleak 'design thrashing' and project meandering that you describe as being in any way akinto agile development, nor in any way some sort of inevitable outcome of using such methods.
What was not said in this article.
4/30/2008 12:00:00 AMTransitioning to Agile is a process of re-organization and change in the business. Agile is a different delivery method, with different roles, responsibilities, and org structure. If you are thinking about moving this way, check out these tips on getting started http://www.innovel.net/?p=52 I highly recommend getting some assistance from experienced consultants. There an a number of expert firms in the business of helping companies adopt Agile methods, including our company http://www.innovel.net and others. The process takes awhile, but how much is it worth to double your productivity?
Software Engineer
4/28/2008 12:00:00 AMThis whole debate comes down to moderation. There are the two ends of the scale; no specc and set in stone specs. Best prctices are somewhere in between. No specs can easilly lead to a project that meanders and explodes as new ideas and objectives get added. Code and systems are contintally re-worked and re-written and the project advances at a slow pace because not enough work was done at the start to decide the difference between what could be done and what should be done. I have worked on a number of projects where poor specs have caused huge overruns because the customers keeps changing their minds. Too stringent specs can lead to a strangled project where so much work is wasted trying to get a change through that good ideas are suppressed. Reality is somwhere in between and depending on the client it can lean toward waterfall or agile as appropriate. Would one really want the software controling a nuclear power plant programmed using agile methods? Does a web site really need a 200 page specification document?
You are currently not logged in: Register | Login

You must be logged in to submit a comment.