Scrum Development Blog

Better teams make better products.

Agile Development

Agile Pathways, Development, Scrum Terms | Posted by The 3Back Team
Apr 08 2010
empirical-thinking-vs-predictive

Empirical Team Thinking

Agile development is now commonly referred to as those set of methods that come under the umbrella term agile or support agile thinking. To avoid a circular set of definitions we will define the word agile.

Agile is being quick enough to avoid or take advantage of those things that can hurt or help in your pursuit.

A  pursuit in this context would often be called an effort, work or project. However, notice the phrase “quick enough” why is that wording used and relevant. The biggest difference here and said in a very summarized way (which does not reveal the depth of thought behind it) is the difference between predictive thinking vs. adaptive thinking.

No matter who you are and what you do we will all fall prey to predictive thinking in varying degrees. To reduce the likely hood of being tripped up by predictive thinking agile frames a state of mind that leverages those around us to help us detect when we are being predictive and should be adjusting our plan based on new information rather than ignore it. Said another way is that we fail to detect/ignore when our assumption are no longer valid. So, agile is a social agreement to be empirical as a team. Agile development is a description of how we can put that framework to use as a well formed team. A framework for agile development is especially important as the complexity of our effort increases. For simple problems or things that are complicated but knowable a standardized process is suitable. For complex problems that can change just by looking at them we need an empirical framework.

Agile Methods that Support Empirical Thinking

Spectrum of Agile Methods

There are several Agile methods which support an Agile Development process. However, each one is best called a framework because it is applied in a unique way for each context of use.

The above diagram represents the best way we have seen to describe the agile development methods available. The ones on the right are more Bodies of Knowledge and are vast. It is their very nature of vast that can cripple a team of people trying to focus their effort. Typically large systematized thought models can become more than I want to think about and crowd out the purpose for me focus which is my effort/work/project or product that I am trying to build.

There are more such as TSP / PSP but, this model paints out a quick spectrum that summarizes the models of thought and those that sit on the boarder such as RUP. The bodies of knowledge on the right have some very good practices, processes and methods in them and should not be ignored just because they are vast. Often when you scale past 70 or so people on one project effort you will need many of the techniques that can be found in the bodies of knowledge on the right. Or if you are simple running a call center where things are complicated but, knowable and creativity for transcending the current established patterns is not desired then they are more appropriate. We would call this things that fit SOP (standard operating procedures). However, were creativity is desired and the problem is complex then the models that support agile thinking are the only ones that seem to work.

Scrum is by far the most popular of the agile models and has shown some of the best success and transaction because it is not vast. Scrum is a simple rational framework that can be memorized in 20 minutes. Applied Scrum is exceedingly difficult to do well because it requires a tremendous amount of discipline and challenges standing assumptions. The ability to reveal and challenge standing assumptions is what has made Scrum so successful. Scrum has proven itself beyond the realm of software development (form where it orginated) however, its language and purely rational approach are its weaknesses.

A quick list of agile methods

  • Scrum
  • FDD
  • Lean
  • XP
  • Crystal
  • Kanban
  • Other often proprietary Special forms…

When doing software development work a popular pattern is to use the Scrum method wrapper the XP coding practices. This is recomended and has been found to be one of the best patterns for success.

Transitioning to an agile thinking process is best done by building Agile Pathways that supports and nurtures a pattern of adoption. It is important when applying agile to not toss out established processes that work but, instead reveal how they can be improved and reinvigorated. However, a solid implementation requires an almost prescriptive start. There are too many hidden assumptions that need to be re-explored and often changed.

  • Some short phrases that help focus on agile thinking
    • Let the product lead
    • One bite at a time
    • No head works alone
    • Be empirical
    • Reflect early and often
    • Make it visible
    • Pay attention and adapt

The agile movement got it start in the public sector in 2001 with the signing of the Agile Manifesto. The first project done under the term agility and done with 1 week development cycles was in 1983 (more on this later).

For those new to agile, Scrum is a recommended place to start.

