After thinking a bit, Carl decided to take Kate at her word and dropped into the coffee room. He nodded, made a coffee, and went over near the table where Kate was drawing on her Tablet PC.
“Hi, Carl. Something on your mind? Join me?”
“Kate, I’m trying to think about those charts you drew, and what you said about a small early product release. It makes sense as a theory but I don’t see how it’s possible technically. And I’m sure Marketing will ask for the kitchen sink.”
Kate said, “We’ll have to see whether it’s possible, but I think it should be. From my side, I just can’t see putting a lot of money on the line without an early return and an ability to see how we’re doing.”
“OK, now I have even more questions than before. If Marketing would sit still for a small product that could be shipped soon, how would we build it so that it could be extended to add whatever else they wanted? But now I want to know what you mean about ‘see how we’re doing’. You mean like status reports?”
Kate smiled. “Did you have status reports on the Catbird project?”
“I guess they didn’t help anyone much, then?” Kate asked.
Carl frowned. “No. We kept reporting what we had done, and we kept saying that we thought we were late. We didn’t write it in the reports, but in our meetings with Susan and Jim, and Dan, we kept saying that there were too many features and we needed to scale back. But no one listened.”
“How do you know they didn’t listen?”
“They just kept saying that we had a deadline and we had to get everything done. And they kept changing the requirements. It was crazy.”
Kate said, “Was there a list of required features? Were you ticking them off? Were they prioritized?”
“No. There was a huge document of requirements that changed all the time. We were trying to build the infrastructure to support the features and then we would build a version of some feature and they would tell us it was all wrong. Sometimes it just wasn’t done yet and they trashed us and other times they totally changed their minds.
“The Catbird project was Hell. I don’t want to go back there. I won’t go back there, and neither will my people. It’s just not fair.”
“Carl, would you be kind enough to bring me another diet cola? This one got warm.” She handed him the quarter for the company-funded machine.
Carl stepped across the room and brought back a soda. Then he stopped. “Hey, Kate. Were you working me? You never ask anyone to get anything for you.
Kate laughed. “Can’t get anything by you, can I? No, I usually like to do things for myself but I thought you needed a break. And thanks for getting my soda.”
Kate went on. “I would like to hear more about what happened with Catbird but let’s talk a bit about Empire and how to not make it a living Hell. I like things to be fast, but easy-going and smooth at the same time.”
Carl said, “That’s kind of like good driving. If you want to go fast, you have to be very very smooth. You’re moving and adjusting all the time but you can’t be tense or jerky.”
“That’s a pretty good analogy,” Kate said. “I think it holds everywhere. We can’t run our lives on tension. Things should be smooth, relaxed, and fast. And we have to see where we are and where we are going. That definitely applies to software.”
“What do you mean?” Carl asked.
Kate began to draw on her Tablet.
“Well, as I think about Susan and Dan and your status reports, I can imagine they must have been feeling a lot of fear. Time was ticking away, they were getting mixed messages from the technical people, and had no real ability to measure or control the project.”
Carl said, “All they did was wave the spec and put on the pressure. And of course Susan kept going on with that crap about us being bad programmers. That didn’t help.”
“Steady Carl, I don’t need a new soda yet. Let’s not dwell on that ugly time. I’m the new kid: let me talk a bit about what would be better.”
Carl relaxed and grinned. “OK, OK.”
Kate said, “As I think about funding this software project, if it was done like Catbird was, I think I’d panic too. There’s no real way to know how things are going, and no real way to influence when it gets done or anything. There’s not much left to do but put on the pressure. That’s no way to live, for me or for you.”
“Well, we tried to give honest status reports. What else can we do?”
“Carl, I honestly don’t know whether it can be done, but I know something that would work for me. What if we had a list of features that Empire needs, and we just ticked through them one after another?” Kate showed Carl the picture on her Tablet.
“Here’s a picture of what Marketing always wants. They have some number of feature areas – I’ve got four here – and they want them all filled in, top to bottom. OK?
Carl said, “At least filled in. And don’t forget that they change their mind.”
Kate agreed. “Yes. Still, at any moment, they want it all, whatever all means to them.”
“They sure do,” said Carl. “It’s crazy.”
“Well, it can drive development crazy, but in fact if you’re envisioning a product, it’s pretty important to have a complete vision of all the functional areas and every feature you could possibly want. It’s just that that’s not all we need to deal with.”
Kate went on. “It seems like there are a lot of ways that teams try to build software. They might start by building infrastructure, like this:”
Carl said, “That’s what we did. What are those lines growing up?”
“When a team sets out to build all the infrastructure first, the risk is that there won’t be time to do any features, and the product will never get done.”
Carl said, “Sadly, that’s what happened with Catbird. But what should we have done? You need solid infrastructure.”
“Yes, we do need solid infrastructure. Let’s look first at some other ways of getting things wrong. I bet they all seem familiar. Sometimes teams work on one feature area to the exclusion of others, planning to get through them all before product release. Here’s what happens: Some areas are done, some don’t function at all, and the product lacks breadth and is unusable.”
Carl said, “That’s even closer to our situation, except that we tried to fill in infrastructure all the way across.”
“Yes. All these are simplifications of the real situations, which are usually combinations of mistakes. Let’s look at a way that would work if we could do it. Let’s try to build usable functionality in each area, but keep it simple:”
Carl said, “We tried to get them to give us priorities on the huge feature list but they just kept saying they needed it all.”
Kate said, “I think that happens because people have the idea that they’ll only get one chance to get the product right. So they ask for the world. I want the world, and I want it now … but I’m willing to take it in installments. If you gave me that first simple version, and then later filled in some gaps like this, I might be better able to set priorities.”
Carl said, “So you’ve added some kind of product breadth, maybe to make it easier or more capable?”
“Yes. Somehow I chose additional features in each functional area to make the product better.
“If I could always see the product really working, with full but simple functionality, I think I could choose the features and capabilities to fill in next. That’s how I’d like to see Empire built – a simple but functional version, with more and more things filled in as the project goes on.
“But the basic idea is to keep the product visible to the people in charge of priorities, Marketing and Dan in our case, and ideally always ready to ship. So maybe we get about this many features in by our deadline, and we ship it.”
Carl said, “Well, I have a lot of reservations about how we could possibly do that. It seems to me that we’d bog down and have to do a lot of rewriting. But I can see that if we could, it would put pressure on Marketing to make some of the hard decisions about what to do now and what to do later.”
“That’s right on both,” Kate said. “We need to see whether it’s technically possible to go this way. But if it is, we would be in a position to see where we’re going. Even better, as soon as one of those versions I drew has a decent amount of capability in each feature area, maybe we can ship it and start learning what real users want. We could even start earning some money.
“One thing is for sure. If I could see the project working this way, it would keep me interested in funding it. That should be worth something.”
Carl thought a moment, then took a chance. “Kate, it seems to me that you kind of have us over a barrel. If we want to do this project, we pretty much have to do it your way.”
Now Kate had to think. “Well, yes. In this case, it is my money and I feel like I get to spend it on my terms. I wonder whether whoever is doing a project should always feel that way, that the expenditures are coming out of their own pocket. Does that seem wrong?”
“No, Kate, it’s fair enough. But look at it from my side. I have a family to take care of. If Oak River is going under, or the project is going to be terminated soon, I won’t be able to concentrate on my work, and frankly I’ll be thinking about finding a different job. That’s not good for anyone.”
Kate looked at Carl as she thought.
“Good point, and if I want this project to succeed, I’m going to have to deal with it. I’ll promise you this right now: I’ll do my best to set things up so that people know what’s going to happen in plenty of time, and so that we can all focus on our work, not on looking for the exit. And thanks for bringing that up, I really hadn’t thought about it.”
“Thank you, Kate. I was a little afraid to mention it, but it was on my mind. I should get back to work. Is it OK if I talk about these ideas with the others?”
“Absolutely. Most anything I say I’d say to anyone, especially here in the coffee room. In fact, if you and the other technical folks could think a bit about how we could build the product feature by feature, it would help us move forward.”
“I can talk with Gil and the teams about that, Kate. But honestly, with that ‘kitchen sink’ approach the Marketing people take, I don’t see that they’ll sit still for it.”
“Carl, we have an advantage here, and I plan to use it. If the project can only go forward feature by feature, then you and I and Marketing will learn how it works. I’m hoping that you technical people can figure out how to work that way, and that Marketing will enjoy seeing features coming along and use that visibility to make better decisions about what to do and what to put off.
“And for a while, if you and Gil can make it happen, I think I can convince Marketing to try the feature approach. I think it’ll sound like a decent idea to them and will make sense to try it, to get the funding.”
“I’m not so convinced they’ll buy in, Kate, but it’s your problem, I guess.”
“Not entirely, Carl. It has to be technically feasible to build the product that way. You and Gil need to decide that. So please do work with him on that.”
“Will do, Kate. Thanks!