Productivity

The effects of overworking

Overworking cause burnout. You spend more hours working, with less time to relax and recharge.

The cost of overworking:

  1. Learning new skills
  2. Gaining new knowledge
  3. Buidling your network and relationships
  4. Getting certifications

The activities that get you promoted and progress your career are not working more on projects.

Setting the foundation

Chasing passions

Don't chase money. Chase your passions, pursue the areas that you love working. Motivation is a giant productivity.

There are things don't go your way. Don't forego thing you love in order to do thing you have to do. Take less money to put yourself in a better situation

Invest in yourself

Myth: Learn a little about everything Maintaining breath, but developing depth. Where you have deep expertise in one or two areas and proficiency in others. Expertise is what make your future tasks easier

Nobody is an expert instantly, and it does take an investment in yourself. But don't overwhelm yourself through excessive time trying to learn everything and staying up to date on everything. It takes time at one point to try develop expetise, it really pays off later.

Thinks about what you're going to explicitly ignore right now, a new shiny framework, programming language, technology. Don't get caught up in those. Develop expertise in certain areas and develop some depth.

Build expert network

Myth: Be a lone genius

  • Letting go of egos, asking questions to other smart people when you don't have the answer, and not wasting time trying to solve problems that other people already have.
  • You will get your things done faster because you get access to a broader set of advice givers

Blog, twitter, linkedin account will expose you to a lot of people who have directly impact on your carrer

Eastablishing a Frame of Mind

1. Learn to say no

Know you limit, know how to handle it when you're at your limit. Cutting out meetings with no agendas, unproductive relationships. If you don't value your time, no one else will. It's about being smart

2. Decompose the problem

This is actually how to tell a good architect from a bad one during interview. Good architect will decribe a big problem into different things that can be solved easier.

Dont write books, don't write a bunch of chapters. Write content for a bunch of section. See daunting tasks as something that can be composed into sections and other sections. It help you brain around the work easier. By solving pieces at a time versus viewing this massive task you have to do.

When you write a book:

  • Identify which modules might be there
  • Break out what sections make sense in the module
  • Add the research to each section, then start writing

In a tech system:

  • Write stories, requirements
  • Design component, architecture, API
  • Write docs
  • Setup development environment
  • Write code

3. Check multiple boxes

Do things that can be used multiple times.

When you do something, think about hopefully you can use it later. It's not just a one off demo. When you're doing those things, make sure that the tasks you're doing potentially can be something that can be leveraged later on by something else.

4. Countinuous improvement

  • Constantly looking for efficiencies that can get your activities done faster.
  • Invest in tools that help you refactoring code and debugging.
  • Reflect on what you did after every projects. Looks for inefficient things where you could improve better

Rules for being productive

Get into the flow

Principles of flow: Everything important will find its way to you many many times; don't worry if you miss it.

Remain in your flow: be wrapped up in the thing that has captured your intention.

Plan every day in advance

  • Spending 10 minutes planning the evening before can save you 1- 2 hours in execution the following day

Design before you implement

A common beginner's mistake to jump right into writing the code. Giving more emphasis on the design and structure may increase the time taken to write the code. It can save you a lot of time wasted on later refactoring and chasing the bugs

Have a superb communication

Make sure you understand what is required and what is not required. A lot of times, we as engineers make so much assumption about the requirements and we end up over-engineering the product

Document your work nicely

Be it code, architectural design, some magic tricks for your compiler, etc. This is really important when you work in a team. A lof of the times, your co-worker will ask you for things that you have explained zillion times to the other coworkers but him. If you have to keep explaining it to everyone, it will suck your time like a black hole. You don't want to spend too much explaining the same thing over and over but at the same time, you want to be helpful and get respects from your peers.

Do creative work when you are in the Zone

In positive psychology, being “in the flow” or “in the zone” means performing an activity while fully immersed in a feeling of energized focus, full involvement, and enjoyment.