In all cases of applied agility or scrum the analysis sets the tone. Without agility in the analysis the remaining part of your effort will “waterfall” or fall prey to predictive thinking. The following set of techniques assumes a complex problem or situation. Analysis is looking for an opportunity to move. There are a few analytic techniques that show up

  • No head works alone: peer review your thought process with someone and avoid heavy process driven peer review
  • Don’t make a belief out of a model: use a data rich subject matter orientation so that you don’t try to overly tidy your thinking at the wrong time
  • Highlight areas of risk and uncertainty: the number one risk is building the wrong thing! adjust your analysis to mitigate that risk first
  • Conceptualize appropriately through time: watch which techniques you are thinking with when you move from past certainty to future uncertainty (i.e. accounting vs. finance)

Story Boss

Scrum Terms | Posted by The 3Back Team
Apr 07 2010

story boss scrumIn Agile or Scrum we often see the need for someone to be the Story Boss. The Story Boss is someone who is in charge of the story and sees that it gets to done. The most common place for this is with analysis stories. The Story boss is a temporary role or focus and after the story is done the need for this fades away. The story boss is simply an easy way for the team to track who will be chasing that story to completion.

Time Boxing

Scrum Terms | Posted by The 3Back Team
Apr 07 2010

A time box is a common practice underlying most agile processes especially, Scrum. Time boxing is a the closest thing in agile or scrum has to something that is a best practice. Most managers or early adopters of Scrum wonder what they do to create a sense of urgency and the answer is simple “Time Box”.

In Scrum we have 6 formal time boxed events.

  1. Releasing Planningscrum time boxing
  2. Sprint Planning
  3. Sprint
  4. Sprint Reveiw
  5. Sprint Retrospectvie
  6. Daily Scrum

Other time boxes can be applied and should be. The purpose of the time box is to cause movement and to set an expectation that we will limit the time and energy spent in any one direction. Generally people will fall prey to taking on too much work or big amorphous work that has no discernibly edges or clarity. Our understanding is similarly fuzzy and vague.

We can use a time box for many things including as a guide line in how we break work down into tasks or execution. Sometimes people use time boxing as a way to avoid gold platting or excessive polishing of an item or thing.

Time box is a critical practice in agile / scrum and should be applied with care. Arbitrary time boxing can drive motivation down and should not be used as a tool to create a frenetic pace or fearful environment. Time boxing is an important tool for any good scrum master or facilitator.

Architecture

Scrum Terms | Posted by The 3Back Team
Apr 02 2010

architecture agile scrumArchitecture is the context within which particular stories are implemented. In the context of scrum or agile we are considering architecture from the context of  software development. The purpose of software architecture is not to define the place for the pieces as much as it is to separate the dependencies of the pieces. The purpose of architecture is not to build a framework within which all things can nicely fit. It is to define the relationships between the major concerns of the system so when they change or new requirements emerge the impact of the changes required are limited to local modifications. Limitation of concerns to local areas allow us to think of the system in a computerized fashion and treat things as independent encapsulate modules.

Architecture has an inherent beauty of design that invites the mind and allows its purpose to be adapted as needed.

What is Scrum

Scrum Terms | Posted by The 3Back Team
Apr 02 2010

What is scrum?

Said succinctly, Scrum is a social agreement to be empirical as a team. Although that is succinct it does not explain the depth of complexity and difficulty is applying scrum to solve a problem. Scrum is a development philosophy that requires continuous balance through time. what is scrum

Scrum has 3 roles

Scrum belongs to a family of agile methods that are empirical in nature. Scrum has been popular do to its simple pragmatic nature and unique language. The language of scrum has been largely responsible for its success and uptake.

Scrum Framework

Scrum Terms | Posted by The 3Back Team
Mar 29 2010

Scrum is an empirical process and is commonly referred to as the Scrum Framework or Agile Framework.

Scrum is a framework in the sense that it is an abstract concept that must be concretely applied in your domain within your context. Understanding the Scrum Framework is contextually dependent on how you implement your process, solve your problems and get to done. Each organization has unique projects/efforts and for each one the Scrum Framework can be scrum framework agile applied.

Implementing Scrum will result in unique Agile Pathways for each organization. The Scrum Framework is typically applied for efforts that are more that just complicated but are actually complex. A complex thing in the case is something with more things that I want to think about at one time. For most work efforts that we commonly call a project this limit is easily reached thus, many efforts quickly enter the realm of complex. Pressures of time and the right way also impact complexity.

The biggest driver of complexity for most business efforts are demands from the requirements not technology. The Scrum Framework is ideally suited for complex efforts and requires discipline to execute. The framework is executed by people who are often using technology to build other technical products.

