Success is an Option too.
Jack Ganssle is relentless in his exposure of the failings of software developers. His article Failure is an option Jack references the Standish group's Chaos Report from 1994, showing very bleak results for software developers. Unfortunately our industry has not made a lot of progress in the last 10 years. But don’t forget
Success is and Option too!Looking into the study a little further you will find success criteria identified. They site that "Hyatt had all the right ingredients for success: user involvement, executive management support, a clear statement of requirements, proper planning, and small project milestones." The Standish report is from 1994, but I believe it is as
When I see “small project milestones” in the report’s Success Criteria I think incremental delivery. There is also a strong correlation projects managed via a waterfall process and project failure. Iterative and incremental approaches have been around a long time and have a much better track record than waterfall projects. If you would like the numbers and background of this claim take a look at Craig Larman and Victor Basili’s paper from IEEE Computer titled: Iterative and Incremental Development: A Brief History
The Agile Development has its roots in Incremental and Iterative techniques. Agile addresses many of the “Success Criteria” in the Chaos Report. There is certainly more than one way to success, but we are finding the principles and practices of Agile development are leading to more predictable and successful projects. Here is how an Agile development team would address the Success Criteria noted in the Chaos report
User InvolvementUsers/stakeholders are part of the team, available for questions, and to try out the features as they are developed. Often user proxies are needed.
Executive Management SupportTop down buy in is needed as Agile development effects the whole organization. A spec can’t just be tossed over the wall. Customers and developer have to work together to manage to a successful outcome.
Clear Statement of RequirementsRequirements are incrementally refined, and specified in automated test cases. The requirements start out vague, more like goals, and become very unambiguous as their acceptance criteria are defined.
Proper PlanningAn overall plan is created early, but it is constantly refined with the execution data from the team. Giving managers the ability to make trade-offs early and throughout the project regarding staffing, delivery dates and scope.
Realistic ExpectationsExpectation are kept realistic by using the teams own performance against estimate data to calibrate and monitor the plan.
Smaller Project MilestonesBig features are broken into smaller features that can me delivered incrementally. The whole big feature may be needed to ship, but progress can be tracked using incremental functionality. Ambiguities are resolved. Risks are confronted and mitigated. Internal deliveries are every couple weeks.
Competent StaffTeam work is stressed, rather than individual heroics. Team member coach and mentor each other (more senior people on domain, architecture, real world. More junior people coach the senior on new technology like C++, Object Orientation, and tools)
OwnershipTasks are owned by individuals, but the project success is based on how well the development team works together to reach the common goal. Responsibilities are clear, developers own technical decisions such as code quality, design, architecture, and development estimated. Customers (marketing, systems engineering, management) own product business decisions such as acceptance criteria, feature priority, feature content, and scope versus date trade-offs.
Clear Vision & ObjectivesUpper management has to define the business objectives. Each iteration, features selected must be moving toward those business goals. Uncertainty may exists at the feature level, but the features must align to target market and product objectives. Details are worked out over time.
Hard-Working, Focused StaffGood people are a critical key to success. When you put good people in a situation where they can win, great things will happen. In a way this is not so much a cause as an effect.
These are practical common sense solutions to attaining Chaos Report's Succcess factors.
Add Child Page to SuccessIsAnOptionToo