7 tips for a developer from personal experience



Hello everyone!



I think this article will be useful for beginners in the IT world. For seasoned developers, many of the tips may seem obvious. But I hope that they too will be able to learn something new and useful for themselves.



1. Try to immerse yourself in the business process



In today's agile development environment, understanding how a business process works is paramount. A deep understanding of the product being developed allows you to correctly design the application architecture and select the relevant technology stack. In addition, business representatives liked the appearance of the term “product developer”. And now the role of a developer involves not only having developed technical competencies, but also a certain way of thinking: when a developer takes part in product discussions, participates in the formation of a product development plan, and monitors the impact of releases on business performance. In short, he is “rooting” for the product.



Today the product approach is ubiquitous. And in order to keep up with modern realities, it is important to understand how the business functions within which you develop a software product.



2. Use a unified vocabulary



The lack of a unified terminology in the project can lead to the effect of a broken phone, when the output does not give the business exactly what it wanted from the development. Or when developers name the same business entity differently in their code, which can lead to potential errors and overgrowth of the codebase. Therefore, the next important point, I consider the compilation and use of a uniform terminology in the project. And not only in communication, but also in code.



When starting a project, it is advisable to fix the business terms used in a single document for all - a dictionary. In the future, this document will not only be a tool for communication between team members. It will become a kind of API contract between development and business, between business requirements and code. Many development methodologies are built on this idea. For example Domain Driven Design . The use of the dictionary creates the effect of a single information space for all team members, where everyone understands each other perfectly. And it also allows you to significantly reduce the threshold for entering the project for newly arrived team members.



3. Form team agreements



The problem of discussions in the comments to pull-request is always acute. At one time, in one of the teams, we even developed a rule that under one comment of the reviewer there should not be more than five messages. Otherwise, the discussion was considered to slide into demagoguery, aggravation of relations between team members and unproductive use of working time. And the lack of command agreements is to blame.



Before starting development, I strongly recommend that you adopt general agreements on the basis of which the team's work will be built in the future. Here I mean the architecture of the project, the style of coding, the size of classes and methods allowed, the schedule for code reviews, and other points that you find important for your team. Because without carrying out this procedure in advance, you will again and again come across the same type of discussion topics in the comments.



And here again I would like to refer to my experience. When we introduced team conventions, we really looked only at the implementation of the feature during the code review. And the code at some point began to look like it was written by one person. And most importantly, relations within the team improved, since there was practically no basis for conflicts.



Naturally, all agreements are difficult to keep in mind. And a lot can be automated through the use of linters, prehooks, auto-reminders and other auxiliary tools.



4. Give and receive regular feedback



Don't underestimate the feedback ceremony. Try to share it with your colleagues as often as possible. After all, it is not always possible to objectively look at the work done and draw the right conclusions. Each of us has a unique experience, and through his prism can give important advice, which, perhaps, will become the basis for your further development.



The right feedback is always a growth zone for a developer. And timely feedback is the "information glue" that allows you to unite the team and protect them from discord.



5. Stick to a systematic approach



Try to always adhere to your agreements and chosen development methodologies. If you decide to cover features with tests, then always cover. If you decide to run a pre-release demo, do it always. If direct commit to a release branch is forbidden, then it is forbidden for everyone. This will bring consistency and order to the actions of your team, as well as insure our beloved "maybe" against all of us.



6. Use time management methodologies



To increase personal efficiency and rational use of working time in my practice, I try to adhere to the time management methodology. In my case, this is Pomodoro . Of course, you have the right not to dwell on my choice. But in general, controlling time and decomposing tasks within the workday allows you to be more focused and productive by eliminating distractions and maximizing concentration on the current task.



In addition, completing each task produces a short-term serotonin release and a sense of satisfaction. By the end of the day, you can look at the list of closed tasks, analyze and think about what can be improved in the future to achieve greater results. Such a personal retro at the end of the day.



7. Watch out for burnout



There are days when we are so passionate about our work that we forget about time for rest. Sometimes we can afford to "overtime" at night to quickly achieve our goals. However, at such moments, we must remember that we borrow this instant efficiency and productivity from ourselves in the future.



Being in this mode for a long time leads to a complete or partial loss of efficiency in the workplace due to increasing emotional and physical exhaustion. In other words, it leads to burnout. The psychological defense of the brain works in response to prolonged stress in order to conserve the body's resources.



You need to be able to stop in time and adjust your regime to prevent this. Normalize your sleep and rest routine, eat a healthy diet, try to switch to your favorite hobby, and don't forget to go for walks in the fresh air.



Thanks for attention. Good luck to all!



All Articles