A few weeks ago I made a decision to move into a new role at Coolblue.
During my career in New Zealand I’ve avoided the often loaded “Architect” roles within various companies and offers due to nature of the work. The role is usually one of typical ivory towerishness, well depicted by Uncle Bob in one of his earlier videos on Software Architecture, and discussed in various articles.
I’ve always believed, similar to Uncle Bob (or perhaps because of?) that Software Architecture is about the intent of the software, not about the given framework xyz used to accomplish the goal. All too often the emphasis is given on choosing NServiceBus over RabbitMQ, or Oracle over SQLServer. I’m not saying that these are not important decisions, but rather that in terms of agile and what makes you go fast, it’s the intent of the software you are writing that is your “Architecture”.
Here at Coolblue, the role of Pathfinder has a wide variety of tasks and responsibilities, but the main attraction was being able to have influence over what I believe the role of the Pathfinder should be.
In summary, a Pathfinder should be an exemplary professional, skilled in the way of Software Craftsmanship that is available to any and all teams that require him. He should spread best practices among the teams in terms of TDD, Clean Test Design, SOLID, Fault Tolerant Design and DDD (to name a few) but should also have an eye on the future making sure that we have the correct technologies on the radar for investment.
But mainly, he should be coding. He should actively be working in a team for a reasonable proportion of his time, helping the team of the moment to achieve success in their stories with a focus on help teams to avoid technical debt or to clean it up where it has been sown.