How to Eliminate Bad Habits That Are Holding You Back

We all have habits that are hurting us. Your habit may be as small as biting your nails or buying expensive coffees every day. On the more extreme side of things you may wish to break free of…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Tech Explorations

Before the beginning, there was a plan and with it came the test.

Can you imagine the chaos of building a house without a proper elaborated plan? Halfway through the construction, you might realize “Oops, that wall came out a little shorter than expected” or “I didn’t know the amount of rain that could fall in tropical weather. Bye, bye roof!” This chaos can and does happens all the time in the tech world.

As developers, we don’t have precisely the reputation for being great planners! A lot of the time the projects we are working on are constantly struggling with software overruns and obstacles, and we must draw out the old “book of excuses” to have an explanation for the client. But it doesn’t have to be this way!

Normally the person planning the new features (in our case the Product Owner) is probably not a developer, or at least, is not fully familiarized with the structure of the code and how it works. So our job as developers is to fully analyze the extent of a task, make sure all necessary information is there and to deliver a precise estimate on how much work has to be done for the task to be completed. This is what we, at Leaf, call “Tech Exploration”.

We start by calmly analyzing what it is that we are about to do. As the word says it, we have to explore first what exactly it is that we need to do to fully complete a task or requirement. To do this, I will describe a set of guidelines that we follow internally at Leaf and that I hope can help you become a better explorer.

Start with understanding the desired outcome. For this step, sometimes it’s necessary to talk directly with the Product Owner. If you have any questions or concerns, ask. It’s important that you have a very clear understanding of the flow and the concrete goal of the feature. Reading the task description carefully and communicating with the right person if you have any doubts is key. There are no dumb questions, only dumb people that don’t ask them.

Now that you know what you have to do, you have to study the code that already exists. This step is to discover what can be reused, what has to be added and what has to be modified in order to adapt to the new code that will be written.

In stage it is also important to study the impact of the changes that you are about to make, and how it will affect the other functionality of the program. If there are any changes that need to be made so that the program doesn’t break, you have to add it to the list of subtasks that we’ll talk about on the next step.

Now we are ready to make a list of activities in the order in which they need to happen. The more specific each item on the list is, the better. You can even divide the subtasks into categories so that anyone who reads the task understands the steps to follow and has a clear idea on what to do. Pseudo-code here is valid as part of the documentation.

This list of subtasks could also be very helpful for code reviews. If you work in a team where someone checks your code before launching, you can save them a big headache if you send your code for review with every subtask. This way the reviewer doesn't get overwhelmed by the 26 files you changed when implementing a feature.

Estimate how much time it will take to accomplish every single subtask you are going to implement. This will help you have a total time estimate to finish the feature completely. It’s always good to add some wiggle room for any inconvenience and also some time to do tests, so you can be sure that everything works properly. Also, make sure you compare your estimate against the real number once the implementation has been finished, this will help get better at estimation as you move forward.

The key to becoming an expert on Tech Exploration is practice. The more you do it, the more accurate you are going to get when defining a task. And though it is nearly impossible to reach perfection, your life as a developer will get easier and more effective over time.

So let’s change the old stereotype that developers “always struggle to deliver software on time”. It is our job to become better professionals and structure our work as any other professional would do. Before beginning a task let’s take the time to plan ahead and build a house that can stand a hurricane!

Add a comment

Related posts:

fiverfiverrtlogo How to Design A Logo?

ave you ever seen a big brand without a logo? No? That’s because there aren’t any. A logo has a major impact on how your customers will perceive your brand. So naturally, you want your logo to be…

TALENTA DAILY NEWS

Facebook Coin could be launched much sooner than expected. According to a recently published New York Times (NYT) report, which cites multiple anonymous sources, Facebook employees are already…

The New Cold War

The Cold War dominated global politics between the end of the Second World War and the early 1990s. At the forefront of this war was the threat of thermonuclear war. After the United States developed…