I’m a sucker for time management and efficiency. Not the type of time management that has me breaking my day down minute-by-minute, but rather into small manageable chunks. (Minute-by-minute has it’s own efficiency problems!) Wasting time, whatever form it comes in, is just plain painful.
The most efficient process I’ve found that supports this type of time management and development efficiency is keeping everything as simple as possible. Whether it be those day-to-day tasks or specific development problems, if I’m going to work on it, it’s gotta be simple. You might instantly think that I sound like a simpleton looking for only easy work tasks, but just hear me out! Simple and easy have different meanings in this context.
Simple: Used to emphasise the fundamental and straightforward nature of something.
Easy: Achieved without great effort; presenting few difficulties.
Almost every development problem can be broken down into smaller, simple tasks that come together to make up the big picture. You’ll very rarely be given a simple task from the get-go, you have to work for them. Research and planning are key. Breaking down tasks into small components can be dangerous if you don’t think about the big picture. You might establish 5 smaller steps that seem reasonable but then when you bring them together as an overall solution, they may have many holes and inconsistencies.
Here’s a basic example. You could have a task to develop a contact form.
You could tackle this problem by saying “Today I’m going to develop this contact form”
You could say “Today I’m going to complete these three simple tasks that will come together to make a contact form.”
- Setup the contact form interface
- Complete the contact form validation
- Setup and connect the contact form to an endpoint
There’s no hard and fast rule on breaking down tasks, that’s up to you on how much seems reasonable. This key isn’t only about breaking tasks down but also making sure the solution isn’t overcomplicated. Why write 100 lines of code when you could solve the same problem using different logic in 4 lines?
All this being said, complicated solutions do have one benefit. They allow you to better justify and enforce your simple solutions by providing different points of view and alternatives. You can also do this retroactively if you’re struggling with a problem.
Take a step back and rethink your approach.
Applying this type of method to your day-to-day work and development will help you keep your focus on the task at hand, and also stop you from getting into a never ending rabbit-hole of bandaid fixes and rubbish code to complete the problem that you set out to solve.