SAP Labs Bulgaria: Watering the Roots
Technology advances faster than a person could digest. We create software pushed by deadlines, pushed by competitors, pushed by stakeholders. We constantly look ahead, learn new things, go to conferences and trainings, teach developers to the new needs around development and operation in the cloud.
And that is good.
Still, uncertainties immerge, a feeling that we leave some things behind.
- what is a good programmer?
- where do we find the confidence that we build things to last long?
- how do we see through technology and separate it from skill?
- how do we measure, compare and improve ourselves so we ensure future quality?
Assessing the matter and estimating the answers are not easy tasks. Since already several years we, in SAP Labs Bulgaria have an established body which we call TECH – Technical Excellence Community Hub.
In essence TECH is a group of experienced developers driving a process for cross-examination of source code as source code is the closest reflection of the principles and concepts a programmer practises. For now we cover only some of organizations in the lab (i.e. HCP and UX Platform in Sofia). The difference from regular reviews done inside a team is that we strive for external, unbiased point of view that can fight habits often overlooked in teams merely because of being used to.
Code reviews can be requested by developers, by their managers or on a random principle so we can cover orgnazitations completely.
It often boils down to some basics.
- keeping the code clean, understandable, maintainable
- having everything tested automatically
- using algorithms with the right complexity
- designing code with OOP in mind
- maintaining processes in teams that ensure high quality code
And, of course, that is not an exhaustive list. As a group, TECH is built by actual developers that have the needed knowledge and expertise to cover general and language specific (Java, C++, JavaScript, SQL, Golang) principles so we are confident we find what needs to be found.
The most important part of the review process is the feedback we give to developers. The goal is to agree on common best practices and to create the awareness for possible areas of improvement. We also demand such improvement, by follow-up reviews.
As collaterals of TECH reviews we strive for scaling.
- during our review cycles we have found and catalogued many different issues that we try to turn into suggestions for good practices, accessible to all developers in our organizations and beyond
- we tranform the real findings to extend and raise our bars for a home grown examination app, that we use today to assess internship candidates (and plan to use internally as self assessment tool for developers)
- propose books to be used as reference for developers and help to make those books available in our common library
We believe that carrying TECH activities persistently and continuously will water our programmer roots to raise the technical skills that we actually need to embrace the fast advancing technology.
No matter what comes next.