A frequent inhibitor to effective development process is misunderstanding of the intended structure and outcome of the recurring events in a batch development cycle/sprint/iteration. I am frequently asked to provide a clear, comprehensive example of how an effective development cycle should be structured.
The broad topic of Agile Software Development
This week, I continue to build out the Development Process section of the Compendium with the addition of Development Process Metrics. When readers find that I only recommend two metrics to be common across all teams, they will either be excited or disappointed, both for reasons covered in… Read More »Prescription for Process Metrics: Apply Sparingly, Consume with Context
One more entry to close out February!
This week’s addition to The Hawkins Compendium is the Development Log artifact. Second only to the Batch Cycle Planning and Tracking Guide, this is another highly-requested item.
Launching The Hawkins Compendium with the Batch Cycle (Sprint/Iteration) Planning and Tracking Guide
For well over a decade, clients and colleagues have asked that I publish some of my guidance and training on all things Product Development so they could make use of it.
I am happy to announce the launch of The Hawkins Compendium, a curation of material I have developed over the years while leading development teams and organizations to greater levels of productivity and collaboration.
Team composition and roles can vary widely across development teams. The type of product being developed, team charter, organizational culture, and industry norms all impact whom we place into teams.
When taking an agile approach to product development, what commonalities should there be across teams as far as roles and responsibilities?
What does it mean for a team to develop software in an iterative fashion? In the wash of various processes within the agile ecosystem, iteration has come to be an overloaded term used with little thought to its purpose or the context for those systems.
The focus for this article is not iteration upon the products in the team’s portfolio, but rather the team iteratively delivering the work in their backlog.
In my experience, a healthy iterative cycle for a team involves three phases: Commit, Execute, and Evaluate.
In evolving toward greater agility, we must strike a balance between uniformity across teams and allowing flexibility for process tailored to unique team contexts.
As your organization grows from 2 to 10 to 50 teams, you have to be able to coalesce their delivery queues into an overall picture of what is being developed. However, if you push for too much uniformity, the process is no longer effective for all the types of work that go into developing your product, often to the detriment of quality and timely delivery.
Seeking that balance, I asked myself years ago what is the minimal commonality needed across teams. Coming from a (mostly back-end Java) programming background, I was inclined to express this in terms of an API_. I call it The API for Teams.
Have you ever wondered why your team is using its current development process?
If you’re the person facilitating the process, have you ever been asked “Why are we doing things this way?” and found yourself unable to articulate anything beyond process mechanics?
For me, an effective development process is meant to provide four key outcomes beyond merely delivering work. I expect these outcomes irrespective of the methodology, framework, or tools being used. My focus here is team-level development process, but the outcomes certainly scale to the organizational level.
Earlier this year, my friend Andy Glover interviewed me for season 4 of his IBM developerWorks Java technical series Podcast (RSS, iTunes, MP3 download) on the topic of Agile software development. The episode is titled “Barry Hawkins on agile software development” and runs 41:03 in length. This… Read More »IBM developerWorks Podcast: Barry Hawkins on agile software development
Being in my ninth year of applying the processes and technical practices of Agile and Lean software development, people are sometimes surprised to hear me say that Scrum is still my preferred process. Let me explain. Scrum was designed to enable empirical process control for… Read More »Empirical Process Control: Why Scrum Works