The Senior Developer Advocate is an experienced software developer who temporarily works within your team, with a particular focus on improving the technical and organizational skills of the team members. The Senior Developer Advocate actively contributes to the software solution provided by the team and is thus an additional developer.
Benefits for Your Company
In times of tight budgets and many new challenges, the Senior Developer Advocate is a very cost-effective way to dramatically improve the overall performance of the team.
Instead of investing in hiring more software developers, testers, business analysts, Product Owners, Scrum Masters, etc., the Senior Developer Advocate improves the skills of the existing people. There is no need for onboarding, the overall costs are significantly lower, and as a pleasant side effect, the quality of the code even increases.
Far Better Than Training - and Cheaper
The Senior Developer Advocate is an additional team member and can therefore make the right offers in the right context situationally. They provide the solution for the given problem, and training happens “on the job” and is essentially free. Here are some examples:
Continuous Deployment (CD)
So far, the team delivers a new version of the software at the end of the scrum sprint, e.g., every 2 weeks. Instead of a complex switch to Continuous Deployment, the Senior Developer Advocate finds opportunities to automate more and more steps of build, test, and deployment. Through many small quick wins, an infrastructure is gradually created that eventually enables Continuous Deployment. The Senior Developer Advocate either implements these things independently or involves other team members in the style of pair programming. Not only is a solution delivered, but sustainable knowledge and skills are built. Without much effort, the team is even on the path to DevOps.
Test-Driven Development (TDD)
There are many texts and trainings on TDD. Unfortunately, test-driven development is far from easy. Existing code often poses an insurmountable hurdle, and in almost all cases, TDD is then rejected or abandoned. In the end, reliance continues on dedicated testers, the code becomes difficult to modify, and technical debt increases. The Senior Developer Advocate, with years of practice, has a sense for the right moment, for the right situation, and guides the other team developers toward TDD.
Executable Specification
Especially in larger companies, communication between the development team and internal clients is often difficult, and perfect solutions for the wrong problem are often developed. The Senior Developer Advocate meets with the clients - stakeholders - to find out where the issues lie. One possible solution is the careful introduction of ATDD (Acceptance Test-Driven Development), which uses an executable specification, e.g., with the tool Cucumber or alternatives, to make the requirements written in natural language testable. This ensures that what is ordered is delivered.
Duration of Engagement
The duration of the Senior Developer Advocate’s engagement is generally not limited. They are primarily another team member - albeit with a special task. Many engagements last 6-12 months. It is helpful to structure the collaboration dynamically or in intervals, e.g., every second week.
For the price of a single developer, your company gets a developer, a consultant, a trainer, and the accumulated experience of many companies with the Senior Developer Advocate.
Success Monitoring
Regular meetings with senior management or department heads serve as success monitoring. The focus is on clear goals, what has been achieved, and where there are difficulties. The Senior Developer Advocate is also a business consultant and may, for example, suggest changes to the organizational structure of the company.
A total of three coaches at the main location and with an external development partner handled technical and organizational issues related to the e-commerce shop (Java J2EE environment with IBM Websphere Commerce). The focus was on the development of products vs. service provision, information visualization, integration of non-developers, restructuring a traditional retailer into an e-commerce company, and new roles and skills. The engagement was extended to include the training of newly hired developers in the microservices architecture and the DevOps model.
Alfa Insurance, Moscow, Russia
We worked with senior management to improve engineering practices. Consultations were provided on network security and information security practices. Additional coaches were introduced to the teams to support XP (eXtreme Programming) at the team level.
Huawei Technologies, various cities, China
ATDD and situational Kanban were introduced for various teams. Middle management was also advised and trained on agile principles.
Webtrekk, Berlin, Germany
Coaching of the CTO on agile principles and testing. Introduction of Acceptance Test-Driven Development to development teams and in-depth coaching for Scrum Masters.
OBI Smart Technologies, Wermelskirchen, Germany
Building a multifunctional team and corresponding organizational restructuring in collaboration with department heads. Improvement of requirement gathering and interdepartmental collaboration. Coaching of department heads on agile values and principles.
Independent Health, Buffalo, New York, USA
Coaching of SOA teams on Acceptance Test-Driven Development. Development of rmq to support work with IBM MQ.
Nationwide Insurance, Columbus, Ohio, USA
Involvement in an agile transformation of 23 teams. Technical and organizational coaching for 6+ teams and about 80 individuals. Coaching of software architects and team members on agile development practices, including Test-Driven Development (TDD) and Continuous Integration (CI).