Put the Cupcake Down!

cookiemonster2

First, I am guilty and struggle to loose weight that I need to loose. Having had our 4th child, sleep seems to trump the early morning work-out. However, most of the time it is because I lack discipline to prioritize my eating habits and getting to the gym. The point is, I know what I need to do, but don’t do it very well. How does that apply to this topic you ask? Well…

I have spent the last 5 years learning and experiencing everything I can with Agile Software Development practices and more specifically helping organizations change with implementing Scrum. I believe Scrum is definitely a project management process. It provides the engine or context for how the team gets and manages its work; which inherently takes a level of distraction away from those involved. We are no longer wondering what we will work on next nor are we wondering who is responsible for facilitating the gathering of requirements to feed the process. Many organizations are plagued by chaos, not necessarily because the projects they are working on are inherently chaotic, but because it involves many humans and humans tend to make things complex anyway. We all have our experiences, knowledge, personalities, and opinions (to name a few). Perhaps sometimes we let that actually get in the way of our ability to succeed; when in fact we should embrace our differences, celebrate the diversity, and use that as an advantage to build the greatest products we can for our customers. I can use the same analogy on software development in general. Can we agree that software development is complex, risky, and uncertain? Can we agree that humans are horrible at estimating things and that our accuracy only decreases with distance? It is tragic that we let all of the factors contribute to our chaotic and stressful world. We even go as far as to work extra hours and put in extra time to manage the chaos. What I love about Scrum is that it provides us a mechanism to get and manage our work in a way that helps reduce the risk, complexity, and uncertainty by learning from experience as we go (empirical process control model). We get to celebrate the things humans are not necessarily good at and build upon a process that helps reduce complexity, risk, or uncertainty. It doesn’t ever completely remove it, I can’t think of any process that is perfect in estimation and completely removes risk.

I also find it disturbing when I see teams in the world that would classify themselves as “Agile” but state that they can’t predict a timeline or release schedule (because they are “Agile”) or don’t know what they will work on until the next sprint (because the are “Agile”). I believe any Agile process is really focused on discipline and behavior and sometimes the lack of these disciplines get pawned off as “We are Agile” when they are actually just lacking focus, discipline, and collaboration. I also think there are some organizations where that is perfectly fine. Which is to my next point. You can’t simply take a template and apply it across all organizations. I tend to teach in my training courses that the software problem is in fact to build the right system, build it the right way, and deliver it at the right time. I have added on to that the fact that it is our goal to make the organization happy as we go. That actually covers a lot of ground. I don’t mean bending to the will of the organization when they challenge the Agile ideals and principals, but I also believe that they help should have input on any Agile process to meet their needs. After all, they need instrumentation to properly run the business that funds all of our paychecks. If the organization wants a year-long roadmap, then why are we afraid of that or think that is the opposite of Agile? I agree that one year is probably the max I would support (I think 9 months is reasonable). We can still utilize the Scrum process to help us determine that roadmap given we are disciplined and stick to the foundational metrics inherent in the Scrum process. The main reason teams can’t simply go off and do this tomorrow is that historical accomplishments are the foundational building blocks to forecasting the future in the Scrum process.

