Our children were competitive swimmers when they were in high school. For almost a decade our son's name was on the record board at the high school swimming pool until someone finally swam the backstroke faster and replaced him. We liked swimming as a sport because our son and daughter, three years apart in age, were in the same swimming club. They practiced together, went to meets together, and developed a mutual language and mutual respect. The sport demanded discipline and helped them develop good habits. But swimming didn't really teach them a lot about teamwork. The difference between individual sports and team sports is fairly clear. In individual sports, contestants win or lose based on their individual abilities. In team sports, the entire team wins or loses together based on the team members' ability to work together. When our son was in college he was the coxswain of a crew team. He sat in the back of a long narrow boat synchronizing the efforts of eight hefty rowers as they sped down the water. Rowing is clearly a team sport. We might call diving and gymnastics team sports because individual scores are totaled to a team score. But that's not the same as basketball or soccer, where team members have to synchronize their efforts in order to perform. We should keep the same distinction in mind with work teams. People who work side by side are not necessarily a team, even when they sum up their individual efforts into a collective result. A work group becomes a team when the members hold themselves mutually accountable to produce a "collective work product."[8]
There is nothing wrong with individual sports, they're simply different than team sports. And there is nothing wrong with work groups, but they are different than teams. Putting a group of people together and calling them a team doesn't make them a team. The thing that turns a group into a team is the mutual commitment of the members to pool their various skills and work together for a common purpose. What Makes a Team?What got our son up early every morning to coast his bike down the steep Ithaca hill to the Cornell University boat house? After all, the bike ride back up the hill was punishing. But the team had races to win, and to win races they had to work hard every day to learn to synchronize their efforts so that they could row faster and smarter than the teams from other schools. If anyone didn't show up, or didn't put out his best effort, the team wouldn't make the progress it needed to make in order to win races. Creating good software is a lot more like rowing than swimming. Software development involves constant problem solving; people make complex decisions many times a day, often with implications far beyond their own work. Pooling skill and knowledge from many different perspectives is critical to excellent results. Teams need a challenge, a common goal, and a mutual commitment to work together to meet the goal. Team members depend upon each other, and help each other out. A wise organization will focus its attention, training, and resources on creating an environment where teams are challenged by their work and engaged with their teammates in doing the best job they can.
ExpertiseA crew boat is narrow, goes fast, turns slowly, and tips easily. A crew team has to concentrate hard on working together just to stay dry. Racing in water is all about current, wind, drag, and strategy. Consistently synchronized power is essential in order to keep the boat motion smooth and conserve energy for the final push. To win races, the rowers must first of all be excellent athletes, and secondly, they have to focus on synchronizing their efforts with their teammates every time they work out. It takes many workouts for powerful athletes to develop into excellent rowers. Toyota believes that consistent excellence in product development starts with "towering technical competence in all engineers."[9] And the company does not think that such competence is learned in college; it is developed over timeseveral yearswith experience and mentoring. Toyota starts by sending new engineers to automobile plants to make cars. Then they work in dealerships for a few months, selling cars and talking to customers. After about a half a year, new engineers are assigned to a department to work under the guidance of a senior engineer. The first thing they do is a "freshman project"an improvement project which provides a challenge and teaches the engineer Toyota's approach constant improvement. At the end of a year or so, new engineers start a rigorous, two year, on-the-job-training program in which they acquire a standard set of skills. Only then do they move up to entry level engineer and begin to be a serious team contributor. After this initial period, an engineer can expect to spend five or six years within the same specialty before being considered a first-rate engineer.
Excellent software products start with highly competent technical experts in many areasarchitecture, object-oriented technologies, coding strategies, data structures, test automation. This is not a function of the methodology used for development; behind every excellent product, no matter how it was developed, you will find excellent technical people. In lean development, we acknowledge this fact and focus organizational policies on hiring and developing such experts. A development team should have among its members the expertise necessary to meet its goals. Team members should mutually commit to specific team goals, and reliably achieve those goals by working together, pooling their expertise, and helping each other out whenever necessary. It is easier to help each other out when there are multiskilled people on the team. As development progresses, there may be more need for testing and less for development, or more need for user interface coding rather than database work. Developers can help testers, user interaction designers can test user interactions, junior members can pair up with more experienced team members to help out and learn new skills. Every person on the team is first of all a member of the team, and second a specialist in some particular discipline. No one on the team gets credit for being done until all the work the team committed to is done, so everyone pitches in however they are able.
LeadershipDuring a race, a team of eight rowers needs a coxswain to focus on hydrodynamics, aerodynamics, and race strategy. The coxswain should be smart, confident, quick thinking, and weigh as little as possible. A coxswain is the "on-board" leader of a crew team, keeping the rowers focused on applying consistent, synchronized power so the boat glides smoothly through the water and air. During a race, the coxswain's job is to read the weather, the course, and the competition, to make quick decisions, to steer the boat, and to keep the rowers' effort paced so they have both a good position and enough reserve for the final sprint to beat the other boats across the line. A large team without leadership is like a crew team without a coxswain. The team can perhaps go fast in the right direction, but it is unlikely to apply synchronized power and make the subtle course corrections that create a winning product. Toyota operates from the basic principle that teamwork is essential, but someone always needs to be responsible.[12] We concur. All too often we find that "Everybody's job is nobody's job." In Chapter 3 we discussed the importance of a champion who brings to a development team a deep understanding of the market need and the technology that can meet that need in a unique way. The question we address now is this: Does a development team also need a process leader? How many leaders does a team really need, and what are the appropriate roles?
Don't make the mistake of thinking that process leadership is a substitute for product and technical leadership. It is not. The role of champion remains essential; there should be one or two people who deeply understand the customer and deeply understand the technology. If there are two people, they should speak with one voice and have joint responsibility for the success of the product. When an organization puts a new process in place, a process leader may be a good idea. However, the process leadership role must synchronize well with the role of champion, either through close cooperation or by adding process leadership to the champion's role. If there are two people in the champion role already, three may be too many. If there is one champion, she or he may welcome the assistance of a process leader.
Responsibility-Based Planning and ControlCrew teams have coaches. The coach is usually in a motor boat with a mega-phone, organizing workouts and critiquing performance. But once the boat heads out to race, the crew team is on its own. All the coach can do is watch. Responsibility-based planning and control operates on the same principle: There is a time to stop telling well-trained experts what to do and expect them to figure it out for themselves. The way this works at Toyota is remarkable. The product development process has specific synchronizing events such as vehicle sketches, clay models, design structure plans, prototype, and so on. The dates for each event are scheduled by the chief engineer. Every engineer and supplier knows that these dates will noteverbe moved. They know exactly what is expected of them at each synchronizing event, and they willalwaysbe ready with their contribution by the date. There are no excuses. Engineers are expected to obtain for themselves everything necessary to be ready on time. Thus, information is "pulled" by engineers as they need it instead of broadcast to long distribution lists. At Toyota, the engineering tasks required for each synchronization event are well known and standardized. But they are not tracked. The schedule is managed through the fundamental imperative that schedules are never missed. The rest is the responsibility of the engineers. This may seem like an impossible development approach, except that you can find examples of the same approach being successfully applied in every major city in the world. Any city with a daily newspaper has a group of skilled people who develop a new product every day. They never miss a deadline, even when the news is changing right up to the cutoff, even when computers go down, and with surprisingly few exceptions, even while coping with local disasters. So if you would like to see a development process that never misses a deadline, go benchmark your local newspaper. An important consideration to bear in mind when schedules become a commitment is that people must always have the time to do the job that they have committed to complete, and at the same time, the details of the job will always change. As we discussed in Chapter 5, if you expect teams to meet aggressive deadlines, you must limit work to capacity. There is more than one way to accomplish this. Toyota has a good feel for how much effort will be required in any development cycle and staggers model development cycles so that the demands on each function are more or less leveled. Further, Toyota makes no attempt to schedule at the detailed level but expects that each function or supplier will back up their team members with additional help whenever it is needed. PatientKeeper estimates features and tasks at a fine-grain level and dynamically adjusts that estimate daily. The new estimates give PatientKeeper an immediate alert when work exceeds capacity, and the amount of work is quickly adjusted make sure that there is no more work scheduled into a sprint than can be completed by the deadline. Maintenance organizations maintain slack by working on routine requests that can be set aside, which provides the capacity to jump on emergencies when they arise. However you do it, remember that it is impossible to implement responsibility-based planning and control unless you understand the capacity of each team and limit the work expected of a team to its capacity.
|