Technical Coaching
Contact me for setting up an initial workshop.
Hiring a skilled technical coach is a good investment: it expedites the team’s growth of experience which pays off continually.
As an experienced developer turned technical coach, I specialize in helping development teams to overcome the challenges of technical debt and complexity, enabling them to deliver high-quality software efficiently. My coaching approach combines targeted training sessions with hands-on pair and group programming, tailored to address your team’s specific needs. By focusing on both immediate problem-solving and long-term skill development, I help your team cultivate practices that lead more manageable codebases and simplified testing. Contact me to set up an initial workshop.
Managing Technical Debt
Excessive technical debt is the leading cause of software project failures. Without being able to modify the code base effectively, features take longer time to market and the development team’s morale suffers. A consequence of technical debt is accidental complexity, and unchecked complexity quickly turns any software project into a Rube Goldberg machine—a complicated, convoluted system that’s hard to maintain.
The most cost-effective way to keep accidental complexity in check is to maintain it continuously. If reducing accidental complexity to a minimum is not top of mind in the development team then it is virtually guaranteed that the dev team will want to have “refactoring sprints” or eventually do a big rewrite.
Refactoring sprints (or worse, rewrites) are a hard sell—for good reason. Assessing and leveling up the development team’s skills should be an easy decision for any technical manager.
Coaching Methodology and Philosophy
The most valuable lessons are the ones you teach yourself. Learning specific techniques might be a prerequisite to creating well-designed software, but to truly understand why a technique could/should be used is a result of experiencing the issues the technique solves.
When coaching I use a mix of targeted training sessions and pair/group programming working on issues in the production code base. The sessions work in tandem. The training sessions isolate and focus specific issues from the production code base in a simplified setting to make them easier to understand. The group sessions apply the learnings and serve up new issues for future training sessions.
In the end, the team will have learned a way to grow the software while the tests are simple and helpful.
Contact me and we will schedule an initial workshop to figure out what your needs are.