Agile Software Development: The Cooperative Game (2nd Edition)
Crystal Orange Web is a methodology we created for eBucks.com, a company delivering code to the Web in a continual stream. It differs from Crystal Orange in that this methodology does not deal with a single project but with a continuous stream of initiatives that require programming and with each initiative's results being merged with the growing code base being used by the public. This methodology is still in its trial run. I include it here because
The eBucks.com situation was interesting for a second reason (the first being the continuous and criss-crossing web of demands from different customer groups). The company had already established a Web presence. It was no longer driven by time-to-market pressures but was beginning to feel pressures imposed by the cost of defects. Customer calls, arriving in exponentially increasing volumes, could easily negate profit margins. Thus, the company was shifting from productivity to defect freedom as its top priority. There were about 50 people to coordinate in this situation: executives, business-people, managers, analysts, programmers, and testers. I classified this as an E50 situation. The group was relatively new, so some process definition was needed to make clear who made which decisions and who handed what information to whom. Otherwise, people generally knew who they had to talk to in order to get their jobs done. I performed interviews, as called for in the methodology-tuning technique. I interviewed people in each job role, from marketing through testing and system operations. The interviews revealed the following facts:
Brief Description of Crystal Orange Web
In keeping with the idea that a methodology is the set of conventions the group agrees to, we wrote the methodology as a set of conventions, in five categories. Here they are: 1. Regular Heartbeat, with Learning
The purpose of this category is to establish a core procedure for getting feedback on "how we work around here" and taking the time to reflect and improve on that. Every convention except the reflection workshop at the end of each cycle can be altered as an outcome of the reflection workshops.
2. Basic Process
The purpose of this category is to organize who creates which pieces of work and who makes which decisions, in order to avoid duplication or gaps in the effort and to look far enough ahead to spot potential problems early. The process aims for delivery of business initiatives live to the Web.
3. Maximum Progress, Minimum Distractions
The purpose of this category is to ensure that people are working on what is of greatest value to the company and have time to focus and make progress on that work.
4. Maximally Defect Free
The purpose of this category is to construct a culture of "Kill bugs here!"
5. A Community, Aligned in Conversation
The purpose of this category is to indicate the long-term target toward which the company is aiming.
Reflection about Crystal Orange Web
Two things strike me about this methodology. The first is the reduced role of process and work products in expressing the methodology. They are present but occupy only a fragment of the space usually devoted to them. The second is the general absence of concurrent development, which is one of my favorite development speed-up techniques. Concurrent development is missing because of the bottlenecks in the system. The programmers had an enormous work backlog, no spare capacity, and were being interrupted constantly. The people were quite inexperienced both in developing software and in the business domain. These two points together meant that the programmers were not able to do overlapped development and hold the requirements in an oral culture. They needed stickiness in the information, which meant having specs written down for them. With time, this should change; as it does, I hope they will reduce the paperwork and increase the conversation. In the meantime, they need the paper. Six Months Later
I present this methodology as it was constructed as the starter methodology. We would expect to see some drift over time, both as people thought up new ways of working and as they drifted away from the high-discipline practices. Michael Jordaan, CEO of eBucks.com, made these comments about the group's work habits six months later: "Obviously, when you left, some disciplines survived while others did not stand the test. "The survivors include the fortnightly heartbeat with carefully planned cutoff times, which allows for developers and business owners to plan, testers to test rigorously, and customers to be informed upfront of scheduled upgrades. "We discussed a three-week heartbeat, but this was considered too long. More complex issues than can be solved in two weeks are run at twice the heartbeat (four weeks), but we still encourage incremental rollouts. "The post-heartbeat meeting is strictly enforced, and it has become one of the few times that I get to speak to the entire team. I have made quite a point of paying tribute to those involved in successful upgrades. Hopefully this public recognition is motivating. Mistakes are discussed and suggestions for improvements have been made at every meeting, supporting the learning culture we are creating. "The quality of code going live has improved greatly as the testing team has a veto power, to prevent bad code from going live (and this can be embarrassing). "The SWAT team, dedicated to eliminating live bugs, has also made great strides in responding to customer and call centre queries. "Focus time is still adhered to (and we still ring a bell every morning at 10:00). If I go a single day without these two hours I now start panicking, so useful has it proven to be. "Some things that did not survive were the habit of posting current priorities/work progress on a board. Maybe interruptions are less of an issue now, as people work from home, or maybe relationships between business owners and developers have stabilised. Maybe people are just lazy. "Most developers have a maximum of three tasks at any given time, except for the two key people working on the back end, who may easily have a list of 15 each. Moreover, they are still interrupted by live issues, which interfere with their completion of tasks and lead to much frustration by other developers and business specialists. "The issue here is lack of skilled resources. It is the age-old problem that training employees to assist, while undoubtedly the right medium-term solution, takes longer than simply doing it yourself." In those comments, what I notice with some satisfaction is that the team still uses the core elements of the process: heartbeat with learning, and finding ways to modify even that heartbeat to fit their needs. I notice the discussion of talent and skills as being critical to the project, and I notice them drifting away from what probably were embellishments in the methodology. |