Agile software development calls for customer collaboration. Collaborating actively with the customer will immediately bring into discussion the company's contracts, sales, maintenance, and communications relationshipsin other words, the whole business. A company that takes the agile model seriously will have to make adjustments in all those areas. Fortunately, the agile approach works well in most business environments. Let us look at a series of cases starting from the software arena and moving outward to business in general. Project Portfolio ManagementAny large organization has a portfolio of projects underway at one time. The management team should balance the effort being spent on each project on a quarterly basis, if not more often. They run into two problems: staff specialization and finding stopping points. In most companies, one person becomes the expert on one piece of code. Every time a function is changed in that piece of code, the organization is dependent on that one person to do the work. One of the characteristics of agile development is increased communication, hopefully with Osmotic Communication. In some cases, as with XP shops, programmers work in pairs and change programming partners frequently. This means that more people learn to work in each part of the system. With rotating pair-programming partners, the organization can shift a programmer to work on a more critical project when needed, with (possibly less qualified) people able to work on the other code. Even without pair programming, it is still a good idea to cross-train people on each other's code bases. The understudy may be less proficient but will still be able to carry out the needed work. The second problem with project portfolio management should be easier to deal with. With properly executed agile development, the system is put into a stable, shippable state every week, month, or quarter. At those points, the people on the project can be moved to other projects as needed. There is a danger of thrashingmoving people back and forth so often that they lose track of, or interest in, what they are working onbut there is at least the option of rebalancing the project portfolio to reflect the organization's current priorities. With properly executed agile development, project teams will be working on the most valuable features of each system[43] in each increment. This means that when a project is trimmed or put on hold, it is always in a usable state. It might happen that the organization never restarts the project or changes its direction. These are both valid outcomes of project portfolio management.
There is, of course, one remaining problem: the difficulty of obtaining meaningful market data to decide which features to move forward into early increments and which to move back or drop. I have not yet met any market analysts who can provide comparative market forecasts for products down to the feature level. Real project portfolio management requires that the management team be able to compare cost and benefit numbers at the feature level in order to decide how to best balance their use of scarce resources in development. It probably will take a combined group of senior developers (to provide the cost numbers at the feature level), market specialists (to provide the return numbers at the feature level), and creative management facilitation to engage the group in discovery of interesting strategies for development sequences in order to come up with good answers to the project portfolio question. Note, as before, the importance of keeping the cooperative game and the "there's only us" mind-set. Customer RelationsCompanies that do custom development may have trouble with agile development because their relationship with their customers doesn't support the point of view that "there is no them; everyone is us." When the contracted company proposes that the customer visit the project weekly to provide input and steer the priorities on the project, the customer replies, "But that's what we hired you to do!" This is a lose-lose worldview. The customer doesn't get the best system they can, and the provider adds risk to the project. Experienced readers will recognize that the agile model of customer relationship matches that coming from Toyota and lean development (Ohno 1988). One would therefore hope that close customer collaboration would be easy to achieve. However, my reading of the lean literature doesn't make me very optimistic on this score. Toyota's customer- and vendor-relation model has not penetrated the minds of most executives even after decades of publicity and exceptional results. I can only think that every additional push from the agile side helps. Tomax's results (see next shaded box) are heartening because they show that customers can become used to, and then expect, to participate in steering their projects. ContractsCompanies that do work on contract are always faced with the problem of price, scope, and time (this applies to all industries). Clients often want all three to be fixed to reduce their own risk. I see (to date) only a few options. Fixed-Price, Fixed-Scope (and Possibly Fixed-Time)This option is the old one: Do your best, however you do it, to come up with a number for the project. Once inside the project, squeeze all the fat out of the process, using all the best agile techniques you can muster (see "Process, the 4th Dimension" [Cockburn 2003c]) to deliver it as well as you can. As far as I can tell, agile techniques do not change your ability to estimate a project. Despite our most fervent wishes, estimating a project is still a matter of previous experience, feel, and guesswork. Fixed-everything projects make sense when the requirements are very stable. They are also used when the two parties don't trust each other, even though there is usually plenty of leeway for one party to twist the situation to the other's disadvantage if they want. Fixed-Price, Fixed-Scope (and Possibly Fixed-Time) But Collaborate with the Customers to Alter Scope AnywayA risky approach. I have seen it done successfully several times, twice for commercial projects and once for a state government project. Jeff Patton (Patton 2005) describes working closely with the customers at the start of the project to identify needs, wishes, and priorities. As the project proceeded, Jeff made sure they were always working on the most important items. As they got close to the end of the time period and it was clear they would come up short on features, he made sure that the items left undone were clearly the least important ones. The customer either forgave the absence of those features or rolled them into a follow-on contract. The government contract I tracked was again a fixed-everything contract. The team worked closely with the users of the system, delivering and installing running, tested, usable software every month. After each delivery, they discussed with the users whether to continue with the contract as written or change directions based on what the users really needed. I found it remarkably brave of the contracted company to follow the users' requests in deviation because in a hostile sponsorship situation, they would have been at risk of non-payment. However, the user base was so happy with the usefulness of the functionality delivered that the contracted company got paid in full. This was a case of converting a fixed-price, fixed-scope, fixed-time contract into a time-and-materials contract on the fly. A dangerous but wonderful strategy if you can accomplish it. Time and MaterialsThis is simply a matter of paying for work as it gets done. It is obviously the best format to use if the requirements are volatile. In one caseI won't even call it a projectthe sponsor changed the requirements wildly, even up to days before delivery. The contracted company always delivered whatever they had running at the end of the quarter, and the sponsor always had complete control as to what was on the top of the priority list. Over a period of years, it became simply a balanced flow of useful software in one direction and money in the other direction. If the sponsor trusts the contracted company, this is the simplest contract to use. The difficulty is that it requires a certain level of trust. What some contractors do is to request a trial period. Using the agile approach, they deliver usable functionality early and so establish the trust of the sponsor for subsequent work (see the house construction example on page 327). Not-to-Exceed with Fixed-Fee (NTE/FF)This is the contract method used in the airport construction example on page 329. It presupposed stable requirements. "Fixed fee" means that the contracted company is guaranteed a certain profit margin over their materials and subcontractors' fees. This protects the contracted company in case requirements are reduced or the work goes faster than estimated. "Not to exceed" puts a ceiling on the total amount paid to the contracted company, which protects the sponsor in case the work goes slower than expected. With protection for both sides, both the sponsors and the contracted company can look for ways to speed the work and live with unfortunate events. The airport construction project on page 329 used this form with Payment on incremental acceptance. Fixed Price per Function Point or Story PointWhen the customer and contracted company can agree on a unit of delivery, such as function points or story points, then they can settle on a price for each unit delivered. A number of contract houses these days estimate the size of a project in function points, create a price per function point delivered, and then have a certified function point auditor assess the actual number of function points delivered in the end. The customer then pays that amount, not the originally estimated amount. This is a nice contract form because it encourages the contracted company to work more efficiently (to increase their pay per delivered function point) and because it allows the customer to change the requirements along the way. The same can be done with XP-style story points (Cohn 2005), except that there aren't any certified story point examiners to judge the final result. Bob Martin of Object Mentor posted an interesting variant to get around this problem: a base fee per story point, plus a lower-than-usual (close-to or below cost) fee per hour. This biases the contracted company to deliver early but gives them some protection in case work proceeds slower than expected. Martin described it this way:
I have not seen that model in action myself, but several people have written in recommending it. Venture-Capital Financing ModelThis can be used with any of the previous contract forms. In this model, the sponsor gives a round of financing for a certain amount of work, and the contracted company must produce results in order to get more funding. The sponsor can cut their losses at any time if they are not getting the results they need. They can presumably alter the terms of the contract after each work period. The result of a work period need not be working software; it could be a paper study, or a requirements document, or anything the sponsor selects. The venture-capital finance model works well with agile providers because the agile provider is used to delivering useful, working software early and regularly. I find it an odd irony that the venture capital financiers running start-ups that I have encountered don't take advantage of their own model to the extent that agile teams do. The venture financiers let the evaluation markers occur too far apart in time. If they attached funding to monthly releases, that would oblige the start-up team to think through what it really can accomplish each month. The monthly progress would give the financiers a better sense of the start-up company's real progress. Incremental Delivery with Payment on Incremental AcceptanceThis can be used with either fixed-everything contracts or the NTE/FF contract. The sponsor expects incremental delivery of integrated, tested systems, constructs and runs acceptance tests at each delivery increment, and pays the contracted company after each successful incremental acceptance. This was used in the airport construction project (p. 329) and in Solystic's French Post Office contract (p. 364). Both project leaders told me that this payment schedule has a wonderful motivating effect on the contracted company. The requirement, of course, is that the sponsors have an understanding of incremental development and can make acceptance tests for the incremental deliveries. The next shaded box is an interview about taking agile into the customer space, with Eric Olafsson, the CEO of Tomax. A few years ago, Tomax worked to fixed-everything contracts. They were, of course, problematic because something was certain to change even within a simple, three-month contract. Eric used the agile model to change the company's relationship with its customers. They now write contracts so that the customer gets early results through incremental development and can cancel or change direction after each increment. In exchange, the customer promises in the contract to make its experts available to the development team and to actively steer the project's direction. The contract converts the customer from "them" to "us," part of the larger development team. The customer gains early returns and greater steering control. Tomax reduces its pricing risk and gets better input from the customer-side stakeholders and users.
Introducing Change into an OrganizationIntroducing change into an organization is scary and difficult. Agile development is doubly scary because it says
This puts agile development fully within the topic of introducing change into organizations, a very difficult topic, indeed. The noted family psychotherapist Virginia Satir studied, among other things, people's reactions to change. A key observation of hers was "if there's ever a question between comfort and familiarity, familiarity will almost always win out" (Satir 1999). That is, even if the familiar mode is inefficient and uncomfortable, people stay with it. The Process MiniatureA useful corollary of that observation is that things are easier the second timethey are more familiar. This shows one possible way out of the unfamiliarity trap: the Process Miniature (Cockburn 2005a). A process miniature is nothing more or less than going through the new procedure in as short a time as possible: a minute, 15 minutes, an hour, a day, or a week, depending on the process.
Going through a process miniature creates in the mind what Grady Booch neatly but mysteriously called a gestalt round trip. After the gestalt round trip is completed, the process exists as an entirety in the mind, can be viewed internally, and importantly for us here, is a bit more familiar and less frightening. Anchoring New BehaviorsThe process miniature also creates what sociologist Karl Weick calls a 'small win' (Weick 1979). Weick found that small wins strengthen a group's strength and self-image. Good groups look for early, small wins to strengthen their sense of team accomplishment. One of these that system designers use is the Walking Skeleton architectural strategy ("a tiny implementation of the system that performs a small end-to-end function"Cockburn 2005a pp. 4950). One of the surprises to me was that people get mileage out of small rewards, even very small rewards. Evidently, these also count as small wins in the mind of the receiver. I was on the receiving end of this technique one time: A colleague visiting my house saw how my assistant had created a "project wall" showing all my ongoing projects and trips. He said, "Wow, that's great! Here, I'll give you a quarter for showing me such a great idea." A few minutes later he found something else that he liked and gave me another quarter. I found myself irresistibly drawn to offering him ideas and looking to see which he thought was worth his little token offering. I managed to get six of those quarters by the end of his visit, and I still keep them in a special place as a memory of his appreciation. You might not think that a token as small as a sticker would have any impact on people's behavior, but just the act of giving and receiving a token of appreciation or accomplishment has meaning to the receiver. Here is Kay Johansen's story of using stickers to help create change.
A Large Change is Many Small OnesIf people are afraid to make small changes in their habits, they are more afraid of large changes. Mike Collins, an expert at lean development, addressed this problem in an interesting way at the O.C. Tanner Manufacturing Company in Salt Lake City (see the next shaded box). In reading the shaded box, you may note that his method draws on Satir's idea of growing familiarity and Weick's idea of small wins. Mike understood that if he showed up at their custom-awards manufacturing factory with a design for a tenfold improvement in their system, he would encounter resistance from employees and management. Instead, he created a new production area with a minor set of modifications, from which they got a noticeable but not revolutionary improvement. He posted the results, reflected with the people involved about possible improvements, and created a second trial production area that was both smaller and faster. When I first visited O.C. Tanner, they were using their third new production area. The original and the first trial production areas were still in use. The new one used about a quarter of the floor space of the original and filled contracts in about a third the time of the original. At the time of this writing, the entire facility has been converted to fourth-generation "mini-factories," as they now call them. Production lead times have been reduced from over 18 days to about 6 hours, with a threefold increase in efficiency. With the smaller floor space, production workers get Osmotic Communication. An information radiator at the entrance to their production area lets themand their managerssee what is being worked on as well as the productivity effects of the improved system. They expect to double their efficiency again during 2006. What I found impressive was not so much the improvements the team had made (which Mike might have been able to accomplish from his prior experience and lean manufacturing theory) as his patience in working through a sequence of small changes and victories rather than going for one big win. I note in particular that
Mike and I both noticed that he would almost certainly have met too much resistance to succeed if he had proposed the third or fourth layout at the very beginning. Notice in the business literature the frequent reports of a company achieving breakthrough results by making many small changes and reflecting on those changes. The latest I read was about Out-back Steakhouse soliciting ideas from employees, trying them out in selected restaurants, and then deciding which ones to franchise. These ideas tend to come from within the organization rather than from an outsider. This is the "we are tuning it for us" principle, something I consider a critical success factor for the adoption of new processes. There is one other factor that assists in installing change: a threat to the company's survival from an external source. This is covered in the next section ("Programmers Read the Harvard Business Review").
Programmers Read the Harvard Business ReviewAn odd cultural shift has been the increasing number of programmers and testers who are reading the Harvard Business Review (HBR). This is a direct consequence of their watching the business consequences of their frequent deliveries and their prioritization choices. Enough technical leads have written to alert me to some article in the HBR that I ended up subscribing to it myself, just to keep up with what the agile development community was discussing. As an example, the April 2006 issue (the time of this writing) contains two articles relevant to the topics in this book. Ram Charan's article, "Home Depot's blueprint for Culture Change" (Charan 2006), details Home Depot's massive cultural change process as it went from a decentralized, entrepreneurial set of stores that could not or would not collaborate to a centrally orchestrated set of stores that did collaborate. The new CEO, Robert Nardelli, was brought in from GE exactly to make that sort of cultural change. Nardelli had one force on his sidetheir competitor, Lowe's, was gaining quickly, and it soon became clear that Home Depot's survival was at stake. Nardelli used that force to make many changes very quickly. While hard, it had the advantage that results also showed up quickly. When people complained about the pace of change, Nardelli was able to answer back, "Good point. Give me five minutes. I'm going to go call Lowe's and ask them to slow down for us." This sort of external threat helps a lot in instigating change. Key to their change process was the institution of metrics. I found it interesting to read that metrics were used to increase collaboration, the "we're all us" mind-set:
They used the metrics to show that they made a greater profit when working together than working separately or competing among themselves. They instituted
Alert readers will recognize all of these as staples of the agile approach. I noted two more key points in the article, the first concerning how long it takes to get a cultural change to stick, and the second about the importance of suggestions from inside the team:
Note how similar these points are to those raised by Eric Olafson and Mike Collins in their shaded boxes. The same issue of the HBR included an article about global localization (Rigby 2006):
The recommended strategy is to standardize within a related cluster of situations and localize separately in each cluster. This strategy matches the discussion earlier of tailoring methodologies to projects (see "Methodologies across the organization," page 210). Several organizations I have visited came to the conclusion that they could benefit from three base methodologies (for each major project type they encountered), and they should then tune the base methodology locally on the project. This allows them some scale advantages and some tailoring advantages. There are two points I wish to draw from this development:
House ConstructionMany people argue that house construction isn't (or is) like software development. Because I have been making extensions to my house for several years, I now have some first-hand evidence to offer.[46]
You can probably imagine how I would go about making house extensions. They should be done incrementally, using time-and-materials (trust-based) plus venture-capital (cut your losses) funding in close collaboration with both the architect and construction contractors. You would be right. In our first conversation, the architect suggested creating a "master plan" of all the desired changes and then doing the work incrementally. I declined because I was pretty sure that we would change too much for the initial plan to have meaning by the halfway point, and it would end up being a waste of my money. As events transpired, I was correct. We chose to run each idea as a standalone project but were careful to ask at each key moment, "If we were to extend in [some particular way] next year, how would that affect our decision now?" Surprisingly, we found no cases where the future choice affected the present decision, including putting a partial basement under the house. Our first project was to put a basement under our house.[47] This turned out to be easier than expected because our house was built on short stilts to provide an insulating air cushion over the ground.
Rather than excavate the whole basement, we decided to excavate only a third of the basement. This gave us the basement entrance we needed and left open the question of whether we would extend the basement or build a side wing to the house (in the next project). We learned that there would be no cost savings for excavating more than we needed now, even if we chose to expand the basement later. The XP community calls this the YAGNI principle, for "You Aren't Gonna Need It." We excavated only what we needed. Three years later, we still have no plans to extend the floor space, either above or below ground. YAGNI is holding. The architect and the contractor looked underneath the house to see how to support the house while digging underneath it. The architect launched into a dissertation on the various choices. The contractor cut in with, "Why don't we just run a giant beam right down the center and hold the whole thing up while we excavate?" Note here the application of the 11th principle of the agile manifesto:
The architect adopted the suggestion, and after that, the architect, the contractor, and the construction crew had excellent conversations that merged their best ideas. To this day they always trade construction ideas back and forth along with how those might change the design of the house itself. A surprise hit us on the first day of construction. They knocked a hole in the concrete wall where they were going to excavate, peeked in, and discovered that the beams under that part of the house ran perpendicular to those where they had looked under the house. This ruined their plan for the support beams and showed that once again, civil engineering is ahead of software engineering. It usually takes software teams a week or two to invalidate plans. These people were able to do it within hours. As we progressed, I quickly noticed that the contractor kept changing his "fixed-price" bid for the project as new information appeared. I finally suggested we drop the fixed-price façade and just work to time and materials. His reply surprised me: "If you are willing to carry the extra risk, that will be fine with us." I said, "I don't see any extra risk. You'll just change the price whenever something changes anyway." He said, "That's true, but most people don't recognize that." In exchange for my accepting the "extra risk," he lowered his profit margin from 13% to 10%. We each felt we had benefited from this change. With the new contract in place, his crew was able to do any number of other small projects for us, such as changing the kitchen counters, adding closets, and fixing the fence around the yard. Neither these nor the other usual surprises, twists, and turns on the project worried either of us any more. I noticed with some interest that he and his crew held a daily stand-up meeting[48] each morning to set their day's work goals. In this short meeting, they ensured that they knew what they were working on and had the materials to get it done.
The project came to a successful conclusion, and we gave a small bonus to the contractor and the workers. Unbeknownst to me, our prompt payments made us preferred customers, which proved useful for the next projects. The second project was to sculpt the yard, move in stone slabs, and do some general landscaping. Although this was a "minor" project, the contractor was delighted to help. He sent digging and moving crews to help when we needed it and even operated machinery himself when his key men were ill. This was part of us being preferred customers, a roll-forward benefit from the first project. The third project was to add a two-story porch to the side of the house. At this point, we were glad not to have done a master plan because this addition was completely different from anything we originally had in mind. By now, there was trust and good communication between the architect, the contractor, and us. The small wins with reflection, the venture capital funding model, and the willingness to dance with the situation were all paying off. The contractor passed along our preferred customer rating to his suppliers, so we got extremely fast service. He also took it upon himself to see that they gave us good rates, so we saved money. Because we contracted by time and materials, it was natural to have the sub-contractors do additional projects around the house as we needed it. The final bill for all this extra work was much lower than it would have been had we contracted each one separately. While the contractors are finishing the side porch, the architect is starting on a redesign of the front porch. His design is quite different from what he originally proposed when he was enamored of his master plan. That is because we now have all the other major changes to the house in place, and he can see how to tie them together in the front approach. The point of this long story is to illustrate how the lessons from agile software development transfer to a completely different field. Incremental development, architectural changes, daily standups, YAGNI, time-and-material contracts, venture capital funding, customer involvement and steering, small wins, process miniature, and developing collaboration and trusteach of these proved useful. Airport ConstructionThere might be those of you who think that house construction is too easy. I was delighted to meet an architect who uses the agile processes in airport design and construction. On a flight to Boston, I sat next to Joe Wolfe, who answered in reply to my question about his occupation that he designs airport terminals (Terminal E in Salt Lake City and the new Delta terminal at Logan Airport). Not being able to resist, I asked how he worked. His reply astonished me because he recounted almost point for point the Crystal Clear methodologyexcept he was doing it with several dozen subcontractors on airport terminal construction! I showed him my draft of Crystal Clear, including the blitz planning technique, and he said, "Oh yes, that's what we do." At the beginning of the project, he collects the subcontractors in a room and has them brainstorm the work they will have to do. They write their tasks and time estimates on sticky notes and post them on a large wall. They sequence the tasks on the wall until they have a sensible initial plan that shows both tasks and dependencies. Someone transcribes the contents of the notes into a computer after the session.
Note the similarity of his working style with that described in the discussion of personal safety in Crystal Clear (Cockburn 2005a, p. 29):
I was stunned by Joe Wolfe's account of designing and building an airport, as it didn't match my preconceptions at all. As a final question, I asked him if this way of working was normal in the airport-designing industry. He said, no, it wasn't, but he couldn't see how anyone could work in any other way and get the terminal completed on time. He added that he had been working this way for several decades, and his clients were so happy that he never had to look for work. Book PublicationFinally, one can apply agile development to book publication. I did this for the first edition of this book. The normal book publishing process takes about four months. Because we had only two months before the conference announcing the book, I asked to manage the publication process myself, using the principles in this book. The first thing I did was to select people all living in Salt Lake Citythe closest I could get to full collocation. In a normal production process at that time, the manuscript would be mailed in paper form from person to person, with pencil marks on it for changes to be made. These days, the manuscript is marked electronically and emailed, but that only partially improves the matter. Having every specialty located in Salt Lake City is not quite Osmotic Communication, but at least we could all meet at someone's house to discuss the manuscript. Naturally, we used electronic markup and email instead of paper. The second change was to work incrementally. Most of the editors I have encountered like to mark up the entire manuscript in one pass. This is largely a consequence of people working separately across large distances. Knowing we would meet periodically, we arranged to build each chapter separately. I made a dependency grid marking the work needing to be done by each person so that the illustrator could work at a different pace and on different chapters than the copy-editor and the page layout person. I allocated a certain number of rework cycles for each person. This way, each person could be busy doing their work as independently as possible from each other person. I met with the copyeditor after she marked up each of the first several chapters so that we could synchronize the style and nature of the changes. As we formed agreement on what counted as a mistake versus what to leave as author's style, the number of marks she had to make got smaller, and the number of corrections I had to make to her corrections got smaller. This was an improvement over the usual mode, in which the copy-editor marks up the entire manuscript, and then the author has to unmark any parts that are style instead of mistake. On the final day, we met at the house of the page layout person. Several times we found ourselves working around an awkward column break and correcting sentence structure at the same time. With all of us sitting together, sometimes I would revise a sentence to make it fit before a column break, and sometimes the layout person would reduce the interline spacing by a small amount to make the extra line fit within the vertical space. This experience with book production taught me several things.
Conference Organization and Limits of the Agile ModelI can think of only two environmental factors that limit the applicability of the agile model: distributed teams and inability to use incremental development. Distributing the team slows communication and feedback, which makes it more difficult, though not impossible, to use the agile approach. This was discussed at length in "Agile teams must be colocated" on page 246. When working in a distributed team situation, more care must be placed on following the agile principles in general. Any situation in which incremental development can't be done loses some of the benefits of the agile approach. Space exploration is one. The incremental version of putting a man on the moon would be to put his foot on the moon in the first space shot, and then to add other parts of his body and equipment on subsequent space shots. Clearly that doesn't make sense. What we employ instead is the use of iterated prototypes: putting a whole man in orbit, putting a man and a craft around the moon, and then, finally, ten years later, putting a whole man on the moon. Note that all the other agile principles can be used even in space exploration. Possibly the most difficult situation to try to apply the agile model is in organizing a conference, particularly with volunteers (as is often the case) located in different parts of the world (as is often the case). There are no iterations, there are no increments, there is no opportunity for feedback, there are no users to get feedback from. Here is our story from organizing the Agile Development Conference of 2003 and 2004 and how we "ate our own agile dog food."
The ADC somewhat typically became the victim of a hostile takeover and was merged with a competing conference. Many innovations were lost: the idea of a design epicenter, the apprenticeship model, the use of a vision statement, the reflection workshops following the conference. As predicted in the cooperative game model, with the change of team came a loss in the understanding of what made the conference special.[50]
While I feel sad about the loss of ADC's innovative ideas and vision, all the previous is to be expected in business, whether agile or otherwise. It is partially satisfying to see that the theory predicts properly. I catalog these ideas here in case someone else has occasion to use them in their own conference design. |