Technical Excellence Program

What is Technical Excellence Program?
- A ~ 6-month hands-on training program that gives teams the ability to deliver on the technical side of an agile transition. It’s a customisable program to help establish those technical practices needed in a team to meet the challenges of delivering valuable releasable increments iteratively.
- Includes a 3 week on-site hands-on training and coaching period to provide a solid foundation in the new practices and principles
- After onsite, a 6-month remote-coaching period enables the team to take charge of their continuous learning while still having trainers support
- Includes additional 1-week on-site follow-up, halfway through the 6 months to recap on topics or to explore more advanced topics
Core Topics
- Test Driven Development
- Agile Testing
- Refactoring
- Clean Code
- Working with legacy code
- The team can also choose from a list of optional topics, based on their current needs
Optional topics: Behaviour Driven Development, Integration Testing, Design Patterns, Introduction to Selenium, Domain Driven Development, Transformation Priority Premise Order, Testing quadrants, Test (automation) pyramid, Test strategies
Why?
- Agile transformations & adoptions tend to focus on process & collaboration. This only helps teams to visualise their problems faster.
- Team’s coordination (Scrum Master training)
- Requirements management (Product Owner training)
- This will not enable continuous sustainable agility to deliver business value.
- We tend to look for answers in technology and tools yet skip over the fact that the greatest impact on delivering quality software lies with people and professionalism backed with a reasonable level of experience.
- With the right focus on training and education, the right attitude and culture can flourish.
- To achieve success people attitude, culture, training, education, and management buy-in and support are essential criteria for quality delivery and stakeholder satisfaction.
Craftsmanship is the Agile, that the Agile movement left behind.” – Martin Fowler
Why is Quality and Technical Excellence important?
“You have probably been slowed down by messy code. The degree of slowdown can be significant. Over the span of a year or two, teams that were moving very fast at the beginning of a project can find themselves moving at a snail’s space.” – Robert C Martin
At an early stage of product development productivity of development is pretty high. It seems that you can add features very quickly. But over time things slow down.
One part of this effect is simply the time that is needed to analyze bugs, fix them, and bring the fix back into production. It is not uncommon to hear that development teams spend up to 50% of their time on this kind of work, and the effort can be measured as ‘bug fix effort’ or ‘maintenance’ (not counting functional enhancements in legacy code).
Another aspect of this phenomenon is often overlooked: as the codebase grows more complex, making enhancements becomes increasingly challenging without risking unintended consequences. Consequently, the pace of new feature development decelerates, which can be detrimental, even if it remains unnoticed within the realm of development time. This situation becomes particularly perilous if your competitors outpace you in this regard.
In the worst case, a code base can become so unmanageable that it is basically not maintainable anymore and must be rewritten. This is a total loss and has led to very high costs and even software companies going bankrupt.
All this may sound familiar to experienced software developers or managers. Is there a way to avoid this trap and reverse the effects?
Our focus is to help teams understand the total cost of owning a mess and how to establish a continuous sustainable pace through the following key attributes:-
- Maintainability
- Readability
- Testability
- Extendability
- Removal of Technical Debt
Example of a 1st Week Onsite Schedule
Monday | Tuesday | Wednesday | Thursday | Friday | |
---|---|---|---|---|---|
AM | Introduction to Software Craft – Agile software development – Principles of Software crafting | Test Driven Development – Introduction to TDD – Programming exercise | CI/CD – Principles – Branching – Application | Teams choice of further workshops* | Preparation of week 2 topics & learning – Open Q&A – Creation of learning backlog |
PM | Scrum/Agile | Clean Code – Principles and tools – Programming exercise | Agile Testing – Principles – Agile Testing quadrant – Test pyramid – Test Strategies – Test and Scrum | Working With Legacy Code – Tempoary tests – First test as part of refactoring – Programming exercise | – Product Backlog Refinement – Week’s Retrospective |
Our Goal is more than just adding practices!
While a significant focus of the program is to facilitate the adoption of essential practices for team success, our ultimate aim is for participants to develop a technical excellence mindset through the learning process. By mastering these practices, teams are empowered to foster a culture of technical excellence.-
- Will “Do it Right”
- Take responsibility
- Passionate about Code Quality
- Understand the true cost of ownership
- Sustainable pace
- Boy scout rule
- Continuous learner
- Practice deliberately
Prerequisites
- The Scrum Team, and associate stakeholders, have a fundamental understanding of Professional Scrum and Scrum Values. In other words, how Scrum is a light framework to help deal with complexity and risk through empiricism! Therefore, is beneficial for attendees to have experience Professional Scrum in action or to be on a Scrum.org Applying Professional Scrum (APS) training, or equivalent.
- Developers have the fundamental experience, or training (e.g. Scrum.org Applying Professional Scrum for Software Development (APS-SD), of working as a Scrum team to deliver a software product and exposed to the challenges of delivering iteratively a potentially releasable increment.
- Understanding how modern agile engineering practices and DevOps can improve a team’s capability to deliver working software.
- Know the different aspects of a Scrum Team and how to work together as a team to get work done
- Openness, Focus, and Commitment in the team to challenge their own status quo and learn new things
- Need buy-in and commitment by Product Owner and all stakeholders
- Product Owner’s understanding of the 4 Key Value Areas in Evidence-Based Management to help shine a light on an organization’s capabilities and product delivery practices. In particular “Time to Market” (T2M) and “Ability to Innovate” (A2I) to help make informed and evidence-based decisions for continuous improvement & learning in this period.
- A proposal on when to start the ~6-month boot camp.
- The first 3 weeks will be focused on objective learning, therefore likely reduce to no business delivery will be delivered by teams in this period.
- Trainers and coaches need to be fully available for the first 3 weeks with a trainer/coach needed per (scrum) team
Our next steps together, if you’re interested in the program
- Understand the team situation, current setup, and practices
- What is the team/s current maturity in delivering value to customers?
- What is the current Team culture and appetite?
- How often are we delivering an item to production for customer feedback?
- Do they know the delivery pipeline, bottlenecks, and lead/cycle times?
- Establish an Improvement feedback loop
- Capture the metrics needed to establish a feedback loop to help teams be
transparent on improvements made to deliver value early yet at a sustainable pace
to stakeholders. e.g.- Lead and Cycle Times
- Rework & Waste
- Product Quality
- Risk & Value delivered – e.g. No of deployments
- Job/Team Satisfaction
- Customer Satisfaction
- Capture the metrics needed to establish a feedback loop to help teams be
If you are interested or like to see how we can help then either contact us or email us at info@bagile.co.uk