I actually like using Story Points (for many reasons we won’t get into here), but one reason is that they allow our sizing to be independent of duration. Duration is derived based on the sizes we complete each iteration over time. Simply put, if you have 100lbs of stone to move and you can (on average) move 10 lbs of stone per cycle, then you can estimate you will be done in about 10 cycles. If 10 cycles in your world is 10 minutes, then you can estimate that you would be complete in about 100 minutes (or 1 hour and 40 min). If you have 100 Story Points on your backlog and you complete (on average) 10 Story Points per sprint, then you can estimate you would be done in about 10 sprints. If 10 sprints in your world is 2 weeks, then you can look out 20 weeks and start gaining an understanding on duration. I would certainly not just go off and set a complete roadmap based on that metric alone, but it gives you a guideline to discuss with your teams as you start looking at all of the real work to be completed. I believe in triangulation of metrics, use many different scenarios and ranges to finally settle on delivery date that the team can actually rally behind without killing themselves. Constant and sustainable development paces are often the first thing to go in software development, mainly because we are poor at planning (because we are “Agile” right?). The Agile Manifesto itself states that we value responding to change over following a plan, but it doesn’t say we don’t plan. In fact I would contend we spend more time planning than actually following “the plan”. That is the Agile part about it. The real point is to become very disciplined in our engineering practices that we can actually ship software when we want / need to. We must focus on “DONE” and stick to working vertical slices of features each iteration that encapsulate all of the work required to deliver the software (including automated testing, builds, and deployment). Scrum will certainly expose each iteration why we would struggle with those pieces and we must constantly get better at building software. This also allows us to release software to some environment other than our local machines to gain feedback from the user to incorporate into the product. We want to ensure each iteration we are responding to the customers’ needs and are in-fact building a solution that solves their problems. If we are not, we get to talk about where we missed the mark and get better next time or we get to understand better what the customer wants (because frankly, they might not even know what they want). Feedback is the key and the only way to get true feedback is to let the customer use the real software system instead of showing them a booklet of requirement docs when they really can’t experience the workflow of the system.

One of the artifacts of the Scrum process is a product backlog. What a great idea! We have the single source to list the infinite list of things to do, paired with a finite list of resources to accomplish them. Scrum provides a role that is focused on this effort that goes under-valued in many Scrum implementations. The Product Owner is the facilitator and gather of requirements and is there to synchronize all of the inputs into the backlog to make final decisions on the most value to the customer and prioritize that work. In my opinion; they should be the expert on the customer’s problem and be able to represent that problem to the team. Scrum, however, doesn’t specifically prescribe how to build a product backlog. It does guide us in the direction of User Stories, Epics, and Themes, but what does that mean? It can be different across organizations and type of work. This is usually the first point of contention teams feel in Scrum. If we don’t have a disciplined approach that allows us to be predictable, then often times we loose the ability as the team to set the roadmap dates of delivery. How many times has your team been faced with meeting a date on the roadmap that really was manifested out of thin-air, or better yet, an Executive commitment to the customer. Scrum doesn’t tell you how to deal with that, it is an organizational problem that requires discipline to resolve. Scrum can provide the context for how to get and manage our work to produce a reliable derivation of dates for a roadmap. You still have to get good at building a backlog and keeping Executives at bay (directing them to the Product Owner should they want work placed in the team’s span of care). Often times, Software Envisioning grid-locks a new Scrum team from being better. We try to squeeze every single envisioning item into a 1-4 week iteration in which case we spend more time designing than developing software and that is where people start seeing a break-down. I recall back in 2009 when I was new in my Scrum journey and approached Ron Jeffries about this very subject. He point blank told me that Software Envisioning is not part of the Scrum process. I was now freed and understood that there perhaps is a process that lives on its own in our Product Management teams that constitute their ability to understand what their customers want and work on very high-level envisioning ideas to bring to the team in the way of design work. Whether that means that some developers are working ahead in the backlog on design in the user stories or they have their own process to conceptualize ideas. None are particular in violation of Scrum. The point is that the best folks to design and envision the software are doing so, and then bring them to the development team. The development team is inherently involved in the design and can provide feedback as well as plan (not build) the architecture required to support anything that might challenge current architecture. I am hinting to the fact that usually the first place we expose as a problem area in Scrum is the lack of discipline on our Product Management teams to get solidified in envisioning their product and providing a product vision to the team. The logistics of Scrum will take care of themselves as we begin to break large, risky ideas into Epics, Themes, and User Stories that are worked on in the sprints.

