Black Box process

I was sitting in front of my laptop staring at the blank screen. The online meeting with the client, Sean, just finished and I was trying to recap what we just discussed. What he was asking me sounded impossible. “I want to build this app, but I don’t have

I was sitting in front of my laptop staring at the blank screen. The online meeting with the client, Sean, just finished and I was trying to recap what we just discussed. What he was asking me sounded impossible.

“I want to build this app, but I don’t have time to deal with the process and details myself.  It's so frustrating. Is there a way to build an application without dealing with all of this?”

It wasn’t the first time I heard this kind of question. I was developing software for ten years and wore different hats, but I had no idea how to answer it. Software development is hard, outcomes and time frames are unpredictable, and teams needs a lot of hand-holding. It takes a lifetime to learn how to deal with all that, and it takes plenty of time to manage the process day-to-day.

“So you want to build an app but don’t want to spend time managing the process?”

“Yes,” he said. “You are more than just a developer, aren’t you? You were telling me about your failed startups when we just met. Can you help me solve my problem?”

That was what I was thinking about, staring at the blank screen that evening. Sean wasn’t someone who didn’t know how to run the business or didn’t want to put in the work. In fact, he was very successful and accomplished a lot. Sean had a company in the music industry and wanted to create this app to expand his business. He was just too busy running a successful company and didn’t have time to think about software development.

And I found a solution.

The solution

That conversation led to the development of a new way of developing software for clients. I called it “Black Box Process” because it hides all the details from the client. In computing and engineering, a black box is a device or system that is defined by its inputs and outputs, and nothing is known about its internal workings. That was exactly the process we created — Sean was able to tell what he wanted to be done and then just reviewed the end result.

Here’s what I did.

First, I assembled a team to work on the project. Since we had limited amount of time and there was a lot of work in front of us, we needed to hire people — a business analyst, a project manager, a designer, a QA engineer and two developers, backend and frontend.

The team helped Sean to understand what he wanted to build, what goals he had and also what limitations were in place. Together we identified the audience, outlined features that have to be developed and created initial roadmap of the first release. It gave us the idea of what has to be built and a rough understanding of time and budget.

Once the roadmap was done, we started to interview Sean about features that he wanted to build. It took about 20 hours in small one-hour sessions to get everything he knew about the music industry on paper. He shared everything he learned about the music industry in the last ten years. All his domain knowledge about the common processes and type of people working in the industry was captured and described.

After we had the roadmap and all requirements written our developers started to lay out the architecture while designer created the interface. The team did the rest of work, working closely with Sean to make sure that implementation was perfectly aligned with what he expected.

Since then, the app has:

  1. Allowed Sean’s company to automate internal processes making them efficient
  2. Landed him contracts with major companies in the industry who were willing to use the app in their process
  3. Increased the income to his main business significantly

We realized that the process was much bigger than that. Sean’s problem wasn’t unique because we had other clients approaching us to get the same service. We were a tiny team without even a website, so we knew that we found something that a lot of people want to solve.

Bigger problem

There are thousands of people like Sean — established professionals who know their industry and have great ideas of applications locked up in their heads. They are not building them because the process of software development is too confusing and time-consuming.

How many people do you know who have an idea of an app and don’t do anything about it? You are probably reading this because you have an idea too. Maybe it’s something that will help your existing business to save a lot of money. Or perhaps you want to disrupt your industry by automating existing service. But you are not building it.

Why are you not building your app?

Why not? Because you’ve probably run into the same problems that Sean did. The options you currently have doesn’t work for people who don’t have time to dedicate to software development. Basically you need to either learn to code, find a co-founder that will build everything for you for equity or build and manage your own team.

Here are the basic steps required to build an application:

  1. Find out what exactly you want to build
  2. Find out how to prioritize the work
  3. Find the right people to design the UI and write code
  4. Find several hours a day to manage the people you’ve hired or to do everything yourself
  5. Test the software, spot and report bugs
  6. Track the roadmap and figure out how to have everything done on time (Tip: it’s impossible, you need to prioritize)

That's an outstanding amount of work, and you need to also take care of customer development, market research and experiments, funding, and marketing. Even if you don’t have an existing business or a full-time job already, it’s hard to find time for everything.

And guess what happens? You never get your app built. Maybe you tried to hire a freelancer to start working on it, but you quickly realize that she needs much more from you that you have time to give. Because of that, you don’t see the results like the ones Sean did.

I think that software should be built based on the ideas of best people who have the domain knowledge, not just those who have technical skills or have good connections. But right now the only people who build software are those who have the skills or are lucky to have friends who have them.

It doesn’t have to be this way. The Black Box process can solve this problem.

tags