Scrum Development Blog

Better teams make better products.

Archive for the ‘Development’ Category

Stories Too Big – Stories Too Small – Stories Just Right

Development | Posted by doug.shimp
Feb 23 2011

Perhaps one of the least well understood patterns by scrum teams is finding the right size for a story. A story is just a chunk of work. And finding the right size is about estimating the chunk of work.

And story is right size if it is something that can be worked on now within a sprint. Each team is different. For each team the right size of the story will vary. When a team can commit to a story they are starting to give you feedback that a story is getting closer to the right size. We use relative sizing to find what the right size for a story is. As the team does more work it will settle on a pattern that is just right. Finding the right size of a story is something the product owner does by listening to the team and figiruing our what the team can commit to.

If you only plan 2 stories into a sprint then story size is probably too big. If plan 50 stories into a sprint then you are probably decomposing too small. In both cases the assumption is that you have a typical 7 person scrum team. The product owner with the help of the team is trying to find the right size of a story. As the team and the product owner work together they will establish a flow of work. As the team does work for the product owner a just right size of a story will start to be preferred. Analysis will be controlled such that the stories tend to be just right. About 10 stories in a sprint is a good rule of thumb. We call this application of sizing “The Goldilocks Theorem”, Dan.

3) large 1) small 2) medium

too big too small just right stories

This basic pattern of sizing work has been the corner stone for every estimating system.  Names like delphi estimating or base lining are legitimate techniques but often mask the basic pattern described. People are hard wired to recognize too big, too small and just right. We simply need to leverage this innate mechanism to begin sizing stories. By leveraging this innate mechanism we will find the chunk of work that leads to “One bite at a time” and “Work from a known center”.

 

Teams: Meet Connie

Development | Posted by liz.weatherhead
Feb 14 2011

connie scrum team memberKnow a team member who sits in meetings with their arms crossed and brows furrowed?  Is she always watching the clock?  I bet she has more details to share than the rest of the entire team put together.

That would be Connie.  Learning through reflection and analysis, she is an asset to any team.  Deep in reflective thought and analyzing the discussion, lends to possible negative body language that can be misinterpreted!  Connie crosses her arms because she is internalizing the conversation.  As for clock watching, Connie runs a tight schedule and expects other team members to show the same respect.

Challenged with how to implement processes, moving to action is not her strong point.  What to do is always clear, but to Connie, how to do it is puzzling.  Decisions are ” either/ or ” for Connie; being correct has a high priority.    Connie prefers to think about what will probably happen, rather that what the possibilities are.  Looking historically for solutions is her thought pattern, rather than projecting big picture, risk-taking solutions.  Maximizing certainty is where Connie operates best.

Connie’s biggest strength is knowing the experts, the data and the latest information from the super highway.  Separating fact from feeling gives Connie the ability to make decisions without personal involvement.  Not getting involved in the drama on the team is a breath of fresh air!  Organization is her strong suit and follow through with projects and reports comes easy to her.  Connie has the utmost respect for authority and expects it to be returned.  Logic and linear thinking come naturally and Connie will have great patience with you as she explains every detail in the process.

Connie will lead your organization to a reputation of outstanding tradition and prestige.

Have you seen Connie? If you have and are looking for tools to maximize her contribution to your Scrum team, join 3Back for our new teams course, 4MAT for Scrum Teams.

Teams: Meet Jake.

Development | Posted by liz.weatherhead
Jan 28 2011

Meet Jake.  At our small team daily stand-ups, Jake has more ideas than anyone else and he feels the need to share them all at every meeting. Although,  I must admit, Jake is the only team member who is concerned that everyone gets a chance to contribute.  Yet, at the large group meetings, he is reflective and quiet and is very intent on listening.   When he is asked a question, Jake takes a long time to respond.  Jake tries to be friends with everybody and sweet talks the boss, in my opinion.   Thriving on consensus, Jake needs to know all the opinions before we make any decision at all.  He takes everything personally!  The core ethical values of the organization are the rationale Jakes relies on  for drawing conclusions.  We must be in alignment with them!  He communicates well, but it’s feeling based, not grounded in best practices or expert thinking.  And team building is his absolute favorite.

Sound like a teammate of yours?  What I described is Jake’s learning style, how Jake prefers to take in and process new information.  Learning styles are often mis-labeled as personalities.  That is how learning can breed team conflict.  We see things as personal, not a function of brain-wired learning.

Let’s get back to Jake.  Jake is a reflective, feeling learner.  He functions more comfortably in small groups, and shows his deep need to be watchful and take it all in.  ”Sweet talking” the boss has no hidden agenda.  It’s Jake’s way of connecting and creating harmony, similar to Jake’s desire to reach consensus with team decisions. Team building is essential to build trust on a team, and Jake brings that voice to the table.  Trust is not a :touchy-feely” attribute, it is a mathmatically proven equation to produce better results in the business world.

As for Jake’s need to ground all things in feelings rather than fact…well, that is simply an example of effectiveness striving to balance efficiency.

