Process
Process is nothing but a
natural phenomenon marked by gradual changes that leads to a particular result.
For e.g., Handling of paper, records, etc. by systematically organizing them.
Here, I want to highlight need of Lean-Agile Teams by implementing "One Language
- One Team" mindset.
Key Process evolution in IT industry
In Software or IT
industries, Waterfall model
based processes were used extensively for more than 3 decades which focuses on
delivering product at once. As IT industry evolved and became competent, demand
raised to speed up Time-to-Market and increase efficiency to adapt the changes.
This brought up Agile - a iterative based process model and
first major process transformation begun in IT
industries.
Agile provided different flavors of Agile- Framework like Scrum, Kanban, eXtreme Programming, TDD, BDD, etc to resolve different development challenges to achieve better Time-to-Market and deliver values with agility. From past 1.5 decades, Agile is way of working in most of IT industries and proven effective at team level.
Agile provided different flavors of Agile- Framework like Scrum, Kanban, eXtreme Programming, TDD, BDD, etc to resolve different development challenges to achieve better Time-to-Market and deliver values with agility. From past 1.5 decades, Agile is way of working in most of IT industries and proven effective at team level.
Processes impacting way of working
Changes is SDLC execution process also affects team's way of working and team members mindset. Let us have a look how working of team changes with the processes at glance.While working in Waterfall, Development Team used to have team members which focuses on a system block/layer like Front-end/UI Layer, Middle-ware/Business Layer, Back-end/Database Layer, Testing, Business Analysts, etc. having responsibility of specific component or task. Generally, Team member of component specific development team used to call as Expert or SME. Waterfall Team model works well and yield appropriate results where requirement is fixed.
This Team behavior also get changed when organization moved to Agile and Development Team is now a Cross-Functional and self-organizing Team having team members who focuses on end-to-end execution of a Product feature or a complete system flow from requirement clarification to development to testing. Development Team member generally called as Full-Stack developer along with participation from Scrum Master to ensure everyone align with Agile processes and Product Owner to provide business knowledge including requirement. Agile Team model works well if there is requirement to increase change adaptability and where documentation is not a priority.
Lean-Agile Mindset Team
Presence of IT is
increasing drastically in all non-IT market segments and it is helping them to
grow substantially. Innovation and Continuous Improvement are now need of
every industry to be competent in market, especially, when world is facing
pandemic situation. Hence, organization must improve their way of working to
support need of an hour to better support evolution of their product/services.
On other hand, as
organization getting more Agile, the number of Agile teams are also increasing
that demands more collaboration and synchronization. What if multiple
teams are working on same product or large and complex project? Will Agile slow
down the pace? These challenges gave birth to Agile at Scale concept.
With the help of Agile at Scale frameworks like SAFe, LeSS, etc, organization
somewhat tested success to implement Agile across organization and established
co-ordinations between Agile teams. Having said that, only adopting these
frameworks is not good enough and organization have to restructure framework as
per need while eliminating wastes. Thus, organization
must start using Lean-Agile Principal based processes that will help teams to
focus on providing greatest value to customer, continuously identify ways to
reduce the waste and work together as One Team.
What One Language One Team Must do?
Teams that speaks one
language can be grouped together which will yield expected results. Here
"One Language" does mean not speaking language but purpose for
which they are working or anything that can bind them together so that they can
understand each other and grow together. "One Language" can be
anything like;
- Programming Language - Multiple teams using same programming language
(like Java, C#, Python, etc) to develop different features. For e.g., C#
to Develop UI layer, Business layer and Database layer is used to develop
multiple products or features by 2 or more teams, and all together called
as "One Team" capable of executing anything using C# language.
Thus, here "Language means C#".
- Technology Stack - Same technology stack (like Microsoft, Java,
Cloud, DevOps, Automation, Big Data, etc) consist of multiple
different tools to complete one end-to-end flow or segment. For eg.,
Different DevOps tool like Azure DevOps, AWS Pipeline, Hybrid DevOps
implementation consisting different open source tools to implement DevOps
cycle. These teams together form one team capable of implementing full
DevOps cycle using any tools. Here, "Language is DevOps".
If a team member within
the team is expert or highly skilled in one tool or programming language then
s/he should share their knowledge within team in such a way that other team
member benefit and develop capability to perform same task. Every team member
is dedicated to execute cycle of
"Plan-Build-Test-Release-Measure-Validate-Learn", defining progress
as delivering great value to customers, bring Innovation and work together for
optimization, reducing risk and reducing waste. As part of implementation,
Teams must set ground rules which are not limited to;
- Share Agile event cadence: Every team must agree on same Agile team practices
like Sprint weeks, Definition of Ready & Done, Retrospective, etc in a
cadence.
- Share Technology vision: Every team will define and abide with technology best
practices like Coding guidelines, Branching strategy, Architecture
blueprint, etc to develop system
- Plan together: Team should follow Business and Technology vision to
develop backlogs and work plan together. Team should be aligned with
Release plan. Release independently wherever possible.
- Improve Collaboration: Collaborate frequently and at regular interval. Use
collaboration tools like MS Teams, Slack, etc which helps to increase
information sharing, resolving dependencies and ambient awareness of each
other’s work.
- Retrospect together: Retreat and retrospect time-to-time. Self-manage and brainstorm
on system improvements.
- Trade-off:
Adapt agility and team members should be in position to move to new roles
to service most critical work streams. Multiple teams can move team member
as per bandwidth and emerging priorities. Consider below two scenarios
where Trade-off can be done.
- Bandwidth Trade-off: Sometimes, team completes work items within
sprint before time and team member left with some bandwidth. As per Agile
practices, Scrum Master and Product Owner works together to have work
item for available team member. Work item might be from future sprints,
if planned already, or from backlog of specific release. If there is
none, team member's either asked to perform peer programming or learning.
However, great values can be achieved if bandwidth added in
"Trade-off" bucket so that another team can consume this
bandwidth to achieve their current sprint goal.
- Deep Skill Trade-off: Sometimes, team want deep skill resource to solve
complex problem and team lacks or have less such bandwidth to complete a
story or task within sprint. In these cases, other team can swap
available deep skill team member for a sprint with other team such that
both teams will be in position to accomplish their respective sprint
goals.
- Share knowledge: Team should learn together and share knowledge with
each other. Participate in Design thinking sessions and engage in
innovative solution to solve business challenges.
- Demo & feedback: Team should provide demo on work done with other
teams in regular intervals. Also, share feedback received from customer
with other team so that same can be utilized to improve overall
performance.
Conclusion
There is nothing like Perfection while doing Lean-Agile. It has different ways to implement it and it varies from organization to organization. Company leadership team must
adopt Lean-Agile mindset way to increase agility, innovation, and continuous
improvement from core of organization.
At the end, the Lean and Agile together will thrive. It improves operating architecture and organizational models to enhance coordination between agile teams. Also, it helps to achieve faster Time-To-Market and results into great values.
At the end, the Lean and Agile together will thrive. It improves operating architecture and organizational models to enhance coordination between agile teams. Also, it helps to achieve faster Time-To-Market and results into great values.