In Part One of our post on estimates, we talked about some tips to help you get a better estimate from your coder. Today, we’ll tackle another question that you should ask yourself when starting a project (especially if you don’t have a technical background): “Do I need an estimate or do I need a plan?”
An estimate and a plan are very different things, but are easily confused. It can be tempting to skip the planning step—or not even realize that you’re skipping it—because you want to get development started right away. However, it’s important to recognize the difference between when you need a plan or need an estimate so that you don’t develop yourself into a corner (or have to start again from scratch).
Use Your Brain
So, how do you know when you need a plan versus an estimate? Any coder can figure that out for you, right?
Wrong.
It’s incredibly important to pick a coder who can think on a level that is equal to your project needs. As a rule of thumb, the conversation level you can have with your developer should match the intellectual level of what you’re trying to do. In order to make a plan or an estimate, the coder you pick has to “get” what you’re trying to do on an intellectual level and translate that into a concrete plan of action for the development of your project. Your planner needs to speak two languages fluently, Coder and Non-Coder, and then be able to translate between the two.
This doesn’t mean you can let your programmer make all the decisions. Not having a technical background does not absolve you of responsibility for making your project a success! If you’re not tech savvy, it’s even more important that you find a developer who can understand the higher intellectual levels of your business, so that the final product is in line with your overall business goals.
With this is mind, the question becomes “How do I know when I need a plan or an estimate, and how do I find the right person to do each?”
Building a House & Finding a Builder
We find it’s easier to understand what we mean by using the tried and true metaphor of building a house.
Think of it this way: you need to build a house (i.e. do a project), but you have no idea how to build a house. (Well, you might know how to build a house, but for the sake of this metaphor you don’t.) How do you know what to do? Where do you start?
A planner is like a contractor. A good contractor can explain to you all the approaches to building that house in a way that allows you to make an informed decision. You need a contractor who can explain her ideas and give you pros and cons. That way, you’re also learning more about the building (i.e. development) process as you’re making decisions. You need to understand why it makes more sense to build the master bathroom above the garage rather than next to the porch. You don’t need to know all the details of where the plumbing runs, how thick the pipes need to be, or the brands and part numbers for each part that’s going into your master bathroom, but the basic logic of building the room does need to make sense to you. And if you don’t understand why your contractor (i.e. programmer) is recommending something, you must ask more questions until you do understand! A good planner can allow you to make good business decisions. And that’s very different from being a good estimator.
An estimator is like a good plumber. The plumber is a specialist, and he doesn’t get called in until after the contractor makes the plans. The plumber can take those plans and translate them into a list of the parts, tools, and manpower needed to remodel your bathroom, and then give you and the contractor a sense of how long it will take to finish the job (i.e. an estimate). They can sometimes even create an actionable set of tasks, like ensuring that your shower doesn’t become scalding hot when someone turns on the kitchen sink (i.e. a tech spec).
A good coder is like the plumber’s employee who actually builds your bathroom. These employees know their job and the tasks they need to accomplish (i.e. they’ve been given a tech spec). They’re highly skilled and their work is incredibly important, as their handiwork is what you and your houseguests will ultimately see and use on a day-to-day basis. They’re experts at tiling, hammering, and piping, and their work has to be high quality or else the project will go over budget.
Applying It To Development
Now that we’ve drawn out that metaphor long enough, let’s apply it to the actual development process.
Plan
Things you might be doing at this stage:
- Defining the different user types with high-level summaries of those users’ capabilities
- Picking a platform for the project (i.e. a CMS, a certain technology, etc.) and defining the infrastructure of the backend
- Deciding whether to launch a full-blown product, or start with a V1 and make improvements once that launches
The Programmer You Need: Someone who can understand the whole business model and turn that into basic system architecture, frameworks, and technologies that best suit your needs. They should also be teaching you more about the development process by giving you pros an cons to each of their recommendations.
Estimate & Tech Spec
Things you might be doing at this stage:
- Finalizing a detailed list of user types and what each of them can do
- Compiling a complete list of plugins to be used
- Writing out of all the screens and templates to be created for your first version
The Programmer You Need: Someone who understands the plan that’s put in place, any budgetary or time constraints for the project, and the potential pitfalls inherent in the plan. You need to provide this person with as much detail as possible about technologies being used, user types, functionality, and design components so that they can make an estimate with as close to 100% certainty as possible.
Development
Things you might be doing at this stage:
- Coding, coding, coding!
- Regularly checking in with the developer on progress (Trust, But Verify)
- Q/A testing the product (i.e. trying to break it so that you find all the bugs pre-launch)
The Programmer You Need: Someone who knows their respective technology or technologies inside and out. They should have an attention to detail, sound logic, and (ideally) the presence of mind to ask questions when something doesn’t make sense. At this point, the success of your project is pretty binary: does it work or not?
In some cases one Rockstar Coder can do all of these jobs. Sometimes you need to build a team. What’s most important is understanding what you know and what you need to learn, so that you get the right help to build your project.
Now What?
You’re ready to try it out with your Rockstar! With time, you’ll be able to recognize when you need a plan (like our idea of Yelp for Babies, or “Burp” – all rights reserved) and when you need an estimate (like once we’ve defined the feature set and user types for Burp’s V1). It takes practice, but keeping the info from these posts in mind should, in our experience, lead to better estimates and better projects.
And if you need a little help getting started, you can always drop us a line. Our whole job is to match a developer to your project; we learn as much as we can from you about your needs, and then help pair you with providers we think fit the skill set and intellectual level necessary for you to rock your project. So then, the next time you need to hire a developer, you can get us an even more accurate profile of the programmer you’re looking for!