Scrum’s originated in software development but, the framework itself has been found to be is broadly applicable to other kinds of work. The ease, success rate and broad applicability of Scrum has lead to it’s rapid growth and adoption . Scrum replaces many traditional ways of thinking and challenges the team as a fundamental unit to be empirical. The Scrum Framework is deceptively simple to use and is hard to apply because of the changes in thinking that are needed.

Sprint Review

Scrum Terms | Posted by The 3Back Team
Mar 28 2010

Sprint Review is when the Product Owner and the Team show the team’s results to their Stakeholders.

There are a few reasons we do thissprint review product demo plans

  1. get stakeholders feedback on what has been done – How do you like it?
  2. improve confidence in the product’s investment – What did you spend the money on?
  3. maintain a rhythmic pattern of feedback –  Take small bites of work and feedback.
  4. manage expectations – Help others see how this is evolving so they can position for optimal product success.
  5. change direction as needed – Detect changes in direction early and often

If necessary, the Release Goals, Release Strategy, and Backlog are updated as part of the Review (or soon thereafter), taking into account the review and any “business reality” changes the Stakeholders may have . When teams are small we can rely on more intuitive reasoning to determine what the “right direction” is. As we scale we will see a need for more sophisticated techniques that use metrics to help us us answer what the “right direction” is.

Backlog

Scrum Terms | Posted by The 3Back Team
Mar 27 2010

The word backlog is used in scrum to describe two kinds of work. Work we are doing now “Sprint Backlog” and work we might do later “Product Backlog”. View in this context the word backlog is simple a list of work. The work is broken down into a focus of now and later.product backlog management

The backlog upon examination quickly becomes more complicated as demands upon it increase. The 3 notable demands that increase the complexity of the work we are managing is..

  1. Scaling the teams
  2. Concurrency of work in motion
  3. Complexity of the domain

A Scrum Team’s work is managed with a Product Backlog  (“Backlog”), which is a prioritized list  of Product Backlog Items (“PBIs”, “Backlog Items, or simply “Items”).  When the list is small it is just a straight list of things, as it grows we add grouping mechanisms to organize many little things and help us keep track.

The art of Backlog Management as with any complex endeavor is to keep things simple. Keeping things as simple and straightforward as possible is the job of both the Product Owner and Scrum Master.

Scrum Team

Scrum Terms | Posted by The 3Back Team
Mar 25 2010
scrum team solutions

Scrum Team

The fundamental unit in Scrum is the team. The team is the engine that works to provide a solution in the form of a product. The use of the word team becomes a little redundant in Scrum so the language was modified in 2007 to make a distinction between Scrum Team and team. Before the 2007 the word team was used for both cases and this created confusion.  Stakeholders form the context in which the Scrum Team exists. Usually there is someone special in the Stakeholder group we call the Business Owner who asked the team to form and consigned resources to the Product Owner to get the job done.

A Scrum team is made up of the team, the Scrum Master and Product Owner. A scrum team has all of the skills necessary to produce a meaningful increment of work each sprint. There is a balance of power and responsibility across the roles of ScrumMaster Product Owner and team.

Team is typially focused on providing innovative solutions. Can=>What=>How shall we build this?

Scrum Master is concerned with health of the team. Are we a well formed team?

Product Owner is focused on direction of the product. Where to next?

Please note this is but, an introduction to the terms. A full understanding takes reading, training and applied effort to really understand the balance achieved with the Scrum Development Method.

Stakeholders

Scrum Terms | Posted by The 3Back Team
Mar 25 2010

Arguably, the most important role involved in scrum is the Stakeholder, as the Stakeholders are the ones who have desires, wants, and needs, and are the reason the Team is developing the software in the first place. Often, there is a special stakeholder called the Business Owner, who actually controls the budget for the Team. The Business Owner is often the one who called or asked the team to form.

stakeholders in scrum and agile

While the Stakeholders are the most important source of validation for the project, the most important person on the Scrum Team is the Product Owner (PO). The Product Owner works with the Stakeholders, represents their interests to the Team, and is the sole Team Member held accountable for the product the Team builds. The Product Owner must find a result that will satisfy the Stakeholders needs and desires. The Product Owner provides direction and goals for the Team, and prioritizes what will be done. The Product Owner connects the team with the purpose.