Beauty Is in the Eye of the Beholder
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Vikas Hazrati on Oct 29, 2008
Contracts are required to bridge the gap of trust and uncertainty between different organizations thus enabling them to work together. Traditional ‘fixed price, fixed scope and fixed time’ projects do not take the uncertainty in business environment and software development into account. These contracts tend to set up the customer and vendor against each other where, instead of collaboration, time and energy is spent on deciding who should pay for the change. A working group is currently brainstorming on OpenPlans with an aim to produce reusable agile contracts. This would potentially reverse the customer-vendor relationship from confrontation to collaboration.
In the past Alistair Cockburn has listed more than 10 strategies of Agile contracts based on inputs from several people. These include the standard ‘fixed price fixed scope’, ‘time and material’ contracts to the more innovative ones like ‘Incremental delivery with payment on incremental acceptance’ and ‘Indefinite Delivery, Indefinite Quantity’. Martin Fowler talked about projects where they first build trust with the customer and then get to a flexible charging scheme for future projects. Mary and Tom Poppendieck have discussed various contract types and their potential benefits. They also discussed various customer and vendor categories and the factors like culture, country and software type which might affect the contract.
The working group on OpenPlans currently has a work in progress Agile contract titled ‘Money For Nothing, Change For Free’ which places strong emphasis on customer participation. The customer is expected to have a high degree of involvement in prioritizing features, sprint planning, writing conditions for satisfaction of features and sprint review. The contract also has the following clauses set up
The contract also talks about ‘Guarantee of work’ where the vendor guarantees that 80% of the functionality is delivered with high quality as per the agreed upon definition of done and that the vendor may take the risk of late delivery.
The contract development can be tracked on the ‘Agile Contracts’ home page and membership can be requested for contributing to the contract definition.
18 agile and lean practices for effective software development governance
Agility at scale, become as agile as you can be
Top 5 Software Development Process Challenges
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
In my personal experience I have seen that it is hard to sell an Agile contract. Some of the initial analysis of the working group shows that it is more of a function of sharing risk. There is a suggestion of a 2 phased approach where the balance of risk shifts.
Still most of the enterprises that I have seen prefer a fixed kind contract to satisfy CYA. Has someone successfully executed/executing a real not pseudo ;) Agile contract?
Working with Exigen Services, a large Russian consulting firm, we have done CIO dinners in New York and London and found that 1/3 of the CIOs were ready to negotiate a "Money for Nothing, Change for Free" contract immediately. Another third wanted sales visit to discuss the approach in more detail. The final third said their companies were too disfunctional to produce a product backlog prioritized by business value or were so bureaucratic it was impossible to innovate.
The conclusion was that there is a huge immediate market for this and Exigen Services has made this a core strategic initiative worldwide.
In their initial projects, the challenges have been training their own people to be Scrum Product Owners so that they can work with the customer as stakeholder and get a good Product Backlog. The customer cannot in most cases produce a good backlog on their own. The second difficulty is the estimation capability of their development teams. They need to be good at estimating fix priced contracts where there is limited information on large grained stories. Systematic Software Engineering, a CMMI Level 5 company in Denmark is doing this quite well so we know this is a solvable problem.
So the bottom line is that we need Agile companies that can execute well in this market. As soon as we have them there are huge financial returns for both the vendor and the customer. The customers are already ready.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
2 comments
Watch Thread Reply