What is Developer Productivity? Basics and Best Practices

Written by prajwalkulkarni | Published 2022/08/26
Tech Story Tags: developer-productivity | dx | developer-best-practice | developers | productivity | business | software-development | leadership

TLDRA developer’s productivity was traditionally determined by the number of lines or features a developer could create in a given timeframe. Developers should be given the freedom and power to write great code. Anything that reduces repetitive efforts or improves the development environment boosts developer productivity. Using better dev tools like IDEs with features like auto-suggestion, auto-formatting, advanced debugging options, etc (or) using Backstage to improve the development lifecycle and onboard new developers. Backstage is a platform used to build developer portals.via the TL;DR App

Collaboration in software development calls for many people to come together to create a product. And to increase productivity and improve the overall throughput, the productivity of every individual within the team matters.

But what exactly is developer productivity and how to measure one’s productivity in an SDLC?


Demystifying Developer Productivity

Productivity in general aims to eliminate all the plausible distractions and interruptions that can stop a person from putting in their best efforts. The same principle applies to developers as well.

Although the concept itself is scalar in nature and not measurable in one fixed way, teams of many organizations have come up with standard guidelines and metrics in recent times that can act as a baseline while evaluating a developer’s productivity.

A developer’s productivity was traditionally determined by the number of lines or features a developer could create in a given timeframe. While this did serve the purpose to some extent, it didn’t take into account the quality or the number of re-runs required to deem the code fit for the product. To better gauge productivity metrics like code quality and tracking task completion are incorporated.

A developer or a dev team can be complemented with dev tools that would have a direct impact on productivity levels.

Let us look at some practices that could maximize a developer’s performance.

Best Practices to Improve Developer Productivity

DX or Developer Experience

Source

Developer experience is directly proportional to developer productivity. Developers should be given the freedom and power to write great code. Anything that reduces repetitive efforts or improves the development environment boosts developer productivity. This can include using better dev tools like IDEs with features like auto-suggestion, auto-formatting, advanced debugging options, etc (or) using Backstage to improve the development lifecycle and onboard new developers.

Backstage, originally developed by Spotify, is a platform used to build developer portals. At the center of Backstage is a software catalog that can be used to create software templates. These templates serve as a piece of information about the infrastructure, tooling, troubleshooting, and software components, and also establish relations with other components.


This ability to abstract away a lot of the operational, CI/CD, and infrastructure knowledge required to run an application or product is one of its key benefits. Additionally, it can lay the groundwork for your developer experience by serving as a primary information hub for the services offered by your business.

A good developer experience is certain to fuel productivity and improve output, as a happy developer ships great code.

Developer Portal

Developer portals aggregate information related to the exposed APIs and SDKs that can be used by other developers to build something on top of the exposed APIs and SDKs.

The developer portal seeks to produce more tasks faster than a single team of developers working without assistance from the community. A developer portal also aids teams in uniting in order to end ineffective collaboration.

So, why is a developer portal important and how can it improve developer productivity?

Simply put, a dev portal structures the documentation so it may be navigated through and accessed as per the developer’s needs. For someone who’s new to the documentation, for example, it is important to segregate and show content that first explains the product and its working and then goes on to explain the functional implementation and not the other way round.

A poorly formatted developer portal might confuse the developer, requiring them to invest more of their time in properly understanding the flow, thereby making the whole process tedious. A developer portal is not just about documentation, it also facilitates smoother onboarding for new developers by grouping relevant information and tools together.


Jot Down the Requirements

“If you can write down the problem clearly, it is half solved.” It is one of the simplest yet most effective ways of solving a problem. Oftentimes, developers with the intention of implementing an efficient solution, end up deviating from the original problem and solving some other problem that may not even exist in the first place.

The first step of solving a problem is to ideate solutions keeping the problem centerstage. The problem statement gives insight into the requirements, which helps us decide on the project infrastructure. Consider the below problem statement.

Develop an application for a B2B client, i.e., the end goal is to develop a web application for a business to track and analyze its sales.

Once the problem statement is available, one should thoroughly analyze the statement and extract all the requirements. From the above statement, the following questions arise.

Q: Since the client wants to analyze their company’s performance via a dashboard, should SEO be given importance?

A: Since the application is mainly based on an internal dashboard that can only be accessed by authenticated users, there is no way web crawlers can fetch relevant information from a dashboard and rank the site in search results. So, SEO need not be favored in this scenario.

Q: The results are generated in real-time. So, should the application be statically generated or dynamically rendered?

A: The results would typically be displayed as charts, tables, and grids in real-time, which requires fetching and updating data frequently. Statically generated sites are good when the content is barely or never updated. Thus, in this case, the data needs to be fetched and rendered dynamically.

Q: The application can be accessed via a desktop and a smartphone. Should the site be responsive?

A: Although such dashboards and analysis are typically done on a desktop, the user might use tablets too. When using tablets, responsiveness comes into play when in portrait orientation. So, regardless of how the end users access the site, edge cases should always be taken care of.

With each question, the problem can be further divided until a straightforward answer can be obtained.

What we did above was simply break down the problem statement into smaller problems and answer each of them separately. These answers help us decide the tech stack, infra, interface, and everything else.

Conclusion

Productivity can be improved in many ways and it differs from person to person. The important thing is to identify the areas where you feel you can improve and work on those. These were some of the ways in which you can improve developer productivity.

There are many other ways as well. For example, you can use a task management tool like Jira to track the progress of your work and also get visibility into the work being done by other members of your team. You can also use a code review tool like Gerrit to improve the quality of your code and also ensure that only well-tested and reviewed code makes it into production.

Improving developer productivity is an ongoing process and you should always be on the lookout for new ways to improve it. What works for one might not work for another. The key is to experiment and find out what suits you the best. Moreover, do not forget to take breaks in between and keep yourself hydrated at all times!




Written by prajwalkulkarni | MERN stack developer architecting meaningful and elegant applications on the web. JS/TS enthusiast.
Published by HackerNoon on 2022/08/26