AUTHOR
Julien Delange, Founder and CEO
Julien is the CEO of Codiga. Before starting Codiga, Julien was a software engineer at Twitter and Amazon Web Services.
Julien has a PhD in computer science from Universite Pierre et Marie Curie in Paris, France.
Developers are inefficient
All engineers know some best practices; writing a new class, deploying software or just reusing existing libraries. A few rigorous developers (especially in the Software Craft community) use a notes taking app or a private Git repository to keep trace of such best practices. But most developers never keep a record of any best practices and when facing a problem, they explore existing codebases trying to find a needle in a haystack (which is why stackoverflow became such a popular website).
This process is inefficient and very costly. Developers spend hours looking for code (they sometimes write themselves!) and sometimes, still end up with a suboptimal solution. It is an important productivity waste, especially when software engineers are very expensive.
All developers face this issue, regardless of their domain or years of experience. While working at large technology companies (before founding Codiga, I worked at Twitter, Amazon Web Services and the European Space Agency), I often spent hours digging into existing source code (using sourcegraph), asking colleagues (sometimes not available) or just poking around to write my code. You may sometimes get lucky and have a good documentation but it is too often outdated.
How do we get out of this productivity loss dilemma? Are developers doomed and forced to waste hours every day to find a solution to their problem? No, there is hope!
How to record and share best practices among engineers?
The objective is not only to keep track of all best practices but also to share them with your team. Sharing best practices is a productivity multiplier in a software development team; when a technical lead with 5 years of experience in a particular domain shares his best practices with a new hire, it saves significant time to the new hire to onboard and understand how to write efficient code.
Keep your documentation updated
Let’s face it: documentation is often outdated. Developers overlook keeping documentation and do not update it at the same time they update the code. There are many reasons for not writing documentation but regardless of the cause, outdated documentation is worse than absent documentation because it may put developers on the wrong track.
The key is to put a process in place to ensure that documentation is updated along with the code. One common idea is to store the documentation with the code and require that any code change includes a documentation changes (and block a pull request if not done).
Keep track of your best practices
An effective way to stay on top of your documentation is to use tools to keep track of your best practices. It can be on a wiki, in your documentation or using more sophisticated tools such as Codiga Coding Assistant. Make sure your team has access to these best practices, is aware of them and know how to access them. Organize some discussion groups A lack of human communication is (too often) the cause of many software bugs. Communication is siloed and developers do not talk enough about their findings, what best practices should be used and what code patterns or coding habits should stop.
Developers need to talk in order to collaborate efficiently. Some like to have a monthly discussion group to talk about their findings, other dedicate time during their monthly retrospective meetings. The exact context does not matter: what matters is to give a forum to your developers to discuss what best practices to adop or abandon. It will make all your developers more productive and improve the quality of your code base in the long run.
Use productivity tools
Use tools to adopt your best practices. Developers can save snippets of code directly in their environments. They can also use tools such as our Coding Assistant to save and share their best practices with their team.
Regardless of the tool, make sure your developers are on board to use the tool and find a significant productivity boost by using it. Because as with documentation: a bad tool is worse than no tool.
How Codiga can help you?
The Codiga Coding Assistant is a huge productivity booster. With the Codiga Coding Assistant, developers can share code snippets. More importantly, these Smart Code Snippets can be searched and used directly in the IDE.
Oftentimes, software developers working on a project repeat very specific code patterns. For example, when creating a React component, developers are using the same patterns that have specific style, CSS classes and reuse existing components. Developers share this pattern using the Codiga Coding Assistant and can import them directly into their IDE, making sure that they use the correct pattern and they use it correctly.
Looking at the productivity gains, software engineering teams reported to save on average 5 hours per month per developer. If you want to try Codiga Coding Assistant, you can try for free using your GitHub, GitLab or Bitbucket account.