Jr. Developers #2: Think Small to Ship Fast

Mike Coutermarsh
4 min readDec 8, 2015

--

Hello Jr. Devs 🙌,

This week we are going to talk about how to break big projects down into small, manageable pieces and ship fast.

Ever have that feeling of how will I ever get this done?

In this post I will show you how to take on large projects and get them out the door as fast as possible.

We’ll cover:

  • The limitations of your brain 😀
  • Focusing on what’s most important 😍
  • Big scary problems → small solvable problems 😱→😎
  • Many small changes leads to big progress 🌟

#1. Your brain can only do so much at once

To ship fast, you must first embrace that your brain can only handle so much at once.

As a developer, the projects you work on will generally be too large & too complex to hold all the information you need in your head at one time. It’s impossible to think about everything. You must deliberately focus on small pieces of the overall project. Solve one small problem at a time.

#2. Reduce the scope as much as possible from the start

When you first get a new project. You need to identify what the minimal core functionality is. Remove anything that isn’t absolutely necessary.

This will help you get focused on the key problem you’re solving. Putting less on your plate & making it easier for you to get started and make progress.

Remove anything that’s not absolutely needed

An easy way to do this, is to start asking yourself questions.

does feature X really need to be in version 1? Or can it wait for version 1.1?

If you’re working with a product manager, they should be really good at helping with this. Ask questions like “if removing feature X gets us shipping 1 week earlier, can we ship without feature X?”

After you’ve done this, you’ve now identified what’s most important / adds the most value. You’ve reduced the scope. You’ll be able to move faster & ship what’s valuable sooner because of it.

Shipping leads to momentum. Momentum = more shipping. The sooner you get something out the door, the better.

#3. Break down how you will build it

Once you have reduced scope & know exactly what you need to build. Spend some time planning out how you’ll build it.

Thinking about an entire system is hard. But thinking about individual components is easy. Make your life easy.

I’ll generally write out a todo list, or draw a little picture like this.

Break it down into pieces

If you’re not sure yet how you’ll break down a problem. Talk it out with a more senior developer, or your favorite rubber ducky.

#4. Build each component

Now the fun part, start building.

At this stage you should know each individual component that you need to build. Pick one and focus on it. I promise you that building this individual component will be much easier now that it’s all you are focusing on.

The smaller the task, the less likely you are to procrastinate. Get started and you’ll start building momentum.

#5. Shipping small pieces

Each component should result in at least one pull request.

Small changes = Big Progress

Get this pull request reviewed by your teammates. Since it is a small pull request, it will get reviewed faster. Then ship it 🚀.

Make lots of small PR’s that look like this. People love reviewing these & you will get more quality feedback.
Avoid doing this. Large PR’s take longer in code review. And they get less valuable feedback.

But wait, why am I shipping things if they can’t be used yet?

It’s 100% OK to ship code that does not affect the user yet. Getting it merged means that it is one less thing you need to worry about. Small changes also result in less risk to production.

#6 You’re done! Now what?

Congrats, you’ve shipped! Now that it is out in the world, you can revisit that list of initial features that you cut out and evaluate if they are still important enough to be added on. If you do decide to add them, making the changes will be much easier. You already have something out & working in production.

You might realize that those cut features weren’t so important in the first place and there’s no reason to add them now. You’ve saved yourself and your company a lot of time & $$. 😀

This article is part of the Jr. Developers series. To start from the beginning, go here: Jr. Developers #0: Hello World.

If you found this helpful, you can 💥join my email list here💥. I send out an email each time I publish something new.

I’d love to hear your thoughts, please tweet me @mscccc 🌟

Please hit recommend to share with your friends 😃.

--

--