We all know that in small Agile
projects the team structure is simple and easy to understand as small projects
need seven to ten team members to form a cross functional team. This cross functional team would have a
leader and several team members including developers, testers, business
analysts and database specialists for example. According to Scrum, roles such as Product Owner, Scrum Master, Team
Members hold good. Also we hear Scrum
practitioners saying “Scrum does not talk about Architects or Designers or
Testers. All are team members.” Yes. Some agree and some don’t. That’s ok as long as teams exhibit the
necessary behavior to deliver what is required to be delivered. How do we structure large-scale agile
teams? What behavior do we expect out
of these teams. This blog post is about considerations for team structuring in
large-scale Agile projects or programs.
Many of us wonder how we
get Agile implementation going in large teams.
For this, obviously we need to scale up from one cross functional team
to many. “Scrum-of-Scrums” – that’s what
we hear. It is not as simple as
that. It is about scaling up your
delivery capability or setting up a delivery engine to adopt Agile methods and
deliver large projects. In order to do this we must be able to mention what we
need from our proposed large-scale delivery team. That will help us structure
the team to satisfy our needs.
So, what kind of behavior or
expectations do we have from large-scale delivery teams that implement Agile
methods? Here is a list that helped me
conceive a delivery engine show above.
1) We need a team
structure that can follow Agile principles and practices.
2) We need our team to understand business requirements, decide architectural needs and design
optimal solutions – and we need our team to resolve dependencies and create
user stories. In
this process, our team must be able to develop PoCs on need basis to validate
their approach.
3) We need
our team to create, maintain and prioritize
product backlog.
4) We need our team to implement user stories.
5) We need
independent verification to cover various areas of software testing such as functional testing,
security testing, performance testing and so on.
6) We need effective
build and release management in place.
7) We need a program
or portfolio management team – if we need to deliver a program or project
portfolio.
8)
We need a
governance mechanism to provide necessary encouragement, support and timely
course-correction so that our delivery engine is functional and capable.
9)
We need this
system to facilitate coaching on need basis for our team members.
Every structure comes with an
associated behavior. This is true for all systems including team structures. Understanding
the goals and expected behavior of your
project organization and putting together a team structure is a meaningful way to architect
team structures that can deliver results. What do you do? Do you follow one of the named methodologies and go by its suggested team structure? or do you think through and architect your team structure?
Related Posts:
No comments:
Post a Comment