Sunday, 12 February 2017

6 Ways To Be A More Productive Developer / Tester

Simply coming to work and doing something is not enough. If you want to be really productive, you need to utilize the value of each minute of your work.

Here is the 6 Ways, To Know more about various ideas and Development and Testing Plans, Please Click Here.

If you want to be productive and bring significant value to your company, you should not do random things at random times. You want to do the right things at the right time. You also want to avoid the scenario where you don't know what to do and you're either slacking or searching for something in the middle of the day, long after the daily stand-up has been finished. Therefore, plan your working time each day, as early as possible. Take into account all time-consuming activities like meetings or lunch breaks. Limit time-wasting activities like checking Facebook or Twitter to a few short breaks, or avoid them completely.

It's not enough to schedule something to do - you want to actively perform well in those activities that are the most valuable to you and your company. This requires keeping your mind focused on the task at hand. You can't really write a good piece of code or solve a difficult problem when thinking about 100 different things at the same time. Therefore, always do one thing at a time. If you need to get something done in the middle of doing something else, just schedule a "break" from your original task to finish this secondary task, and then get back to your original task.

The last thing that comes to my mind regarding focus is that it depletes over time. Of course, when you get into "the zone," you can sometimes work for long hours without experiencing performance decreases and fatigue, but that's an exception rather than a rule. Therefore, schedule frequent breaks to regenerate focus and get some rest.

You might limit your work to a single task and, even then, it might be too much for your mind to grasp. If the task is complex enough, you can't just sit and start coding right away. You need to know what you want to code and how do you want to code it up. Therefore, start tackling your task by designing a solution and splitting it into small, graspable pieces.

That was the first part of the story. The second one is that we want to produce just enough implementation with little effort and a good test coverage.

Well, it should be obvious for all developers that knowing your tools is a prerequisite for effective work. You want to move your ideas into code as fast as possible and avoid the overhead of doing everything using a mouse pointer. It's not only slower but can also distract you because it gives your brain a lot of time to start thinking about something else. Therefore, learn the key bindings for the most important operations in your tools of choice.

You might be the smartest guy, with the best time-management system, and a knowledge of all the key bindings in the world and still, there are some problems that you'd find problematic or decisions that should be made by the whole team. Therefore, always involve other people when tackling a problem or making an important decision.

Actually, you might not tackle big problems or decisions when working on a task and there's still room for involving others. Firstly, everybody makes mistakes and we want to have at least a second pair of eyes to look over a solution before it goes to production. Secondly, the documentation and codebase belong to the whole team and they should understand everything that's in there. Therefore, introduce pair programming, code reviews, or some other collective ownership practice to your development process.

It's relatively easy to get things done, i.e. implement a solution using the practices described above, but it's often really hard to get things done-done. What done-done means depends highly on your company's processes, but it most likely means that the code is either ready to be released to production or actually is released to production. This requires things like approvals, implementing and running some additional tests etc. For your work to start bringing value for the company, someone should take care of these tasks. Therefore, do as much as you can to get your tasks done-done, instead of letting them be stuck with the status "implementation complete."