Think first, code later.

Elvio Cavalcante
Developers Writing
Published in
2 min readJun 26, 2015

--

Why think first? Because we need to think before we do! And how do we do that? White-boarding!

Most of the developers would say: “I know what I’m doing, I don’t need to whiteboard. Time spent white-boarding is time that I could spend coding my project.” That’s true, but I assure you that refactoring your code or getting lost during the process is a way more expensive.

If you can’t whiteboard your ideas easily, it may be due to the fact that you have several doubts about it, or maybe you don’t know as much about the "thing" like you thought.

White-boarding is a technique that helps you to clarify your thoughts and communicate them to the world. This approach allows your team to contribute to the project or catch a mistake that you didn’t notice. Having a clear idea of what we are doing is the best way to avoid mistakes in the future.

My last project was a great experience. I was able to finish the MVP (Minimum Viable Product) in two days, just because I white-boarded all of my ideas before I wrote a single line of code. The MVP was a file sharing service, ApproveIT, which gives recipients the ability to approve content sent to them via email.

White-boarding, in addition to being good practice for application design, is also an excellent approach for solving algorithms. It drastically improves your communication skills, believe me! I've doing it so many times that I can't imagine try to solve an algorithm, or expose an idea to my team without white-boarding it.

Sometimes I prefer instead white-boarding to create a diagram, it depends of the size of what your are going to build.

I intend to write a simple tutorial teaching the basic concepts of diagramming, I hope to finish it soon!

If you find any grammatical mistakes, forgive me because my native tongue is Portuguese. Thanks Andy Tran for helping me with the cover picture.

--

--

Elvio Cavalcante
Developers Writing

Software Engineer, Javascript Expert, Product Developer, Startup co-founder and passionate about web technologies.