Coding like a human (part 1)

Not Like a Hero

Pedro Costa
4 min readApr 7, 2020
The Code Hero

We all have been through situations where we were asked when a program or a feature we were working on would be ready. Well… We are not heroes. Meeting deadlines, and especially setting them, is hard and that’s why I’ve decided to share a few thoughts on the subject.

This is the first part of a collection of two articles where I am going to share a set of principles that seem obvious to me in order to achieve good results and meet expectations.

It’s not a magic recipe to deliver everything on time (there is no such thing) but will definitely help you get close to that.

If you are used to agile methodologies, you certainly will recognise some things here because they are in line with them. It was written with software engineering in mind but I am convinced that it will work in other areas as well.

Don’t make long-term plans

Working without a plan may seem scary but blindly following one that has no relationship with reality is even scarier.

It doesn’t matter how much you plan, you’ll still get some stuff wrong anyway. Long projects zap morale. The longer it takes to develop, the less likely it is to ship in time. Make progress and get something out now while you’ve got the motivation and momentum to do so.

Make progress

The way we build momentum is by getting something done and then moving on to the next task.

So ask yourself “what can we do in two weeks?” and then do it. The quicker it’s in the hands of customers, the better.

That’s why, nowadays, agile methodologies are so widely adopted in the field of software engineering. We are constantly listening about sprints and do you know why? Because a sprint is nothing more than a short race at full speed. And, all of us, humans, can get the best out of ourselves when we see the goal from a short distance away.

Divide and conquer

The attempts to develop complex and big systems at once– the so-called heroic programming — often lead to big delays. Big delays cause stress across all the team.

Break the big thing into smaller things. It will be easier to estimate. You’re probably still going to get it wrong, but you’ll be a lot less wrong than if you estimated a big project. Projects usually take longer than we are expecting but, if it’s a small one, your estimations will fail only for a couple of weeks. On the other side, if it is a big one, your estimations will fail for a couple of months. Do you see the difference?

There is a limit to how much we can take in and understand at once. With small projects, the probability of being successful is much bigger because we will understand, in a much clear way, the problem and its solution.

Don’t worry too much about the details

Like Jason Fried and David Hansson wrote in their book Rework: “architects don’t worry about which tiles go in the shower or which brand of dishwasher we should install in the kitchen until after the floor plan is finalized. They know it’s better to decide these details later.”

We need to approach our ideas in the same way. Details make the difference but getting infatuated with them too early leads to delays. We can easily get lost in things that don’t really matter and waste time on decisions that, sooner or later, are going to change anyway. So, ignore the details for a while. Focus on the basics first and on the specifics later.

Matthew Jones also wrote an excellent article about this “Bikeshedding” anti-pattern, which is about people spending too much time arguing over trivial and low-cost things. As Matthew wrote: “the solution is to force the leader to make a decision and damn the torpedoes”.

Besides, you often can’t recognise the details that matter most until you start building. That’s when you could see what needs more attention and what could be missing.

Release

Just because you’ve still got a list of things to do doesn’t mean it’s not done. Don’t hold everything else up because of a few leftovers. You can do them later. And doing them later may mean doing them better too. Show the latest version of what you’re working on.

Conclusion

Everyone wants things done as soon as possible. No one wants to be stressed with missing deadlines or spending nights at the office which leads frequently to burnout or worse.

Forgoing sleep is a bad idea and can destroy your creativity and morale. The five principles you have been reading will help you avoid that and increase your project’s success rate. Don’t miss five more techniques in the second part of this article here.

--

--