Question from a budding Scrum Master: in order to promote 'we succeed or fail as a team' and self organizing, I am going to try something different with the team in upcoming sprints. During the planning meeting, instead of dividing the tasks for user stories between each team member, I am going to just identify tasks and hours needed and leave it at that. Each team member would have to 'pull' the task from the remaining work on a daily basis as they complete the previously pulled task. I think this should achieve couple of things:
- Each team member will stop looking at their own view of what they need to get done before the end of sprint and look at what's remaining as a team
- Before then can pull a new task to work on, they would need to coordinate/communicate/plan with the other team members instead of they working in isolation.
Has any one tried something like this before? Essentially this is a 'pull' system instead of 'push' system where the instead of someone assigning tasks to team member, the team member decides which tasks they want to work on.
My answer, in my experience as a Professional Scrum Master, and Professional Scrum Trainer was the following:
“Your recommendation is definitely a best practice for Scrum Masters. In organizations still transitioning to Agile in many cases work is distributed exactly as described, by "dividing the tasks for user stories between each team member" (that is, "assigning" work).
Notice that the word "assign" is neither in the Agile Manifesto nor the Scrum guide. Both use the generic and not well understood term "self-organizing":
- "The best architectures, requirements, and designs emerge from self-organizing teams." (Agile Manifesto)
And from the Scrum Guide:
- "Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team."
- "Development Teams are structured and empowered by the organization to organize and manage their own work."
- "Development Teams have the following characteristics:
They are self-organizing. No one (not even the Scrum Master) tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality"
- "The Scrum Master serves the Development Team in several ways, including:
Coaching the Development Team in self-organization and cross-functionality"
- "By the end of the Sprint Planning, the Development Team should be able to explain to the Product Owner and Scrum Master how it intends to work as a self-organizing team to accomplish the Sprint Goal and create the anticipated Increment."
So what does it mean to be self-organizing? Besides its general concept, in the context of software development it means, among others things, bottom up estimation and planning at least at the sprint/team level, Development Team peer pressure to balance workload (the Development Team knows who is not pulling their weight), overall proactiveness from the Development Team to go after what needs to be done to achieve the sprint objective instead of waiting for task assignments.
In a section of his book "Agile Project Management with Scrum", Ken Schwaber summarized how we tend to succumb to expecting others to make decisions that we should be making ourselves:
"Being managed by someone else is totally ingrained in our life and work experience. Parents, teachers, and bosses who teach us to self-manage instead of striving to fulfill their expectations are rare. Why should we expect that when we tell a Team that it is responsible for managing itself, it will know what we are talking about? “Self-management” is just a phrase to them; it isn’t yet something real. A Team requires concrete experience with Scrum before it can truly understand how to manage itself and how to take the responsibility and authority for planning and conducting its own activities. Not only must the ScrumMaster help the Team to acquire this experience, but the Scrum Master must also do so while overcoming his or her own tendencies to manage the Team. Both the ScrumMaster and the Team have to learn anew how to approach the issue of management."
In essence the following principle from the Agile Manifesto best summarizes what is needed:
"Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done."
During a meeting in the early days of the Agile Manifesto, several renowned Agile experts met (www.cs.umd.edu/~mvz/pub/agile.pdf) and came out with the following definition for an Agile process:
"Agile Methods are:
- Self-organizing (The team has the autonomy to organize itself to best complete the work items.)
- Emergent (Technology and requirements are “allowed” to emerge through the product development cycle.)
All Agile methods follow the four values and 12 principles of the Agile Manifesto."
Doing the first two is easier. The bottom two are the last mile of Agile adoption, and require from the Scrum Master a constant team education effort.”
Do not forget: Azurecon is on the 29th of September. The sessions I want to watch are in one way or another related to DevOps:
- Azure for developers
Gain a thorough understanding of the components of Azure and how you can take advantage of them as a developer.
Speaker: Scott Hanselman
This is a Scott Hanselman's session(!), it is always entertaining and informative, even if you think you already know everything he is talking about he will surprise you with a new twist :-)
Claude joined Microsoft with Incycle's Release Management tool purchase, and now its technology is being integrated into VSO and Azure. A must see if you are a DevOps practitioner.
This is pretty much the complement of what Claude will be talking about, and both delve into the "last mile" of software development. Again, a must see if you are a DevOps practitioner, with the added benefit of watching Donovan Brown who is now a DevOps program manager at Microsoft.
Outside of DevOps I will be watching this one out of sheer pleasure and my interest on AI applications:
- Applying Azure Machine Learning to software development
Azure Machine Learning has proven to be effective in a variety of application domains, including speech recognition, object recognition, and image retrieval. In each of these domains, Machine-Learning based programs must adapt to changing conditions, handle large data sets, often with irregularities, and come up with algorithms with little or incomplete knowledge. Sounds similar to software development? Turns out that Machine Learning is being applied to the field of software development, including reverse-engineering legacy code, software fault-detection, and requirements analysis. In this session, you’ll look at various examples of how Machine Learning is being applied to software engineering problems.
Speaker: Vishwas Lele
I will add some of my notes and comments to this post after the event. Enjoy!
I took the 26th of September, a Saturday, to attend MeasureUp, a free conference provided by ClearMeasure, a provider of custom Cloud (especially Azure) development services in Austin.
I have known Jeffrey Palermo for a while ever since we had a chance of briefly working together at Dell. Later he successfully applied his deep knowledge, discipline, and personal charisma (Jeffrey’s parties are famous) into entrepreneurship to create his own consulting company which became ClearMeasure.
The conference was an interesting combination of technical and business sessions, all highly relevant and cutting edge. While on site I I happened to focus mostly on the business related talks except for a couple sessions, but will later come back and watch the other technical sessions as well, as they represent leading trends going on in application development.
Here is a quick list of the sessions I attended, Hopefully my brief notes will help decide to go ahead and watch when they are available at UserGroupTV. I will be updating this post as recordings are released.
9:00 Enabling Continuous Delivery – Justin Mason
Justin went over the foundational concepts of CD using Humble and Farley's book as a reference, while adding his own extensive practical experience when providing practical examples of how the ideas might be applied. This experience has been extracted from working with hundreds of companies, which made his recommendations even more authoritative.
10:00 Success as a Remote Worker: Love your Job, Have a Life. – James Chambers
James works remotely for ClearMeasure out of a 35,000 person town, but he is on top of all things MVC6 so he pretty much interacts with the world through the window provided by working remotely from his home. That takes a lot of discipline and know-how, and this great talk explains some of the best practices he has achieved. The talk was so good that it made me look forward to his next one on MVC6.
11:00 Behold the Power of the PPO! – Kevin Hurwitz
Kevin started by spelling out why the emperor has no clothes, and explained that the biggest lie he had been hearing in the last ten years is that having a Product Owner in your project will solve all of your disconnects between what is asked and what is delivered.
After making the case for a PPO or a Proxy Product Owner, he explained why this person has to be:
- 50% Developer
- 50% Analyst
- 100% Owner
It bodes well with Scrum.org thinking itself when it recommends to developers that you should know the domain as well as the product owner themselves in order to make a valuable contribution. Kevin ideas reminded of the concept of Chief Programmers and Chief Architect in FDD, but the difference is that he achieved his definition of PPO in the course of working with 160 plus customers and asking what worked and what did not when interfacing with the PO and/or end user.
Again, another seasoned contributor so I could clearly see he was speaking out from a different kind of experience, forged in the reality of solving thousands of problems in the line of duty of customer satisfaction.
12:00 The Leading Measures of Velocity – Allen Hurst
Watch it at http://usergroup.tv/videos/the-leading-measures-of-velocity
Allen’s take on the concept of team Velocity expanded it into beyond the one commonly known to Agile, taking into account other factors that affect teams, including, for instance, morale and management styles.
To the end this talk was more about metrics in general, and how not to overdue their usage while gathering enough to be able to consistently plan your releases. As with some of the other talks, I will have to watch it again as Allen provided many interesting references for follow up.
2:00 Reshaping the Company- Continuous Deployment and Culture Change
– Gabriel Schenker
Watch it at http://usergroup.tv/videos/reshaping-the-company-continuous-deployment-and-culture-change
In Gabriel's presentation I could see my own experience when going from totally undisciplined production release habits in my earlier jobs, to the almost precision-clockwork sophistication of some of the teams I work with.
The take away was that without changing the culture, implementing CD will be only as successful as the cargo-cult teams ability to mimic improvements, but eventually if these practices are not internalized and become second nature, they will die under their own weight.
4:00 The DevOps Silver Bullet – Peter Siri
Watch it at http://usergroup.tv/videos/the-devops-silver-bullet
In this talk Peter took the commonly assumed concept that there are no “silver bullets” in software development, and moved it upside down by showing his own idea of what that silver bullet would be. I will not spoil the surprise by giving away what his analogy is, but as with any good vampire movie, it kept my attention to the end.
5:00 MVC6 – What You Need to Know When Moving to Next – James Chambers
Watch it at http://usergroup.tv/videos/mvc6-what-you-need-to-know-when-moving-to-next
James went over the latest and greatest on what is coming in MVC6 – and then I realized how much I need to catch up on my MVC knowledge. It was one of the richest presentations on an upcoming technology I have heard for a while. This one will I will definitely have to watch again, as soon as Shawn Weisfeld, our Microsoft Technical Evangelist for the Cloud, publishes it in his http://usergroup.tv/ website. Thank you Shawn for your contribution to this event.
Please join us on August 28th for another Austin ALM User group meeting.
Presentation: TFS 2015 Panel - New Features and Installation/Upgrade Experiences
Join us on 28th of August to review the new features of TFS 2015, share your installation/upgrades experiences and talk about any topics that would help you get ready for an upgrade.
The Austin ALM User Group Leadership will compose the panel, plus a couple of Microsoft ALM Specialists.
Microsoft Technology Center: Austin
Quarry Oaks Atrium
Bldg. 2 - 2nd Fl.
10900 S. Stonelake Blvd.
Austin, TX 78759
To ensure a seat and lunch, please register at: https://www.eventbrite.com/e/tfs-2015-panel-new-features-and-installationupgrade-experiences-tickets-18159555720
11:30 - Noon:
Noon - 1PM: Presentation and Discussion
I have been working with the Jenkins build management system since last July and helping our internal Java, iOS and some .NET development teams to implement Continuous Integration. The objective is to also coordinate their builds with SonarQube so we can get cross-collection visibility to status in some projects that span multiple teams.
Microsoft has recently released the ability to have Jenkins builds in VSO through service hooks:
If we had this for TFS on premises a year ago we might have followed a different route for our Jenkins/SonarQube implementation, as it is the composite report of all our application builds and deployments (through pipeline statuses) that we are mostly interested in.
For my own work in the cloud I have been using the new fantastically flexible new Build.vNext system. And that composite Build/Release report: you get it almost effortless if using VSO/Azure, in contrast with our current solution which is manually intensive.
Let’s see how our work evolves. I will be looking at this again, specially if it makes into TFS on premises in the near future.
ScrummerFall, WaterScrum, WaterScrumFall: over the years, and as recently as last month, I have seen many referring to these Scrum "aberrations" as if being the same. Here is it for the record, what each one means:
- ScrummerFall: "embedding Waterfall inside of Scrum. This often manifests in what I call the One-Two-One pattern: one week of design, two weeks of coding, one week of test and integration. I've yet to see a team that was long term successful with such a system, especially if they are strongly rooted in historical Waterfall." Aaron Erickson calls it the World's Worst Software Development Methodology. But in my opinion it is so because it is unethically deceptive: it promises renewal, but built on top of a complete mirage of Agile adoption. Picture it this way: it is as if you are thirsty for a fresh flow of Agile ideas in a "Waterfall" desert, and as you get closer it disappears as you slams your face in the sand.
- WaterScrum: "Co-dependent Waterfall and Scrum projects. Similar to trying to play (American) football and soccer on the same field at the same time, requiring extra levels of coordination and timing." That is, you are trying at the same time to abide by Scrum at the team level, and Waterfall at the corporate level.
- WaterScrumFall: "1) Water – Defines the upfront project planning process that typically happens between IT and the business. 2) Scrum – An iterative and adaptive approach to achieving the overall plan that was first laid out in the 'Water' stage. 3) Fall – A controlled, infrequent production release cycle that is governed by organizational policy and infrastructure limitations."
ScrummerFall and WaterScrum, are in reallity team dysfunctions caused by lack of experience in Agile. They can be fixed at the team level by a good Scrum Master or Agile Coach who can guide the team towards optimized, clean Agile practices.
On the WaterScrumFall, Manoj Sanhotra found some silver-lining by using it for incremental adoption of Agile practices, and even proposed a way to take it to the next level. The picture below is from his post, and it explains graphically what the general idea of WaterScrumFall is:
But as Dave West said, this is still the development processes of most companies, and has in my experience been the most frequent source of friction when adopting Agile. From what I have seen at 100 plus customers, Agile teams tends to end up stifled and suffocated with bureaucracy and controls created by all the hand-offs between the silos. In all my years working with ALM, centralized PMO and QA teams have been both the last mile of Agile adoption everywhere I have been. I however do not agree with Sanjeev Sharma that WaterScrumFall is here to stay.
WaterScrumFall stems from confusing Governance phases with Execution steps. Some have tried to fix this situation at the PMO level by adopting an Agile Portfolio Management strategy, others by adopting a DevOps oriented approach QA and Deployment.
Scale up frameworks such as SAFe, and Enterprise Scrum focus on optimizing from PMO to Operations. The only frameworks I am familiar with that handle this optimization from idea inception are Lean and Nexus, because it is the business itself that has to become Agile, and until that happens, the "throw-it-over-the-wall" handoff attitude will continue to exist among the fiefdoms of modern enterprise.
Paul Barham from Microsoft wrote an article about how Visual Studio Online Supports True Cross-Platform Development. As I had mentioned in a previous blog post, this has been a nice new trend coming from Microsoft as they expand cross-platform capabilities, enhancing the usage of VSO for big enterprise with heterogeneous environments. Notice the list of available service hooks:
The article does a brief summary of the many ways that VSO enables cross-platform development, from using git as the source control format, and thus supporting, for instance, XCode, to allowing different build systems such as Jenkins to enable Continuous Integration to getting it all tied together and traceable using a Team web backlog.
The ALM Rangers leadership has banded together to condense their experience in a new book, Managing Agile Open-Source Software Projects with Microsoft Visual Studio Online (ISBN 9781509300648), by Brian Blackman, Gordon Beeming, Michael Fourie, and Willy-Peter Schaub. And what is even better: it is available as a free ebook download at MSPress.
One picture from the book will suffice to encourage you to take a deeper look into the dynamics of the ALM Rangers and how it has been able to anticipate and complement the Visual Studio team in helping customers of all sizes in getting the best from the ALM tools from Microsoft:
I know all of the authors in person which allows me to say that this book represents just a tip of the iceberg of things they do for the ALM community in general. My question has always been: how do they do it? The book details some of the organizational aspects that through their leadership have been adopted in the large by the Rangers. It should be no surprise that the success of the Rangers program has its roots in principled-leadership, as everything else (Stephen Covey being someone who has summarized what humankind has known for centuries).
I mentioned last week I would come back and talk about some fantastic Build 2015 sessions on DevOps and TFS.
I recommend watching at those seven sessions. If you don’t have the time, here are the ones that are a must-see:
Using Visual Studio, Team Foundation Server, Visual Studio Online, and SonarQube to Understand and Prevent Technical Debt
Technical debt is the set of problems in a development effort that make forward progress on customer value inefficient. Technical debt saps productivity by making code hard to understand, fragile, difficult to validate, and creates unplanned work that blocks progress. SonarQube is the de-facto Open Source tool to manage down technical debt.
I have been working with the Rangers to release some documentation on how to install and configure SonarQube up on a simple scenario, so this talk has been a great complement to what we have been doing.
Managing Cloud Environment and Application Lifecycle Using Azure Tools and Visual Studio Online
The modern way of development requires frequent changes not only to the application itself but also to your environments. Those changes demand a set of tools that make those tasks shareable, configurable and repeatable. In this session we’ll talk you through how to use Visual Studio tools for Azure to build and author Azure environments as well as test your applications in those environments. We will also show you how to take advantage of Visual Studio Online and Release Management for Visual Studio to automate the entire process and push environmental and application changes through a staged environment.
This presentation by Claude Remillard, one of the program managers for Release Management, which to me indicates that some of these tools are also coming to TFS on premises. More than that, you can see how the Ops side of ALM is now being fulfilled in the long term view Microsoft has for ALM.
Last week at Build the Visual Studio team had some fantastic sessions on DevOps and TFS. I might come back and comment on a couple ones that really caught my attention.
The most exciting thing though was the announcement of TFS Release Candidate, which you can get here. I could go on to talk about features but it would be better for you to ready from the horse’s mouth at Brian Harry’s blog. There were so many new things to check out that I had to read the post twice to make sure I was not missing anything. My favorite two topics were Release Validation, one of the last miles od DevOps, and Agile project management (many long sought after improvements in the UX area).
A quick installation went without any issues. I will be testing a couple of upgrades in the next few weeks. We are not planning to use the “go live” option, but it seems stable enough to do it. It’s looking good!