Photosynthesis is one of the nature’s most sustainable production lines, the minuscule sugar/glucose Factory, by utilizing the energy of the Sun along with inputs of water and carbon dioxide
Similarly SCRUMming act as “working software” factories , with well defined/refined Product Backlog(derived from Vision/Strategic Themes), along with right Agile cultural mindset and Enablers(Practices/Tools)
Carbon is chemical backbone for Photosynthesis, like Culture for SCRUMming.
And Team (TREEs) gets it from the Environment, surroundings, values embraced and the principles followed, around and within the organization. It is one of the most important ingredients for Agile team to function efficiently and transform into high performing teams (the photosynthesis efficient Trees/plants).
The Correlations:
Photosynthetic organisms are the primary producers of SUGAR on the planet. They also produce oxygen gas as a byproduct and thus serve as the foundation of life providing food and oxygen for the complex food webs.
Scrum Teams/Scrum is one of primary holistic approaches/framework to produce working software for complex Projects. They also produce O2 “Operational efficiency” and “Optimized Whole” as byproduct and thus serve as the foundation for High performing Teams and Optimized Organizations for complex Market Needs (Projects)
Food for thought:
“The Trees that are slow to grow bear the best fruit”
Build a strong team foundation. Even as per Tuckman’s model, let the team go through the various stages of “Forming, storming, norming, and performing” to get the best results, resulting into high performing agile teams.
“Storms make trees take deeper roots”
Let the team struggle, fail small and storm, to “inspect and adapt” and “continuously learning and improving”, this leads to strong team foundation.
“Don’t cut down the TREEs”
Don’t break the scrum Teams, as reaching performing stage is difficult if the scrum teams are cut or their make-up shifts a lot, as when a change is introduced teams reach back to forming stage to start over again and adapt to the change.
The C4 plants (C4-pathway), the High performing agile Teams …..
SCRUMming “The Photosynthesis of Agile TREES (SCRUM Teams) for Software Development”
1.
2. PhotosynthesisPhotosynthesis is one of the nature’s most sustainable production lines-
“the minuscule sugar/glucose Factory”, by utilizing the energy of the Sun
along with inputs of water and carbon dioxide
SCRUMming act as “working software” factories , with well defined/refined
Product Backlog(derived from Vision/Strategic Themes), along with right
Agile cultural mindset and Enablers(Practices/Tools)
3. And Team (TREEs) gets it from the Environment, surroundings, values embraced
and the principles followed, around and within the organization. It is one of the most
important ingredients for Agile team to function efficiently and transform into high
performing teams (the photosynthesis efficient Trees/plants).
Carbon the chemical backbone for Photosynthesis, like Culture for
SCRUMming.
PHOTO:
Product
Backlog
CO2:COrdination
& COllaboration
WATER:
Enablers
SUGAR:
Working
Software
O2:
Operational
Efficiency
&
Optimized
Whole
4. The Correlations
Photosynthetic organisms: primary producers of SUGAR on the planet. They also produce oxygen gas as a
byproduct and thus serve as the foundation of life providing food and oxygen for the complex food webs.
Scrum Teams/Scrum: one of primary holistic approaches/framework to produce working software for complex Projects.
They also produce O2 “Operational efficiency” and “Optimized Whole” as byproduct and thus serve as the foundation for
High performing Teams and Optimized Organizations for complex Market Needs (Projects)
Photosynthesis SCRUMming
TREEs Agile/Scrum Teams
LEAVES Team Members
CO2 Coordination and Collaboration
WATER Enablers
SUN Source of Requirement(Stakeholders, end User, Non-functional)
Spectrum Strategic Themes, Use-cases, Ideas
Visible light Product Backlog
SUGAR Working Software
O2 ByProduct(Operational Efficiency and Optimized Whole)
Calvin Cycle Sprint
11. Enablers (WATER)
• Wire-framing and Prototyping
W
• Automation framework for
Test, Build and Integrate (CI)
A
• Tools
T
• Effective ScrumMaster
E
• Regression Suites,
Radiators
R
13. The Photosynthesis Phases
(SCRUMming)
Phase I
• Capturing of Energy from SUN as ATP
• Series of envisioning,
discussions/meetings (envisioning of
Architecture vision, Test strategy and
Product vision) during the initial phase of
the project/initial sprint (sprint0, pre-
gamming),
Phase II
The Calvin Cycle(Sprint) that
produces SUGAR
• Fixation: Sprint Planning or Coordination
• Production: Collaboration
• Regeneration: Review and Retrospective
14. Food for Thought
“The Trees that are slow to grow bear the best fruit”
Build a strong team foundation. Even as per Tuckman’s model, let the team go through the
various stages of “Forming, storming, norming, and performing” to get the best results,
resulting into high performing agile teams.
“Don’t cut down the TREEs”
Don’t break the scrum Teams, as reaching performing stage is difficult if the scrum teams are
cut or their make-up shifts a lot, as when a change is introduced teams reach back to forming
stage to start over again and adapt to the change.
15. Food for Thought
“Storms make Trees take deeper roots”
Let the team struggle, fail small and storm, to “inspect and adapt” and “continuously
learning and improving”, this leads to strong team foundation.
“Be Eco friendly, Save Trees and let them GROW !!”
Build and preserve the environment/culture for SCRUM teams (trees) and let them GROW!!
“Love the trees until their leaves fall off, and then encourage them to try again next
year.”
Letting the teams fail small and encourage them to learn and adapt, instead of penalizing
them.
The C4 plants (C4-pathway), the High performing agile Teams …..
16. The trees which are pruned, watered and nurtured by
caring hands bear the greatest fruits; it is the same
with people.
– Bryant McGill
Carbon is chemical backbone for Photosynthesis, like Culture for SCRUMming.
And Team (TREEs) gets it from the Environment, surroundings, values embraced and the principles followed, around and within the organization. It is one of the most important ingredients for Agile team to function efficiently and transform into high performing teams (the photosynthesis efficient Trees/plants).
Learning ability: should have the willingness and ability to learn. Also, should be able to share learnings across other team members. Forming Guilds/Communities within the teams and organization, is a great forum to share learnings.
Empowered: should feel empowered and willing to empower others as well with their motivation. Team member should feel empowered to raise concerns/impediments/obstacle fearlessly and should have the right to get them addressed, if that is “what is slowing them down”.
Aspirational, affectionate: should have aspirational goals and should work towards them like “I am weak at XXX module/skills; I aspire to be a Subject Matter Expert (SME) in that area”. They should also be affectionate and respect other team members as well.
Volunteering: should be volunteering to take up tasks like volunteering to represent team (Volunteer Ambassador) in any forum or discussions or organize some team building events etc.
Enthusiastic: a major contributor for a successful scrum team. If teammates aren’t enthusiastic, no process or methodology will help. Measuring enthusiasm can be done by observing various sprint meetings or the most straightforward approach, simply asking team members “Do you feel happy?” and “How motivated do you feel?”
Smart, skilled: should be smart in way of working, thinking and organizing. Team member should also possess the necessary skills to work efficiently within the team in meeting DONE and keep on continuously honing them.
Teamwork, Transparent: Agile emphasizes teamwork in software development and recognizes its human aspect. Delivering innovative, high quality software at a steady pace requires motivated, involved and happy teams. So, a team that's happy will also be more efficient, more cohesive and more ready for the tasks at hand and will deliver higher quality software. Transparency is also one of the major aspects of agile teams to function. Scrum enforces transparency inside and outside the team. Transparency is vital to the Scrum process, as it allows everyone to see and understand what is really happening in each sprint, achieving bigger/better communication and trust on the team and in this methodology. With scrum there is no hidden work being done with in the sprint.
Roles and Rituals clearly defined: The scrum defines the below three roles, which should be clearly understood with responsibilities clearly distributed and defined between the roles:
Product Owner -- holds the vision for the product
ScrumMaster -- helps the team best use Scrum to build the product
Development team -- builds the product
Also the roles and responsibilities, if defined within (internal) the scrum, should be well accepted by all members e.g. a scrum lead (scrum team representative, may be volunteer or rotation across members), Subject Matter Experts (SMEs) and should define the way of working to avoid conflicts. Many times one person sharing multiple roles or fitting into different roles leads to dysfunctions within the organization/teams and lead to project failures. Don’t let roles get in to way of Team work. Define clear Roles and responsibilities and let the team self-organize. Even the Rituals/Ceremonies like Product backlog refinement/grooming, Sprint planning, Daily Scrum, Sprint reviews and Sprint retrospective should be judicially defined and followed as core practices, with well-defined agenda, time-boxed, with ways to make them more and more effective.
Efficient: The Team should be able to efficiently work together as one team and able to delivery committed business value in an efficient manner. Several Agile metrics mentioned below can help us to give insight of team’s efficiency against their goals fulfillment, but don’t over stress on these. Try to identify the impediments that are slowing the team down or observe the patterns/anti-patterns as teams go along, listen to team’s feedback during retrospective and empower teams to inspect and adapt or drive the necessary changes required.
Burndown Charts (Sprint, Epic, and Release): Tracking the progress of work items committed in a sprint against the actual daily progress or the progress of Epics and Release targeted, as per the Release plan. Few anti patterns mentioned below should be observed for retrospection:
Team finishing early or late continuously, reflecting under or over-commitment.
Hockey sticks: the burndown with maximum or all stories getting accepted towards the end of the sprint(seen as hockey sticks) might be an indication of several issues like User stories getting queued up for acceptance or not broken down efficiently or is there scrum fall happening inside the sprint or is there scope creep happening with in the sprint.
Team should limit the Work in progress (WIP), helping in getting more efficient (reflected by smooth burnup charts) and strong cohesive teams. Working together as Team to get more DONE early, instead of working parallel on multiple tasks and struggling to meet “done” towards end or compromising quality or increasing technical debt. This can be compared as Tank shots vs shot-gunning.
Scope grows faster than the team can absorb it.
The team isn't shipping incremental releases throughout the development of an epic accumulating technical debt.
Velocity Charts: Average amount of work completed/accepted by a team observed/measured over recent few sprints. Velocity Charts can be used as a measure to track team consistency, improvements and in-efficiencies analyzed by observing the velocity trends (increasing, constant or decreasing)
Control charts (measuring cycle time): Measuring cycle time is an efficient and flexible way to improve/measure team's processes because the results of changes are discernable almost immediately, allowing them to make any further adjustments right away. It can be either for Obstacle resolution Management, Technical debt, defect resolution rate, sustenance, customer support requests etc. or any other work item where the end goal is to reduce the cycle time
Energetic: The team should full of energy and “can do” attitude, which can be easily seen from the team’s attitude towards various ceremonies/meetings. The team full of energy can do wonders!!
Self-organizing: The team should be self-organizing to get work DONE, deciding among themselves who will do what, coordinate and collaborate together to achieve sprint goals. But remember Agile isn’t a silver bullet, though the team should be self-organizing and self-managing but they still require constant coaching, guidance and mentoring from the Leadership helping them to work towards the common vision and goals.
Like SUN is the source of energy for photosynthesis, the source of requirements/backlog items are the Stakeholders, end Users and other Non-functional requirements (like trainings, platform compatibility, security etc.). Many times the stakeholders or Product owners consider these Non-functional requirements, as implicit requirements and can lead to ambiguity and chaos. So, it’s recommended that we should identify and categorize these non-functional requirements along with other requirements during the initial phase itself. May be as placeholders for later considerations, if not clear initially, better than getting missed or realizing it later during the project.
Like visible light is only used by trees for photosynthesis from the complete spectrum, similarly Product Backlog should be derived from the various requirements, ideas, thoughts, and strategic themes coming from the various Stakeholders, customers etc. aligned with Vision, Strategy and Mission (VSM) of the product. The Product Backlog should possess the below characteristics in order to deliver higher business value and happy stakeholders:
Prioritized: The backlog should be well prioritized, so that team is clear on which item needs to be delivered first and has a greater business value. This helps the team to maximize the value of the product being developed.
High Level Estimated, Healthy: Though the estimates can’t be precise at the top or initial level but at least high level estimates or T-shirt sizing helps in planning and helps Product management to make Return on Investment (ROI) decisions based on business benefits. Also as there are allot of scope creeps/changes happening on the backlog, so it should be maintained regularly to keep it healthy. A constant cadence and general practice for Backlog refinement should be defined to continuously review, groom, re-prioritize, and estimate the backlog to keep pace with the changing requirements and ensuring that the feedback loops/inputs are correctly incorporated, making the backlog emergent.
Organized: The Backlog should be well organized and categorized to help teams work more efficiently and it provides visibility to all the stakeholders involved - about the various categories, the progress made in each category and helps in providing a broader level overview/picture of the backlog like categorizing backlog with Epics, themes, features, dependent/non-dependent items or categorizing backlog based on Functional, non-functional, technical debt, sustenance etc. helps to provide the investment mix overview, helping stakeholders and product management to understand the ratio of investment in various areas, make timely assessments and take respective measures. Also the backlog should be clearly visible and accessible both to external and internal entities involved, maintaining transparency and avoid later surprises/confusion. If possible, it’s recommended to maintain visual radiators highlighting the latest backlog items, may be top level epics or Story maps including dependencies as well.
Trendy: The Backlog should be trendy in meeting the market needs as well as inviting the teams to be interested towards building it, as trendy invites innovation. Effort for trendy events like hackathons, codefest etc., should be planned explicitly into the backlog, if not feasible otherwise.
Ordered, Objective Oriented: The backlog should be ordered in the sequence it should be processed to deliver product increment, especially the sprint backlog (in details), to avoid dependencies and overlapping in tasks. The items in the backlog should be objective oriented and Product owners should make sure that the objective is clearly captured in the User Story along with the desired acceptance criteria. Also, should make sure that the actual objective of the story is met while accepting the same. The backlog should be goal oriented filling the objective of the Vision, Strategy and Mission (VSM) goals of the product.
All the below four values of Agile manifesto can only be achieved by close coordination and collaboration.
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan
Coordination: The Teams should coordinate efficiently with each other and with the task items being worked upon. Also, team members should be able to coordinate well within the various ceremonies/meetings both internal and external. Close coordination reflects the cohesiveness between the team and great wonder could be achieved in small sprint duration of two weeks.
Collaboration: The Teams and the management should be collaborative, as collaboration is one of the major pillars which define the culture of the organization, programs and the teams. Collaborating well within the team, with the customers externally, receiving constant feedbacks and incorporating the same timely, results in great product with delighted stakeholders.
If SCRUMming is done judicially, embracing the agile values and principles, we will have below as the byproducts and I can assure on this, from the practical experiences I have incurred, coaching/leading multiple teams along the way. Even “Smooth Flight” post also mentions how using scrum helped a Portuguese Airline to increase their operational efficiency.
Operation Efficiency: By adapting to the changing requirements (varying sunlight), collaborating closely with customers and delivering working software every small sprint, definitely eliminates waste and increases the operational efficiency of the team, the program and the organization.
Optimized Whole: Self-organizing team, optimize their own processes and closely collaborate with different teams/departments, sharing learnings, resolving dependencies and producing working software over comprehensive documentation, not only optimizes the team but optimize the Whole organization.
Wire-framing: Wire-framing and prototyping enables the team to have early feedback, reduces risk, cycle time and re-work. But however an efficient balance should be made on how much, when and what needs to be built matching the expectations and is adding value.
Automation framework for Test, Build and integrate (CI): There should be automation framework available to the team to test, build and integrate the software automatically/continuously to increase the efficiency of the team, enabling to churn out faster working software. But maintain a balance in overinvesting in setting up frameworks or moving more towards User Interface (UI) automation, by identifying the Return on Investment (ROI) applying to the situation and product goals. “Shift-left”, TDD or doing more unit-testing along the way, might make more sense in many cases. So accordingly, the test-strategy should be developed.
Tools: Appropriate Application lifecycle management (ALM) tools, development frameworks and some metric tools can enable team and Management to track progress and help in churning better software, with constant focus and great quality. It also ensures complete transparency and visibility. For e.g. few team uses dynamic TV dashboards to reflect metrics like Build health, development metrics like code coverage, static analysis etc.
Efficient ScrumMaster: ScrumMaster plays a role of an enabler/catalyst for thought leadership in an organization. ScrumMaster being a strong motivator, collaborator, coach makes the teams, leadership and organization to GROW, spreading awareness, maintaining the transparency, showing high level of determination/persistence and constantly coaching leadership.
Regression Suites, Radiators: Regression Suites helps the teams to continuously test their software, as soon as it is ready and helps teams to deliver working software efficiently and faster. They act as enabler for the teams to work more efficiently.
Also team should use as much radiators as possible to keep the information more visible in front of their eyes, this promotes transparency and visuals have long lasting effects like radiators for sprint goal and their progress, product vision statement, obstacle/impediments board. This also encourages focus and commitment of the team towards goals.
Working software produced at the end of each iteration/Program increment/Release should possess the below characteristics:
Sufficient functionality, Shippable Software, Satisfied Stakeholder: The software, program increment (PI), Release should have sufficient functionality meeting the acceptance criteria, should be shippable/deployable and result in satisfied/delighted stakeholder with constant feedback getting incorporated along the way.
User Friendly: The software should be user friendly, easy for end users to use it. Proper User friendly User guides/Manuals should be delivered along with the product for better user experience.
Go to Market: The software should be “go to market” i.e. deployable Minimum Marketable Release (MMR). Also viable strategies might need to be developed when time-to-market is critical for the product. “Code now, fix later” strategy could be used for production code, if the stakeholder understand the risk and time-to-market is of greater consideration.
Acceptable: The software developed should meet the acceptance criteria and should meet the acceptable standards. Techniques like Test Driven Development (TDD), ensures that the code meets the acceptable specifications/criteria.
Rigorously Tested: The software should be tested rigorously, ensuring that it meets the various performance criteria and quality standards/goals.
The Photosynthesis is divided in to two Phases:
Phase I: The capturing of Energy from SUN as ATP
Phase II: The Calvin Cycle that produces SUGAR
Phase I: In this Phase the serious of chemical reactions between photosystems powers a protein called ATP synthases which phosphorylates ADP to form ATP
When the chloroplast is receiving a steady supply of photons, the ATP molecules are rapidly being provided to the metabolic pathways. Therefore the ATP formed during the Phase I are used to fuel the Phase II, Calvin cycle reactions.
Similarly, in this phase a series of envisioning, discussions/meetings (envisioning of Architecture vision, test strategy and product vision) take place during the initial phase of the project/initial sprint (sprint0, pre-gamming), act as fuel for the coming sprints
Phase II: represent one of nature’s most sustainable production lines, the minuscule factory. The Calvin cycle (Sprint) consists of a series of reactions to produce the SUGAR. The cycle consists of three steps:
Fixation: In this step carbon dioxide is attached to RuBP resulting in a six carbon molecule that splits into two three carbon molecules.
Sprint Planning or Coordination: In this RuBP(Release Plan updates, sprint User Stories, sprint Backlog, Point estimates and Prioritized) is fixed with a sprint planning event, the aim of which is to define a sprint backlog. The User Stories are split into tasks or work items, identified for the sprint backlog and an estimated commitment for the sprint goal is made.
Production: In the second step the Glucose is produced as a result of a sequence of reactions using ATP captured in Phase I
Collaboration: In this the Product increment is produced as a result of close collaboration within the Scrum Teams (via SOS) or team members with in scrum using ATP (Architecture Vision, Test Strategy and Product Vision)
Regeneration: In the final step RuBP is again regenerated, which goes back into the cycle.
Note: The Calvin cycle has to run six times to produce one molecule of RuBP.
Review and Retrospective: In this the team reviews the work completed and the planned work that was not completed (spilled User Stories, mostly goes in to the next sprint, as next sprint User Stories). Also the completed work is presented to the stakeholder as Sprint Demos and the feedback is taken, few of them might get added to the Backlog items. Retrospective: the Team Reflects on the past sprint and identifies/agrees to continuous improvement actions/goals, which also might add to RuBP(Release Plan updates, sprint User Stories, sprint Backlog, Point estimates and Prioritized, hence regenerating RuBP for next sprint.
Note: Scaled scrum teams, generally run 5-6 Sprints to produce a Program Increment at system level and does Release planning at that point in detail producing RuBP.
By utilizing the energy of the Sun along with inputs of water and carbon dioxide
Plants act as glucose factories.
With defined/refined Backlog, along with the right Agile cultural mindset and Enablers (Tools/Practices), the SCRUM acts “working software” factories.
Photosynthetic organisms are the primary producers of SUGAR on the planet. They also produce oxygen gas as a byproduct and thus serve as the foundation of life providing food and oxygen for the complex food webs.
Scrum Teams/Scrum is one of primary holistic approaches/framework to produce working software for complex Projects on the planet. They also produce O2 “Operational efficiency” and “Optimized Whole” as byproduct and thus serve as the foundation for High performing Teams and healthy Organizations for complex Market Needs (Projects)