Software development has two phases, and you are constantly flipping between the two. There is the research phase, in which you are thinking about what you want to build. And there is the development phase, in which you are actually building. These two phases are polar opposites of one another.
The goal of the research phase is discovery – you are looking for the “a-ha!” moment. You are not trying to create something, you are trying to decide what it is that you want to create. You are searching.
The goal of the development phase is quality – you know what you want to create, and your goal is to make it great. You are building.
You need both phases, but it is critical to remember that searching is not the same as building.
The Research Phase
Let’s say your name is Christopher Columbus. You’re about forty years old or so, kicking around Genoa, and you have something of a mid-life crisis. Because you have a bit of a big head about you, you suspect one day you might be written about in a blog, so you decide to speak and think in a terrible faux-Italian accent.
“My life-ah,” you say to yourself. “My life-ah, it is too much-ah about the pizza-pies and not about the finding new countries.” And so you decide that, despite your financial advisor’s stern advice to keep all of your gold in a diversified portfolio of stocks, bonds, and an index fund which tracks the price of Roman Catholic indulgences, you instead blow everything on a sailboat, rope in a bunch of your drinking buddies, and head out to the islands for a long party with the locals.
Now, if you were looking for, say, a world — a New World, perhaps? — how would you do it? Well, here are a few tips:
- Get a lot of people involved. Involve a queen if possible.
- Try a number of different approaches. Don’t get just one boat, get three.
- Don’t get too hung up on exactly where you are going.
- When you encounter something new and unexpected — say, for example, you accidentally stumble upon, I don’t know, North America while you’re heading for India — just go with it.
The goal of discovery is to find something new.
In other words, you are actively trying to create a set of conditions around you so that you find something new, non-linear, and unexpected. Research is a great way to find a brand-new solution to a problem.
The Development Phase
Now, say, for example, you’re a friend of Columbus. Let’s call you Leonardo. You’re a painter, a sculptor, an architect — in fact, you dabble in a lot of things. Truth be told, you probably spread yourself a bit thin at times, but that’s okay, as you’ve always considered yourself something of a Renaissance Man.
Your friend Chris approaches you one day. “Leonardo,” he says. “Leonardo, you’ve been-ah working too hard-ah. And don’t take this the wrong way, but painting that girl with the weird smile we met at Senor Frog’s the other night? I don’t know, seems like it could sort-of creep her out a bit, you know? I think you could use a vacation. How about a cruise?”
And, to be honest, you have been working pretty hard. And, hmmm. Maybe an all-inclusive might be just the thing.
And so there you are, on the Santa Maria for a few months. The breakfast buffet in the morning is well-stocked, and the bacon is pretty crispy. You’re perfecting your shuffleboard game in the afternoon, and there are worse things than ordering a Mai Tai on the deck and watching the sun go down each night.
Until, of course, the ship runs aground, and everyone looks around for someone who knows how to build someplace to live. And wouldn’t you know it, save for the waiter who had one stupid line in The Merchant of Venice and now thinks he’s somehow going to parlay that into a supporting role on a new sitcom, everyone else on the ship seems to be some type of sailor.
“Fine,” you say, shaking your head and setting your Nina Colada down on the table. “Fine, I’ll build a fort for us, but I am definitely asking the travel agent for a partial refund on this cruise. Fort-building was not part of the plan, the shrimp cocktail I had at my last supper was barely edible, and the Merlot is seriously beginning to taste like water.”
But such are the risks of booking travel through a friend, and so you set about building a fort.
Now, let’s say you decide to apply the key principals of research to your fort-building process. Specifically, you decide to get a lot of people involved and you try a number of different approaches. You don’t get too hung up on exactly where things are going, and when you encounter something unexpected, you kind-of “just go with it.”
Most folks would probably intuitively feel that this is not the greatest way to build a fort. In fact, most folks who, say, might find themselves in the market for a nice two-bedroom-two-and-a-half-bath fort, and discovered the “Fort Discovery Condos” in an online search might decide — despite the granite counter tops and all-new appliances, which they have to admit, really would be the perfect place to throw a house-warming — that this might not be the most stable place to live. And nothing ruins a good bruschetta more quickly than ceiling tiles raining down upon it.
Research is a great way to find something, but it is not a great way to build something. When you actually need to build something, your goals are the exact opposite of those you had when you were in the research phase. That is, you don’t want that many people on the project. You don’t want a number of different approaches: you want one. You want to know exactly where you are going, and, should you encounter something unexpected, you want to stop and solve that problem right away.
Research is about maximizing the unexpected. Development is about minimizing the unexpected.
How the Two Phases Feel
If you are in the research phase, each new idea will feel fresh and exciting — and you’ll want to create hundreds. If you are in the development phase, however, those same new ideas will feel confusing, troubling, and will slow things down as your team “chases” or, even worse, simply stops to wait until those ideas are solidified so they can continue properly.
If you are in the development phase, strong designs, specifications, and processes will feel calm and peaceful. Every day a small new part of the project will get completed, and every day you’ll feel a little bit of progress. However, if you are in the research phase, that same approach will feel old, confining, and boring. You’ll look around and feel that your competitors are “getting away from you” and that your team “isn’t moving quickly enough.”
If you want to build software, it’s important to recognize that there are two phases to the process, and you will need to decide how you want to separate these phases. There are a great number of ways to do so — and the approach that works for you may be completely different than the approach that works for another.
But if you don’t know which phase you’re in, then: hit the brakes and figure it out. Because you most definitely need both phases — you just can’t blend those two phases into one.