Next blog, we will meet team members who are also reflective in communicating and learning.  However, they are trenched in the facts instead of the feelings.

If you are seeking skills to improve team interactions, join 3Back for our newest course, 4MAT for Scrum Teams.

Why should a ScrumMaster be a Master of Learning?

Development | Posted by liz.weatherhead
Jan 17 2011

Listening to the product.  Communicating in daily stand-ups.  Solving the problem.  They all have one thing in common.  Learning.  Every time we share information, it is learning.

When the Scrum teams listen to products, they listen through their own learning perspective.  They have preferences in how they consume information.  This is their learning style. During daily stand-ups, demos, and retrospectives, Scrum teams dialog and listen to each other; they process knowledge individually and uniquely.  This is their learning style.  As teams strive to problem solve, all learning preferences converge as they seek resolution.

When aScrumMaster can master the knowledge of learning styles and preferences, he can more effectively nurture his team to their best performance.  ScrumMasters can seek team members to complement each other in their learning styles.  Conflict can be managed through awareness of thought patterns.  Effective and efficient questioning pathways can be sought in sprint planning meetings and product demos.

There are four distinct learning styles as differentiated  by the Learning Type Measure (LTM) designed by 4MAT.  4MAT has simply, but elegantly, plotted the learning preferences on a grid of four quadrants.

4mat learning styles

If you are a One, you prefer to take in knowledge through experiences.  How you feel about the knowledge is important on your learning path. Once you have taken it all in, Ones will reflect, and especially enjoy reflective dialog in small groups.  Most important to you is the question “Why?”  Why is this meaningful to me?  Why should I care about this?

If you are a Two, you share that reflective strand, but would rather be surrounded by facts and expert thinking than experiences.  ”What?” is your driving question. Twos are the data driven, quiet team members.  You think carefully before sharing an idea.  You want to know what.  What are the facts and what do the experts say?

Threes, like Twos, want to know what credible experts believe. Then, you like to  test the theories for yourself before you buy into it. Threes will tinker with and explore the ideas.   Threes will not believe until they can prove it to themselves.  They ask “how?”  How does this work in the real world?

Threes and Fours are both doers in their learning.  They literally want to get their hands on it.  However, Fours circle back and share the desire for experience with the Ones.  Fours ask, “What if?”  What if, I adapt the expert way and make it my own?  Fours will jump in and learn as they go.

As a ScrumMaster, if you could master awareness of your team’s learning style, think of the benefits.  Diverse learning styles on teams would raise sharper questioning paths about the product. They would spark each other to greater problem solutions.  Team conflict would no longer be seen as personal, but rather as style differences.  Daily stand-ups, demos and retrospectives would be charged with creative tension, always pushing bigger and better thoughts.

Doesn’t that sound like a well formed team?

Learn more about well formed teams with our new course from 3Back, 4MAT for Scrum Teams.

Scrum Values, Visibility and Trust Loops

Development | Posted by The 3Back Team
Aug 22 2010

Trust is earned.

Some fundamentally disagree with this statement. For those that disagree Trust is given freely. They give trust freely until such time as a person irrevocably betrays that trust.  They believe that this leads to a method of management that creates hostile antagonistic workplaces rife with fear. A pattern of mistrust is established that leads others to be mistrustful and perpetuates a negative cycle of oppression.

I would agree that it sets up a behavior pattern that is negative and learned. However when I am asked to just trust someone this feels wrong to me. It’s not that I don’t trust them or do trust them It is more that I have no reason to trust them. For colleagues at work I have evidence to suggest that they won’t attack be suddenly with a gun or knife. So I trust them not to do that. However, for a man who steps out suddenly from a darkened alcove in a lonely ally… I don’t trust him that far. Why? I have no data to suggest that pattern of behavior is appropriate in that context.

So I propose that trust is earned not given freely. Most people conceptualize trust as a bank account +- (data from cognitive psychology).  So how do we open an account and start filling it?

If someone says to me, you just need to trust “xxx” and I lack data to agree then I am paused. If I say I don’t trust them will they call me a distrustful or suspicious person? Are they trying to attack my value system? What do I say here to not get painted as an oppressive mistrustful person?

Think of trust as a Trust Loop and visibility as the key to seeding that loop. I make shared work or activity visible so that we can do something/anything together.

visibility, trust loop and scrum values

Trust is earned. Anything else is what I call faith. I avoid using faith (blind intuitive leaps) for what should be an empirical approach. Now you might argue I should have enough evidence to be comfortable with something and should trust them. Truly, if I can find the data and convince myself without spending too much time, then I will. But, please let’s not argue about lack of trust. That makes me crazy and I see it too often as a bullying technique to beat someone down or attack their value system because you don’t agree with them.

Scrum Values and I propose another

1. Commitment

2. Focus

3. Openness

4. Respect

5. Courage.

6. Visibility

Visibility is valued by me because it allows me to seed the trust loop. Once I can see or have experienced working with someone on anything my trust account grows. It takes time to know and grow a relationship. As the relationship grows it becomes easier to work with that person and make bigger leaps of understanding based on previously established rapport.

