SOFTWARE DEVELOPMENT LIFECYCLE
Software craftsmanship
While software development is a creative process, it is also a discipline where experience and craftsmanship are essential to delivering solutions that provide genuine value. This applies equally to writing code and to the processes that produce it.
The rise of agile methodologies has often been misused as an excuse to abandon any software engineering practice with the slightest hint of structure, leading entire departments into chaos.
I've supported teams in applying agile principles while maintaining essential craftsmanship skills: thoughtful design, writing just enough documentation that matters, and ensuring software quality through TDD.
High-quality software is also a natural outcome of a well-organised agile requirements process. I've facilitated story mapping and event storming sessions to thoroughly understand the problem domain before focusing on the solution domain.
Streamlining
When examining software team productivity, there is often a heavy focus on individual performance. I believe that empowering software engineers by removing waste and repetitive tasks from their workload yields the greatest overall performance gains.
I have extensive experience helping teams identify repetitive waste in their processes and using automation to eliminate it. An added benefit is a significant reduction in human error, as much of this process waste involves manual tasks.
These efforts give developers more time and focus for what they truly want and need to do: write exceptional software.
Tools & Concepts
Test Driven Development - Behaviour Driven Development - Living Documentation - Scrum - SAFe - CI/CD - Infrastructure As Code - Story Mapping
MSTest - Specflow - Jira - Confluence - Bamboo - Git - Ansible - Azure DevOps