It looks like you are using Internet Explorer, which unfortunately is not supported. Please use a modern browser like Chrome, Firefox, Safari or Edge.

Improved productivity through technical coaching

Published in Agile, Technology, Business

Written by

Esko Luontola

Esko Luontola is an avid programmer and usability enthusiast. Esko has been using TDD in every project since 2007 and is also the author of the University of Helsinki’s TDD MOOC (tdd.mooc.fi). He is continually pushing for technical excellence and better software development practices.

Article

November 1, 2022 · 3 min read time

True agility arises from well-trained technical skills. These skills cannot be learned overnight, but require months of deliberate practice. Nitor is offering long-term technical coaching to improve the productivity of your teams.

Are you seeing any of the following symptoms in your teams:

  • Bugs often find their way to production (i.e., more than a couple of times per year). In the worst case, the bugs are first reported by end users or news reporters instead of being found by the team.

  • Manual testing takes a lot of time. The testers spend their time reporting elementary bugs like off-by-one errors or a defunct feature instead of doing more creative testing.

  • People who write the production code do not participate in test automation. Developers should write their own tests to achieve a level of basic correctness. If testers alone write tests for code another developer wrote initially, it'll lead to long cycle times and unnecessary back-and-forth communication.

  • Technical debt slows down the project. In a sustainable project, the speed of adding features increases as the project goes on. But in a project bogged down by technical debt, everything slows down, and eventually, the team starts asking for a rewrite. (Rewriting rarely helps; if the team doesn't have the skills to improve the old project, any new endeavour they start will have the same destiny.)

These are typical challenges of lacking technical practices.

Technical excellence is the foundation of agility, allowing you to move fast without breaking things. As the Agile Manifesto says: "Continuous attention to technical excellence and good design enhances agility." The result should be delivering software continuously without slowdown: "Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely."

The technical practices which enable agility have been known for a long while: Test-Driven Development (TDD) and other Extreme Programming (XP) practices have been around for over 20 years. During the past ten years, they have been enhanced (or made more "extreme") with Continuous Delivery (CD) and Mob Programming. Unfortunately, most software developers' technical practices are lagging far behind.

For more than the past decade, much of the Agile discussion has been overfocused on process management. But even Scrum's creator, Jeff Sutherland, has said that Scrum works best with XP, referring to the technical practices of XP. Scrum assumes that the team will begin adopting the necessary technical practices through retrospectives. In practice, many teams never get that far, and some even stop having retrospectives altogether. One of the slogans in Scaled Agile Framework is that Crappy Code Doesn't Scale; continuous attention to producing high quality enhances speed instead of slowing down.

One cannot learn the technical practices by watching a PowerPoint presentation or taking a two-day course. They require hundreds of hours of training. The best developers have already done and continue doing that, even practising new techniques in their free time.

However, it is easy for many to stay within the comfort of the status quo. To that end, it can be helpful to hire a technical coach to join the team and help them improve their techniques.

Technical coach boosts productivity

Nitor is now offering a technical coaching service. Our coaches can help your teams level up their skills by learning Test-Driven Development (TDD), Continuous Delivery, and other essential practices. They can even help your teams get their legacy code projects under control so that you won't need a rewrite.

The coaching relationship with a team will start with generic TDD exercises (similar to a 3-day workshop), after which the focus moves to the team's current projects and how to apply TDD there. For a couple of months, the coach will be onsite with the team daily to guide them on improving the test coverage of their legacy codebases. 

To maximise learning, the team members will do all the hands-on work themselves using Mob Programming. Finally, there will be a follow-up period of a few months where the coach will visit the team weekly to ensure that the team forms new habits and doesn't regress to old ones.

Written by

Esko Luontola

Esko Luontola is an avid programmer and usability enthusiast. Esko has been using TDD in every project since 2007 and is also the author of the University of Helsinki’s TDD MOOC (tdd.mooc.fi). He is continually pushing for technical excellence and better software development practices.

Are you interested in hearing more about technical coaching?

We digital engineers are here to meet your challenges. Let's harness the potential of your business together.