On Agile2019

I spent the week of August 5th at Agile2019… my first time at this conference. I left the conference energized, excited, and exhausted. I am grateful for the rich content from the many presenters, the connections made (both new and renewed), and the collaboration that created this experience. As I reflect on the week, I wanted to take a moment to explore some key takeaways from the...

Hazards of the SME

Agile teams are often configured to make use of a SME (Subject Matter Expert). A SME is typically someone not on the Scrum Team, who brings specialized knowledge, skills, or expertise needed by the team. The team doesn't have everything required, so we give them access to a SME. The SME's contribution may be in the domain, technology, or other skills such as problem solving. Sounds...

What If We Didn’t Have to Run Those 4 Miles?

We all want to be productive, right? But when does our desire to be productive, and our mental model of what "being productive" looks like, get in the way? It's 8:30 on a Wednesday morning. This particular cross-functional team (representatives from multiple teams across the organization) meets 3 times a week to coordinate activities around an organizational goal. This is a version of...

The humble build-up chart – communicating with stakeholders

Many of us work in environments where the question “when will you be done with X?” matters. Some of the examples I have seen recently are: The business team wants a certain set of functional enhancements as well as performance & scalability improvements. Can we get both done? Will one need to take a back seat to the other? A customer has a “deployment window” that we want to hit with...

I Want Agile – But I Want Certainty As Well

Today I am reflecting on how difficult it is for individuals and organizations to deal effectively with uncertainty and ambiguity, and how the underlying belief in the possibility of certainty has such a strong hold on us. Examples of that desire for certainty that have appeared on my radar over the last few years include: A customer requested that a project be performed using an agile...

Analysis vs. Doing Something

How long should a team spend analyzing something before doing something? A team I work with recently used a "spike" to investigate how to implement a new system capability. The spike was open for two sprints, although I am not sure how much effort was expended over the course of those two sprints. The fact of this spike being open for two sprints made me curious about the trade-offs made…...

Feature Teams and Component Teams

I recently found myself in a conversation with a colleague regarding feature teams vs. component teams. The colleague was expressing his frustration with feature teams. In his environment, there are a number of shared infrastructure systems on top of which are built a variety of products and features. His frustrations included: One feature team (for a significant new product) was set up on their...

Uncertainty and Improvement: Harnessing the Desire to Improve

"I'm implementing a user story and I see a way to improve/refactor the existing code while I am at it. Should I do that?" "I've completed implementing a user story and want to clean up the code I've written. Should I do that?" "I have an idea for a better way to solve this problem. Should I implement it?" "This piece of legacy code is complex and painful. I want to rewrite it. Should I do...

Agile Training, Revisited

“No man ever steps in the same river twice, for it’s not the same river and he’s not the same man.” – attributed to Heraclitus What happens when we come back to Agile training? As part of our commitment to being an Agile organization and supporting the growth of our people, in 2016 we held 2-day training events for our team members. The training was CSM (Certified...

Continuous Integration… Canary or Barn Cat?

One of the staple technical practices of agile software development is Continuous Integration (CI). A continuous integration environment provides fast feedback on the state of your code. In a typical configuration, the CI tool is configured with a "job" that monitors the source code repository for commits. When a commit is made, the job: Pulls the latest code Performs a build Runs a suite of...