Don’t listen to music unless it’s absolutely necessary, lyrics = distractions.

If your peak productivity hours are in the morning, don’t waste them doing menial tasks.

Instead, you can leave those for after lunch or at the end of your shift, when your focus is lower.

Minimize distraction

If you are distracted, it will take you 15 minutes to regain focus.

  • Don't check social media, news, youtube when you're supposed to work.
  • Don't listen to music. If you constantly get distracted you will get pulled out of your zone and productivity will go to zero.
  • Turn off notifications for your phone.

Procrastinate When There Is Nothing Else You Can Do

At some point you’ll hit a deadend, and there’s no point in denying it. So, instead of kicking yourself for not being able to find a solution, and keeping up with the work even though you’re obviously not up to the task, procrastinate.

Take the time to relax, watch an episode of your TV show, take a quick walk, go to the gym

More often than not, the solution will present itself very quickly. You should do the things that help you rest and refresh. If you can, take a power nap - that’s probably the best option.

Gamify Your Mind

Dealing with repetitive tasks, or with too much work can cause you to procrastinate.

Invent some rules, or create goals that will make you feel like you’re playing a game.

For example, challenge yourself to complete your daily tasks in six hours. Make it a big deal! Reward yourself with a night of binge watching of the new season of that TV show you really like, and if you don’t reach the goal, don’t check your Instagram for 24 hours.

Take full advantage of automation, DRY, & KISS

If you need to compile the code or may be Automate everything that you do repeatedly, including command lines, text manipulation, log mining, refactoring, building, deploying, and integrating:

  • code generation

KISS: keep it short and simple

Work on other projects and learn new skills

Work on new projects can be an excellent way to keep your mind fresh. Hoppy projects can reflect more on your own ideas and help you grow as a coder.

Results, results, results are how you keep yourself motivated. Create a minimal prototype. Then if it's not fun, scrap it. Repeat until you have something you like enough to keep working on it.

Use good tools. Don't use a language/framework that forces you to do too much like C++ or Java.

Don't optimize prematurely

Premature optimization is a serious issue among the coding community.

Read books

“Internet has everything, and I don’t need a book.” Yes, But it doesn’t show the full picture.

Books, on the other hand, offer a unique view on managing projects or understanding programming language or technology. They're generally written by veteran engineers who have served the industry and who are sharing their experiences and offering tips on how to avoid the pitfalls.

Get proper sleep

Working fewer hours can help you remain productive. In the meantime, you also need to get proper sleep. Without proper sleep you can easily hamper your productivity to a great extent. Not to mention, improper sleep can also hamper your health and cognitive capabilities.

Don't multitask

  • Don't review some other developer's code while you're in the middle of writing a piece of code. Focus on one task at a time

Optimize your IDE

Installing snipeets. Snippets can save you a lot of time while coding since they allow you to not keep writing the same code over and over

Take more breaks

Although it sounds counterintuitive, it's actually true. If you want to get more things done, you should take a break more often

Working too long without breaks will eventually make you less productive.

Work on the command line

Create aliases for commands that you find hard to remember or to shorten very long commands

Be less random/ Consistent schedule

Structure is extremely important if you want to be more productive. Don't just take things as they come. Try to start working at the same time every day

The same applies when it comes to taking breaks. If you have a certain routine in your workday, you'll find yourself being much more productive

Invent whatever rules suit you, do what feels right.

Scope every tasks

Know how much time you have for something, aggressively time boxing your activities to prevent gold plating when there's not time or it's not necessary. You can ask for help, simplify the task

Don't procrastinate

If you think of something are you're capable of doing it right now because you have the free time, without derailing something else, do it.

Reduce the number of haft-completed things.

References

8 Tricks for Improving Developer's Productivity Levels The Indiscipline of overworking

  1. Steady development is smooth, smooth is fast development

| The difference between successful people and really successful people is that really successful people say no to almost everything — Warren Buffett

Last updated on