Back to complexity, risk, and uncertainty to describe software development. Basically you have a human that has an idea (Product Owner), they have to communicate that idea and vision to a group of people (the development team) who basically write text files of instructions that get interpreted by a computer and displayed on a screen in a workflow that a user can understand to accomplish their tasks (from DFW Scrum’s co-lead Gary McCants). The point is to start working on those ideas and release those text files to the computer for presentation to the user to make sure we are constantly on the right track. If we are not, we didn’t waste an inordinate amount of time to understand that. We inspect, adapt, and improve the next time. Often the burden of the process (discipline) takes center stage and gets used as the reason Scrum didn’t work. Solving problems and being the best engineers we can requires discipline. It is like trying to get your body in the best possible shape. You have to put the cupcake down, get to the gym, and be disciplined on your day to day activities. Some days you will do well, some days you won’t, but at least you can track and understand where you didn’t do well and get back to good. Agile is basically signing up to be a body builder in Software Development. It requires focus, discipline, and hard work. Any organization can get on board with that if they understand the goal, the process, and are provided the instrumentation to make decisions. I actually think we have it wrong when managers demand productivity, productivity, and productivity. Don’t get me wrong, I believe in being the most efficient we can be and deliver the most output we can, but I believe we first have to focus on predictability. In the end, that is the valuable metric that our Executives want and Scrum is just the process that we can leverage to help us wrap our head around it.

Practices of a Great Product Owner

We had the pleasure of hosting Bob Galen this week at DFW Scrum. His topic was centered around the practices of a great Product Owner. I tried to take some notes and so I am pasting those here in this blog. What people wanted most was a copy of Bob’s presentation as he didn’t really have enough time to run through every slide, but there was some valuable items in those. You can download Bob’s presentation for further viewing.

Notes (in raw form)

  • part product manager pragmatic marketing.com 37 activities po covers 8-10
  • part project manager-release planning, cross-functional, external dependencies in larger-scale environments
  • part leader-partnered with the scrum master, influence and motivation capabilities, congruent leadership
  • part business analyst-creating user stories and other requirements artifacts; ui design often a stretch
  • ring the gong for each story point accepted (good idea someone had)
  • a good product owner should have a thorough understanding of the customer needs, an active stakeholder manager, and basic knowledge of how software is developed and deployed
  • a good product owner is part of the team and stands-up for the team with passion
  • how does risk surface in the backlog? variance, spikes, high story points, dependencies
  • granularity heuristic: use the 20/30/50 rule 20% proper stories ready to roll, 30% are epics-bigger stories that will eventually be split into smaller fine grained ones, the last 50% are themes, vague ideas about long term product direction and i never put much effort here because it’s almost wrong
  • the backlog should be the one place to get our work flow, grooming, should be the caring and growing of that backlog
  • good idea for grooming, spend 20% on what’s around the corner, 30% on what’s 3-4 sprints away, and 50% of what the future looking like (breaking those down)
  • grooming is about inspiring the work flow, having great conversations and people are engaged and thinking about the next sprint
  • a good backlog looks like a tapestry with common threads

levels of criteria

  • basic team work products-done’ness criteria
  • user story or theme level-acceptance tests
  • sprint or iteration level-done’ness criteria
  • release level-release criteria

DFW Scrum 2013 Kick-off

Welcome to 2013 with DFW Scrum. We had a great meeting last TUE where we discussed our past accomplishments, how we have impacted the community through education, and what we want to see for 2013. We tried to fire ourselves (being transparent to the group on what we think we could be doing better), but the group still believes we offer value and think we are doing a pretty good job. So, Allison, Gary, and Lance will remain in your leadership team for the time being. If you are interested in being a part of the leadership team, please let one of us know.

For 2013, we really need ALL of your help to guide us to the important topics that are of value to the larger collective of the group. We only have 11 more meetings for 2013, make that 8 if we want to try to have 3 Agile Manifesto Authors or Industry Leaders speak with us. We can’t accommodate every topic, but the only way that we can measure value of the MeetUp is if you vote on a particular topic or suggest one and get others to vote. MeetUp has the ability to accept topics from the group in the way of “Suggested MeetUps“. You can “vote” on that particular MeetUp by saying you will be going to it (whether you actually come the day we schedule it is different). The one with the most people saying they would attend, gets scheduled.

I was going to comb through ALL of the suggested topics we took from our MeetUp on Jan 15, however, it won’t show up as a suggested MeetUp because I am the administrator of the site. I am going to post all of the topics here, you can then go to our MeetUp site and make them Suggested MeetUps. Shortly before our next meeting (Feb 19), I will evaluate all of the topics and choose the ones who have the most “votes”.

