undraw_Progress_tracking_re_ulfg

The 5 Best Books on Productivity

1. Deep Work by Cal Newport

2. Work the System by Sam Carpenter

3. The 7 Habits of Highly Effective People by Stephen Covey

4. Getting Things Done by David Allen

5. The Effective Executive by Peter Drucker

undraw_Programming_re_kg9v

How to maintain the focus as a software developer?

Software development is very challenging. Firstly you have to understand the problems you are solving. Then you need to think of the solution. Depending on the solution, you have to research proper technology. During the process, you need to have a clear perception of the system you are working on and to think longterm. If not any future changes will be hard to pull off.

It’s not enough to be a great engineer to develop and maintain the software. The effort you invest in the process has to be excellent too. I’ve made tons of mistakes only because I’ve lost the focus. So I’ve been looking at different techniques to get faster into the state and to preserve it.

Why do we need to focus?

I believe this is quite obvious, nevertheless, let’s point out a few facts. When you focus, it means you direct attention to only one duty. You make decisions quicker, and you absorb and process information faster. Focus is the first step to get into the flow state. It’s hard to get to the state, and if we disrupt it, we need much time to get back, if we get back. That’s why we need to focus intensely on our work so we could perform better.

Have clear goals

Focus here is on the clear, not on the goals.

I’ve seen many developers who think that sprint planning and defining tasks are in some sense, a waste of time. You have to go into the details of every single one; there are discussions about the parts of the software you won’t develop; it’s better to spend time on development because we can make small decisions along the way; assignments seem clear already.

All these reasons are wrong, or the person who is defining the tasks is not doing his/her job adequately. First, you have to have a broader picture of the software, and you never know which feature is waiting for you to maintain. Second, the goal of planning is to save time. If you don’t make all the small decisions, you will have to pause your work either to think of a solution or to ask someone to clarify the problem. Either way, you are losing the focus, and not just that, you are disturbing someone else’s.

If you work in an environment where you don’t have proper product specifications, try to write them out yourself. If the feature you are working on is complicated, split it into chunks. Now you can focus on work not on developing a product. Majority of us are bad multitaskers. We should do only one thing at the time.

Conclusion

To focus and to get into a flow state can be very difficult. However, we should do our best to get int those state. Then we learn faster, make better decisions, and solve problems quicker. Software development is quite challenging, and competition is enormous. We should use any tool or method to be as productive as we can so we can stay relevant in the industry.