Hence my rule: Make it Visible

Make it visible is one of my foundational legs that the Scrum framework rests on.

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)

Quick Summary of Scrum

Development | Posted by The 3Back Team
Feb 26 2010

Quick Scrum Summary

What follows is a bulleted list for a rapid intro / reminder of Scrum. For Scrum a good metaphor to think of is Race Car, Driver and Mechanic. Can you guess which role in Scrum is Race Car, Drive and Mechanic?scrum race car mechanic driver

3 Roles ScrumMaster (SM), Product Owner (PO) and Team

  • Team 7±2 does the work
  • PO provides the work requests
  • SM provides care for the whole team (PO/Team)
  • Team swarms on the work
  • Team is cross functional
  • Team owns its process
  • PO provides validation for each work request
  • Work is done in short bursts < 30 days each (Sprints)
  • Work starts and stops with Planning and Review
  • Review demo for product; Review retro for process
  • Daily standup detects any adjustments needed
  • PO determines priority as a flow of work requests
  • SM observes and helps the whole team adjust
  • SM tunes the whole team for maximum performance

Microsoft Agile

Development | Posted by The 3Back Team
Feb 11 2010

Is Microsoft agile? yes and no. Before we dig into the question directly it is worth spending some time to understand the word agile.

The word Agile:  The word is so commonly used and everyone acts like they have a clean definition of it but if you look for agreement around the word you will find a ton of different understandings.  There are very few good stable definitions out there from which to ground a foundation of understanding. Too often marketing has taken hold of the word and warped it’s meaning for personal gain. Or agile “experts” have not really nailed the term down to anything stable. Nothing is wrong with that, it’s just good business or people learning. However, the result is that it permeates a very messy set of understandings into the community at large.

A common mistake when people view Microsoft is too see it as one company. My experience is they made up of many subgroups or companies within a larger framework. It is one big giant company. Some subgroups are very agile and some are not. The agility is not evenly distributed and understood within Microsoft. No surprise there, every big company I have consulted with has this problem. Some groups (teams and individuals) within Microsoft are great agilists, not all. They have some of the best in the world.

What is even more interesting is that they have made significant strides with Visual Studio 2010 and winding the promise of agility into the tool. The Scrum Alliance is making an effort to launch a possible Certified Scrum Developer program. Combining both the expertise of Microsoft in VSTS 2010 and Scrum you have a winner that could really improve the practice of agility within Microsoft.

clean code helpsWhy is a good agile enabled IDE like Visual Studio 2010 so important? Clean code and clean tools allow for rapid feedback which enables a quick practice of agile understanding. A good IDE will enable rapid feedback so that the fundamentals are practiced continuously. When I use the word fundamentals it is like in basketball. You are never done dribbling the ball and when writing code you can never stop practicing good fundamentals. Unit tests are a way to achieve rapid feedback but, like all of the agile practices not a panacea. Unit testing is a piece to a bigger evolving puzzle. So a good IDE holds the promises of helping developer master and remain in mastery of the fundamentals.

Yes, Mircrosoft is agile in parts and they are poised to become much better at the practice of agility.

For more on 2010 VSTS training

Four Pillars of Software Development

Development | Posted by The 3Back Team
Apr 22 2009

The purpose of this post is to consider Four Pillars of Software Development and Simpley Rules  four-pillars-software-development

  • Project Management is mainly about “managing the work” or stimulating the environment so the work gets done with minimal telling people how / what to do.
  • Source Control if it’s only one file then, I don’t need it :)  of course it is always more than that as soon as it goes over 100 files it becomes a necessity.
  • Build automation (and repeatable automated configurations as a whole) shows up after source control and becomes a necessity around 500(pick a number that you think you will go crazy at) items or so. It is a number thing but, I can get by longer without repeatable automated configurations than I can without Source Control.
  • Test Automation this shows up as needed after 1000 plus code files. Test automation is all about feedback. When I say feedback it assumes people are already thinking in terms of interface design “start with the end in mind” if not then TDD/Unit must be purused because people are missing critical thinking skills. 
Calling them pillars for complex software development that goes over 50,000 lines of code is appropriate. If it is something less than that then they are not pillars because I can make do without.  Order that the Pillars Show Up In and Simply Rules for each pillar’s primary purpose.
  1. Project Management – “Make it visible” then emergent order can happen
  2. Source Control – “Create a Known Center” then we can work from a place of stability without getting lost in our own mess.
  3. Automated Deployments/Builds – “Work from repeatable base lines” then makes changes from there
  4. Automated Testing – “Keep stuff we want” modify to add new behavior. Sometimes through open/close and sometimes refactoring to accommodate new which yes, is recursively open/close but, not really :)
  • Each pillar is to help shorten feedback and bring focus so that we “pay attention and adapt“ .
So my take is that if you are something over 50k + lines of code then these are pillars because you just can’t move much beyond that without the tower of code falling over. Each pillar shows up as you scale the pile of complexity you are dealing with. People also increase the complexity and require more structure to work within.

 

Ideally, I want “just enough structure to run rampant in“.