ไม่ได้แนะนำหนังสือนานแล้ว เล่มนี้เป็นเล่มเก่าที่ผมเคยอ่านครับ เป็นไฮบริดจ์ระหว่าง โลกยุคก่อนกับหลังอไจล์ อ่านแล้วเปิดหูเปิดตาเอามากๆ เพราะ หนังสืออธิบายเรื่อง Use cases จริงๆ ไม่ใช่ Use case diagram คือ ก่อนหน้านั้นอ่านแต่พวก UML ทำให้เข้าใจไขว้เขวไปว่า Use cases = Use case diagram แต่พอมาอ่านเล่มนี้แล้วทำให้สว่างไปเลยว่า Use cases นั้นมีมาก่อน Use case diagram เป็นเพียงแค่การพยายามบรรจุ Use cases เข้ามาใน UML เท่านั้นเอง ซึ่งความเห็นส่วนตัวแล้ว อิหลักอิเหลื่อเด็มที ในหนังสือเล่มนี้ มี part หนึ่งที่เป็นจุดเริ่มต้นที่ทำให้ผมหันมาศึกษา Agile คือเรื่อง เนลล์กับร้านกาแฟ ขออนุญาตคัดมาเต็มๆ โดยไม่แปลนะครับ จะได้ไม่เสียรสชาติ
Nell and the Coffee Shop
Put yourself in the position of a businessperson for a minute. Let’s say you are the owner of a small coffee shop. You are an especially sharp coffee shop owner. You know that investments in technology can pay off in increased business if you pick the right ones and use them intelligently and long enough to recover your initial investment.
One day, a young lady named Nell walks into your coffee shop and tells you she can provide a software system that will increase your business during slow times by 50%. She certainly has your attention. She explains the concept of the system to you and you realize that it could possibly work. Now the question is, how much? The price she quotes is reasonable, but you push her off. First, you need to crunch some numbers to determine if the investment in this system will pay back in a reasonable time, let’s say within one year. The numbers come out looking good, full payback in nine months. Next, as a businessperson, you try to negotiate a lower price with Nell for the system. After all, payback in seven months is better than payback in eight, right? Surprisingly to you, Nell agrees, but does not negotiate a compensatory reduction in the system to accommodate the reduction in price. She just gets an annoyed, worried look on her face and accepts the deal. Oh well, it is always nice to get something for nothing, you think.
Nell says the system will be ready in one month. Perfect, you say, because in one month there will be a lot of tourists coming in for the annual festival. Increasing business during slow times with all those tourists around will mean a lot more money in a short time.
First, she interviews you quite extensively to understand how your business runs and how the system will need to work to give you the gains you need. You’re impressed. She is skillful at getting to the core business issues that drive profitability and that cause the slow times. Then she explains that she will be gone for the rest of the month, designing, developing, and testing the software system to be ready by the deadline. So far, so good.
Nell is gone for only about three days before you realize you forgot to mention an important fact about the coffee shop that may help her. You call her and explain this fact, but you’re surprised at her response. She says it is too late to introduce changes; only the information discussed in those interviews was relevant. Everything else will have to wait until “version two.” You are not sure about the impact of this new fact, but in order to keep a good relationship with Nell, you back off. She talks about “changecontrolmanagement” or some such thing. Okay, okay.
After a week and a half, you are talking to a customer and she tells you about the coffee shop two streets away that has begun to offer ice cream as well as coffee, in anticipation of the tourists. The combination of coffee and ice cream is the newest wrinkle in coffee service; everyone’s doing it. You think about it, and you realize that you could get the freezer in, set up the supplier relationships, and hire new staff in time to quickly add ice cream to your offerings. Oh, almost forgot about Nell! You give Nell a call to tell her about the changed situation, quite proud of yourself for thinking to include her. This time her response is even more severe. She says it is impossible to incorporate the ice cream part of your business into the system and still meet the one-month deadline. She gives you an estimate of two months to do the complete system for coffee and ice cream. Two months? The tourists will be long gone by then. Isn’t there some other way?
Nell, ever the vigilant project manager, says that she can’t wring blood from a stone, something has to give. You can’t have all these features, by this deadline, for this price.
At first you’re upset, but then you go over her words one more time. All these features, by this deadline, for this price. What a relief! You realize there are many features you could easily do without; you could use them as trade-offs to get the ice cream features incorporated.
Sorry, Nell informs you. She’s already done the analysis and design and has begun coding. The feature set was locked in when we had those interviews; we can’t go back and change them without adding to time and cost. Darn! You now realize you’re either not going to have the software in time for the festival or you’re going to have to live without the ice cream features, which are critical if you add that to your business. You begin to wish you had never started doing business with Nell.