Topics that were submitted

  • Scrum Metrics (sequence flow chart, metrics record of progress, Velocity at start, mid, clean-up, and final
  • Case study of a local company in Agile/Scrum
  • Rashina Hoda presentation
  • Free Scrum Tools / Electronic Tools
  • US Government Procurement and Agile Methods
  • Agile CMMI
  • Best Practices for Agile Engineering
  • Ideas and Techniques on getting those around you interested in Agile
  • Hybrid Methodologies
  • Overviews of the different developer roles on the team
  • Hands-on workshops for coaching, estimating, reporting, and the like (logistics of those meetings)
  • Innovations in the Agile Framework
  • The Psychology of Scrum
  • Featured speakers sharing experiences
  • Group activity simulating Scrum
  • Performance metrics for comparing teams
  • Agile/Scrum Buddy System (paired programming for Scrum Master, the team would have meetings to discuss high/lows of the week, each month the team would find new partners which would constantly change)
  • Practical value of CSM/PSM etc…
  • Ideas on how to influence corporate culture
  • Showcase usefulness of Scrum beyond software development
  • Fast moving markets (i.e. Mobile Hardware)
  • Testing Automation
  • Introducing Scrum to an organization
  • Reporting on the project to stakeholders, team, upper management, how much is too much?
  • Change Management processes
  • Business Owner Perspectives / Executive Level Deliverables
  • Scrum and Predictability
  • Managing slack in a Kanban/Agile framework
  • Junior mentoring group that goes to schools and brings Agile principals to kids/high school/college
  • Opportunities within the group for getting and giving mentoring
  • Defect Management
  • Continuous Development (success/challenges)
  • How to integrate UX/UI / Documentation into the Agile process
  • Retrospectives (different styles)
  • ISO and Scrum
  • Small Scrum Teams
  • Scrum Team Maintenance
  • Team Building Activities
  • Agile Games
  • Backlog Grooming Ideas
  • Sprint Planning Best Practices
  • How to fit support tasks into a sprint
  • How to handle explosive growth
  • Non-Collated Teams
  • Evolution of Testing in Scrum
  • Going from Epics to Manageable Stories
  • Getting certified and employed
  • Test Driven Development
  • Managing the Agile Process in an enterprise environment
  • PMP and Scrum

Your mission (should you choose to accept it), is to pick a few topics that you are interested in, word them appropriately to signify the value, and then have your friends vote on them (in the sense of stating they will attend that MeetUp).

DFW Scrum’s December MeetUp

We met on December 18 at Improving Enterprises to hear Esther Derby talk about self-organizing teams, a much-used term that can cause quite a bit of confusion when transitioning to Scrum.  Esther began the evening by discussing the role of managers–yes, they are still needed, and their management style often needs to change as self-organizing teams are formed.  In fact, managers have a large influence on a team’s effectiveness before the team even starts work!  Esther referred to the 60-30-10 principle, based on J. Richard Hackman’s research: 60% of the variation in team effectiveness is attributable to the design of the team, 30% to the way the team is launched, and 10% to leader coaching once the team is underway.  I think more than one coach’s eyes got big at this point of the talk.

Esther continued on to talk about the design of a team and the types of support a team needs.  Calling a group of people a “team” doesn’t make it so–people need time to gel as a team.  And teams need compelling goals, information about the work, material support, access to expertise, and feedback loops that connect them to the organization in order to become high performing.  Managers need to share knowledge about the overall context of the work, and team members need to share the day-to-day knowledge of how things work to create a larger understanding between them.  Self-organizing teams must balance competing needs, and more information can help them in their decision-making.

The last part of Esther’s presentation was about coaching–the 10% of variation in team effectiveness.  It’s important to be available, and a coach or manager must be careful in not stepping in too soon or coming in too late.  It means helping people learn skills through practice and feedback and to think through issues and see new alternatives.  It may mean providing answers, facilitating, or acting as a mirror. It often means helping teams get unstuck.  In the case of good coaching, it may mean a team saying “We couldn’t have done it without you.  We couldn’t have done it with you.”

The evening concluded with Esther answering questions from some of our members, and overall it was a great learning experience.  Thank you again to Esther for volunteering her time to sharing her knowledge and wisdom with us!

DFW Scrum’s July MeetUp

We are going to try and get better at blogging about our meeting and some key take-aways to help improve the conversation for those who could not have joined us (or are not even in Dallas). I am sure as we progress these will get better, but here is our first try.

We met on TUE 7/17 6:30PM at Improving Enterprises to discuss how to handle changes to the sprint (within the sprint itself). It turns out that there were even more granular discussions that needed to happen, so we decided to break-out into to groups and discuss the various topics at hand related to the main topic we all came to learn about.

Our meeting started with Charles Bradley sharing his decision tree diagrams on how to handle sprint changes (bugs or scope), while these are certainly not all-encompassing, they are a good starting point/framework to help teams through that process (thanks Charles!). The question really is how can we embrace late breaking change in our sprints, isn’t the point of Scrum to harness change for the customer and embrace it? It turns out however, that there is a point where too much change can happen and you can’t get anything done.

Production support issues were usually the most common reasons. We don’t want those, but in reality, we all have them. Scrum is just exposing the problem on our software, so what we really need to do is determine why are there so many production support issues and solve the root problem, while in the mean time determining the best process to expose them and manage the work. Gary posed a good point as well in that “What’s the affect of your sprint length in your ability to respond to change?” If you have a month long sprint, it is really difficult to ask people to wait 1 month before you can enact their change. We had great discussions about this and the perfect sprint length, the reality is that it depends on your organization and context. 2 weeks seemed to get the most votes for the best sprint length.

We then decided to pick a few topics that were in the air and have break-out sessions on them. So here are the topics:

Sprint Length and Change: Gary McCants

  • Tendency is to pick long sprints because the business is used to long implementation times. No one really believes they can accomplish anything in short iterations.
  • One week is can be too short to be effective, this can sometimes deflate your ability to deliver
  • There is value to change control, determine how robust it should be. Change control is embodied in the Scrum process itself (rapid feedback).
  • Many organizations are challenged with regulatory compliance and state they can’t be Agile. We discussed how this is not true, you need to determine the requirements of regulation and build that into the process.
  • How do you handle Architectural changes in Scrum? Should we count velocity for large changes or simply allow it to be 0 and naturally reflect our ability to deliver new features. A big debate ensued on this one and everyone had great points (one way or the other).

Last Responsible Moment for Change: Mike Abugow

  • This is a challenge when maintaining a legacy system in business, as usually the system is older without many of the automated scenarios that newer systems can present
  • Perhaps your organization is better at being a 60/40 split (60% new development, 40% legacy support).
  • Split your commitment up on the team for a % of their time on new product and fire fighting. The first 4 hours of the day will be on new product, the last part will be the fire fighting.
  • Scrum and Kanban are work management systems, you still need engineering processes and systems (continuous integration etc…).
  • An interesting statistic was explored for those who are in legacy situations and struggle with changes in the sprint. 1/3 of your folks will be on board with Scrum, 1/3 will come around to it, and the last 1/3 will never embrace it. It’s the latter 1/3 that we have to find ways to support/manage in the adoption process.
  • In the end, Scrum is there to expose the problems, so if you are constantly changing your sprint, there are likely pointers to product planning or poor system engineering. Either one can be improved.

User Story Refinement During a Sprint (Sprint/Scope Change): Ty Crockett

  • We didn’t get everything at the beginning of the sprint, but that’s ok, we don’t expect everything will be perfect and known (that is really the point of Scrum).
  • Organizations have to be able to let the team make those changes in the sprint as design emerges
  • There is a certain amount of risk and ambiguity in taking on a user story. We understand that, and inside the sprint, the team has to address those issues as they arise
  • Capture the big picture for the business, but there is minuscule things that are not understood and are addressed within the sprint.
  • Co-located teams have a much better time dealing with this kind of thing
  • Having a Product Owner with you at all times helps in driving those conversations more often
  • Scope changes should be embraced as both engineering and product owners discover more as we start working on the user stories. We don’t want big sweeping changes, but better refinements are great.
  • Small stories are very valuable, there is less risk (less ambiguity), and the act of breaking the stories down actually helps in breaking those unknowns down.
  • Also remember that if story refinement causes problems acutely, it is probably ok, if it is chronic, then there is something likely broken.

The Team is Not Finishing the Sprint: Jay Packlick

There is a gap from what we committed to completing vs. what we are actually getting done. This is exposed on our burn-down chart, so what is our play? Jay wrote a blog post on this subject, 25 plays that help us decide what to actually do when we know we aren’t going to finish. Great stuff Jay!

Production Support and Changes During a Sprint: Charles Bradley

  • Let’s determine the cause of shifting priority, each new bug is an emergency.
  • Go through Charles’ flow chart to help deduce what actions we might take for each bug (or scope change).
  • A decision tree helps prioritize the bug.
  • Assess the size of the impact / change the business is requesting.
  • Try to make sure you are working on one thing at a time, then you can give people options to pull something out when they want to put something in (Limit WIP).

A big thanks for those who participate and especially the ones who facilitated the break-out groups. I think most of us had a great time!

Why Scrum?

Image

I have had many great conversations with people and their stance on Kanban, time boxed iterations, etc… Recently, the conversation has been more towards why we do time boxed iterations? Developers who are fantastic engineers and are practicing many of the models for great software delivery (CI, CD, TDD, etc…) say they should just release the feature when it is done, no need for time boxing.

First, I could not be happier when I hear developers talk like this, they get the fact that we want great software that can be delivered in a pipeline requiring little to no manual intervention. While this is a good thing, it is not necessarily a reason to say time boxes are not necessary. Scrum strives to impact the entire organization, not just the development team. It is not simply about creating user stories, using crafty sequences of numbers that indicate relative complexity and effort, doing sprints, reviews, and retrospectives. While that is the core of the framework, those are just the mechanisms to help understand our progress and expose the issues on how we can improve along the way.

Time-boxes (in my opinion) serve as a good cadence/rhythm that allow for us as a team to deal with all the issues that prevent us from doing better. We get to have some time to review the work we just did as a check-point that we are on the right track, we get to look back as a team and understand ways we can improve, and we get to plan the next iteration. We can focus on seeing what is next in priority, plan how we are going to attack it, and then do it. Outside of those processes is the ability to take all the things that are preventing us from doing better and we get to challenge and educate the organization of our struggles and what we can do to change.

It is not simply about the team (although that is where it usually starts, because that is where the work is happening). It’s about the team showing the organization why it can’t do better and then working to do better. Scrum states “start with a product backlog”, but doesn’t necessarily define or prescribe a way to do that, so let’s work at getting a better understanding of what our software should do and the problems it is suppose to solve. Scrum states “working software at the end of each sprint”, but it doesn’t prescribe a way to do that (by design), so let’s work on our engineering practices to ensure we can get a feature from UI-DB in a vertical slice of the feature all the way through our development environment (what does it take to make a text change in your system and deploy through the entire system to production?).

Scrum is a great framework to help guide you on the continuous improvement journey and deal with the risks, uncertainty, and complexity that exists in software development. Let’s embrace that and have a framework that can help us manage the risk, uncertainty, and complexity. It is very small and simple to understand, but is very hard to do. It takes behavior and discipline to want to do better and stick to that. It is a never ending journey, take the attitude that you celebrate the problems exposed and know there will always be problems, don’t let that get you down. Be an eternal optimist and fight through those for the better.

End of Year Meeting

Well, the end of the year is fast approaching. At DFW Scrum we normally strive to have our meetings the 3rd TUE of each month, but for November, that will not pan out. Gary and I were talking about other alternatives given I was not able to secure our 4th quarter speaker. We will definitely have a meeting before the end of the year and before the Holidays. We would usually skip DEC anyway given that most people’s schedules are crazy by that time, but if we have to do early DEC that could work.

We are thinking of having a BYOT night (Bring Your Own Topic). We will work on the logistics of actually discussing a topic, but we first need ideas. I have a place holder for the event on the MeetUp site, simply add that you will be going and place a comment regarding the topic you would like to bring. We can make a social event out of it as well as we gear up for next year. I am already working on our 1st 2012 speakers and hope it will be another great year for us.

Thank you all who make the group what it is, your participation is vital and we appreciate it more than words could express.