Showing posts with label Scrum Master. Show all posts
Showing posts with label Scrum Master. Show all posts

Tuesday, January 21, 2014

A(nother) Response to SAFe Criticisms: Part 2

Full Disclosure: I am a certified Scaled Agile Framework (SAFe) Program Consultant (SPC).

In the first part of this series, I explained my intent behind answering some of the criticism for SAFe and asked for concerns that you would like to see addressed. I haven’t received any direct feedback, but the offer still stands. In the meantime, I’m going to dive into some of the more common criticisms I’ve seen already published. I’ll try to focus on one concern or small group of related concerns per blog post.

25% Scrum Masters
Edit: I originally published that "This is something that I have yet to find on the SAFe website but did come up in my SPC training. And I can tell you that it was not well received! If you want to hear about exactly how well it went over, just ask Valerie Santillo. Here’s what I got out of it:"

It has since been pointed out that this guidance is on the main website. I'm not sure if this is a new addition or an oversight on my part. It can be found in the Scrum/Agile Master Abstract in the Details section, under the heading "Sourcing the Role: A Part Time Responsibility".

Accommodating Reality
The truth of the matter is that you can’t always get Scrum Masters that are dedicated to that role. This should absolutely be avoided if possible, especially when working with teams new to Agile. What they’re saying by 25% is that, if you absolutely cannot get someone to be a fully dedicated Scrum Master, you should expect the role to take up about 25% of their time. I’d say that should about cover the administrative aspect and keep the wheels moving, but that’s about it.

Four Teams
A better approach is to make Scrum Master a dedicated role and allow them to work with multiple teams. The 25% recommendation tells me that Scrum Masters can handle at most four teams. Again, if you can avoid it, I would recommend having fewer than 4 teams sharing a Scrum Master. The most I’d personally recommend is two, with a preference to only one. However, this guidance is supposed to accommodate reality, and sometimes you just don’t have enough SMs to go around.

Starting Point
The 25% justification really only works when you’re just starting out and trying to get organizational buy-in. If you can suck it up and make it work well enough then, hopefully, your management will see the benefit a good Scrum Master could make and will make it happen. They’ll remove the part-time role, reduce the number of teams per Scrum Master – anything necessary to continue the improvements the teams have started making. That was actually the case with my first team. They went through their “Sprint 0” and their first two regular Sprints without a dedicated Scrum Master. They were struggling, but they were showing management that they were committed to making Agile work. I was allowed to come in as their Scrum Master – and only as their Scrum Master – to see how it would work. The rest, as they say, is history.

Final Destination
Good Scrum Masters always talk about how it’s their job to work themselves out of a job. If that’s the case, then eventually you’ll have teams that don’t have Scrum Masters. In those cases, there are certain responsibilities or overhead that the Scrum Master took care of which will now fall to the team. In those cases, the overhead work will need to be accounted for. From a Sprint Planning perspective, I think that cutting the velocity to account for 25% of a team member’s time for Scrum Master duties is entirely appropriate.

Thoughts?

That’s my response to the “25% Scrum Master guidance” from the SAFe training. Hopefully I was able to provide some context to show that it’s not as evil as you might have thought. Whether I was successful in addressing this concern or not, I’d like to hear your thoughts on the matter.

Continuing the Series
Part 3: HIP Sprints

Monday, November 4, 2013

The Best Lesson I Learned the Hard Way

Let me preface this by saying I do not recommend learning lessons the hard way. There's a wealth of human experience out there to learn from before you go off and make the same bone-headed mistakes. However, bone-headed mistakes will be made regardless of how cautious you are. In those cases, please go into it with a Fail-Fast, Kaizen mindset so that the mistake becomes a short-lived learning experience.

The Almighty PM
I've made a lot of mistakes in life, which means I've learned a lot of lessons “the hard way”. The one such lesson that has had the most impact on my current work life took place my senior year of college. I was in a capstone class where we were to organize ourselves into a real software team to develop a real-life application on top of a new API that we had Beta access to. We were given a little guidance, including how previous classes and many companies organize themselves, but told we could do whatever we wanted. We ended up with a very “traditional” model of a few Dev teams, a few Testing teams, an Architect, and the one Project Manager to rule them all.

I was eager to prove myself, so I went for the PM position (oddly enough, I didn't really have any competition from my obviously more self-aware classmates). The problem is Computer Science majors in their fourth (okay sixth) year of study haven't usually had any PM classes or experience. My architect laid out the architecture, lots of open source Java, wikis, subversion, etc, and the class was excited to get started. However, I was concerned about how to manage the work, as well as expectations. I started demanding individual Gantt charts up-front for the duration of the semester. I was asking each team lead to compile the Gantt for their team and report that to me so I could put it all together.

The Blind Leading the Competent
Basically, I was trying to command-and-control manage a team of part-time team members, all of whom were taking at least 12 hours that semester and had limited time to spend on this class. Of that limited time, I was asking an unreasonable amount of time on administrative work. My architect was an excellent “Yes Man”, which made it difficult for me to see what I was doing wrong. The tipping point came when we weren't getting the information we were asking for from the teams and we were way behind where we expected to be on the application. Our professor was pulled away for a class and gave me the option of keeping the class time or giving everyone the day off. My architect decided, with my blessing, to use that time to express our mutual disappointment with the team and shame them into getting their act together.

I knew it was all over when the architect started his oratory with something to the effect of “By the time I finish talking you should all be mad at me, and that's okay because I'm mad at you.” It was a horrible hour and ended with our organization in shambles. I was a broken, broken man who was certain I was going to fail the class.

A Lesson in Servant Leadership
Then one of the testing team leads asked if he could meet with me to talk through things. He kindly and patiently explained why what we did was so stupid and counter-productive. He told me that the teams needed a cheerleader, not a dictator. He asked me to spend time with the individuals on the teams. He wanted me to spend more time in face-to-face conversations instead of mass emails. He wanted me to understand how hard the class was working to accomplish a common goal so that I would stop wasting their time with unnecessary busy work. He wanted me to focus on listening and removing roadblocks. He is now, unsurprisingly, a manager at Amazon, and someone I still hold in high regard.

I didn't fail the class because the objective of the class wasn't to develop a fixed scope within fixed time and budget. My wise professor wanted us to experience real-world project work as best we could in an academic setting and learn from it. He saw me try to turn things around at the end and knew that I had seen the error of my ways. He knew that I had learned my lesson, albeit the hard way.

Lesson Learned
So what lesson did I learn? To be honest, I initially thought that the lesson I was supposed to learn was that I suck at Project Management. I could not be trusted with leading a project to completion. I could code well and kinda sorta test, but the realm of Project Management was beyond my grasp.

This lesson was reinforced when I entered the workforce a few months later and saw command-and-control PMs leading projects “correctly”. These were professionals who did not go on rants against their developers and testers. They were not perfect, but they did their best to make things work in alignment with the command-and-control, iron triangle, Waterfall-driven style they were trained to use. Despite their best efforts, I found myself in War Rooms quite frequently, and my wife learned to not expect to see me in the months surrounding a Production install. I didn't realize it at the time, but I was living through the hell that I had just put my classmates through.

Of course, that wasn't the PM's fault. As I said, they were doing the best they could, and we were doing the best we could. The problems were much deeper than any one individual. We had to change the way we work, starting by not only recognizing but emphasizing the human element of software development.

The real lesson is that command-and-control Project Management doesn't work. Had I taken the time to understand Lean/Agile development processes and practices, I could have done a decent job as a Scrum Master or Agile Servant Leader in my capstone class. I might have even done some coding and testing alongside my cross-functional Agile development team(s). Even before I learned that lesson, I learned the importance of being a cheerleader. I have always striven to let the teams I've worked with know what a great job they're doing and how much I appreciate them. I haven't always succeeded, but that pep talk I received my final year of college never left me.

Once I realized that what I was experiencing in corporate life was essentially the same as that capstone class, I vowed to change things. I delved into the world of Lean and Agile and brought the things I learned back to my area. To many people it looks like I've picked it up extremely quickly; in reality, I've been learning this lesson for at least six years. If anything, I'm ashamed it took this long to finally “click”.

Thursday, September 5, 2013

Titles

I work for a company that is predominantly (for the time being, anyhow) NOT Agile. As a person who is passionate about Agile and leads one of three areas in his Division that are all-Agile, this wreaks havoc on my job title. Technically, my job title is "Systems Analyst". But I'm not that. That doesn't describe what I do at all, really. Maybe if you use "System" to refer to a team of people, as in Lyssa Adkins and Michael Spayd's teachings. However, that's not what the title is meant to refer to internally. So I'm stuck with the dilemma of how I describe who I am and what I do for the company.

Okay, I know I started this post out on a somewhat pessimistic note, but I have to be honest: coming up with my own job title has been fun. It's rather liberating to just make something cool-sounding up when you are asked what you do. One example of this is my LinkedIn profile, where I brand myself as a "SAFe RTE, Agile Evangelist, and Scrum Ninja". What does that mean? Exactly what it sounds like. I've also referred to myself as a Defender of the Agile Brand; Agile Enthusiast; Head of the Walmart Agile User Group (which isn't so much silly, as I really did found and lead the Walmart Agile User Group); and Über Scrum Master (I really like that one because the Ü looks like a ridiculously happy face). I also have a whole slough of non-Agile titles that describe me outside of my professional life, such as Dad, Brother, Son, Captain Obvious, and Snarky McSarcasticson.

Titles are a funny thing because they define so much of who we are, whether we want them to or not. In some cases, such as my "Systems Analyst" title, that can be a bad thing (read more about the cons of titles here). Yet I wouldn't refer to myself as anti-titles. I consider myself a proponent of creative, descriptive, and self-appointed titles. Your title should be part of your brand. If you don't live up to your title then it quickly becomes apparent and does you more harm than good, so it's in your best interest not to pick something entirely inappropriate.

What do you think? Are you a fan of titles? If so, what titles do you hold? If not, how do you describe yourself succinctly when asked what you do?

Friday, July 26, 2013

Conversation

Many Scrum practitioners don't realize that Scrum did not invent the idea of User Stories - XP (eXtreme Programming) did. They are, however, often familiar with Ron Jeffries' "3 C's of a User Story", namely Card, Conversation, and Confirmation. The more I train teams on User Stories, the more convinced I am that the Conversation aspect is the most important of the three, and it is applicable to all things Agile, not just User Stories.

I recently facilitated PSI Planning for my area's Agile Release Train (Potentially Shippable Increment). I’ve noticed that, with each new PSI, the teams become more concerned with extensive pre-planning. They try to get more out of the meeting by doing as much of the actual planning before arriving at the meeting. Unfortunately, they do not understand that the primary reason for PSI Planning is not to generate a plan as much as it is to have conversations. Teams must communicate and align with each other and their customers. They must examine their work to determine what dependencies and risks are inherent in the work so that they can communicate, manage, and mitigate them as much as possible. This process happens to produce a better plan, which is why we do it. However, those who come to the event with pre-determined plans often find they must be reworked or scrapped altogether.

Rework manifests itself as delay, and delay indicates waste. Agilists hate waste. In fact, an Agilist’s views on waste and rework can be found in the 10th principle that accompanies the Agile Manifesto: “Simplicity – the art of maximizing the amount of work not done – is essential.” How do conversations help prevent rework? If we talk before acting then we get a better sense of the truth, established in an environment of shared context. Conversations mean multiple perspectives, which bring difficult questions and challenge our assumptions. They force us to produce something as a group that is better than could ever be produced in a silo. They reinforce the paradigm of “just enough, just in time” instead of “big up-front”.

Once I realized that conversations are integral to Agile, I began to review the tools and practices within Agile, specifically Scrum, for conversations. All of the prescribed ceremonies – Daily Scrum, Sprint Review, Sprint Retrospective, and Sprint Planning – center on team conversations. Pair Programming and Test-Driven Development are XP practices that rely heavily on communication, both within the development team as well as between the developers, testers, and customers. A good Scrum Master helps the team most by facilitating conversations, and the Product Owner’s backlog is meaningless if they don’t ensure the team understands the work. There are conversations baked into literally every aspect of Scrum!

Conversations are often overlooked because people do not view simply having the conversation as an objective in most cases. They focus on the stated outputs: plans; acceptance criteria; status updates; confirmation of stories completed; etc. Consequently, it is not uncommon for teams to find alternative means to deliver these results without the “overhead” of the conversations. They rely heavily on tools and individual efforts to maximize their time without hindering the team with human interaction. They may, at first, feel an increase in productivity as the perceived burden is lifted. Yet, inevitably, they find themselves struggling to deliver quality quickly and do not understand how Agile could betray them so. Hopefully they have a good Scrum Master or Agile Coach watching them adapt in the wrong direction that can have them take a step back so they can see the error of their ways. If not, it becomes easy to blame their frustration on Agile and revert back to their comfort zone of more “traditional” methodologies.

As a safeguard, I recommend teams, and especially Scrum Masters, go back to their roots frequently to make sure they’re staying true to the founding principles that make Agile methodologies so great. Remember that “business people and developers must work together daily throughout the project,” and that “the most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” Don’t just blindly follow a framework or practice; instead, try to understand why you are asked to do things a certain way. If the purpose that you perceive is not aligned with the Agile manifesto and its accompanying principles, you’re probably wrong. Acknowledge your failure, “Fail Fast”, and change your approach so that it fits the Agile paradigm. It may seem counter-intuitive at first, but it will pay off in the long run.

Monday, March 25, 2013

Agile: The Book vs. The Movie


I’ll be the first to admit that I’m a pretty big bookworm. I also love to go to the movies, which is less and less frequently now with young children at home. It’s an all too often occurrence for me to read a book and, as I see the images play out in my mind, think, “This would make a great movie!” Of course, that sentiment occasionally becomes reality and I find myself leaving the theater thinking, “The book was so much better than the movie!” The movie may even be good. It may be the best movie I see that year. But the book is invariably better.

I see teams, both inside my company and out, that struggle with making Agile work. Too often they get some basic knowledge, get really excited, and start forging onward without taking the time to continually research Agile best practices and innovations. It’s a stripped-down version of Agile, usually built on the roles and ceremonies only and not the principles on which Agile is founded. They’re taking all the action, but cutting out sub-plots and character development. It’s the movie version of Agile.

Over the past year, I’ve had several people express how impressed they are with how “by-the-book” my area is running Agile. And it’s true; we stay very true to the published recommendations that are widely accepted by the industry. We’re able to do this because the team has changed the way they approach software development. They have changed their mindset to one that aligns with Lean and Agile principles. They are flexible and embrace change because they know if something doesn’t work they can dump it after 2 weeks when the Sprint ends. This paradigm shift is essential for teams to be successful with Agile. It’s also the Scrum Master’s greatest challenge.

A team can run Scrum without a dedicated Scrum Master, but they are largely secretarial. They ensure the ceremonies are held and time-boxes are respected, but not much else. A dedicated Scrum Master is also a mentor and coach, with much of their time spent removing impediments; resolving conflict, hopefully in a productive way that results in learning and compromise; evangelizing Lean and Agile principles; and advocating XP and other technical excellence practices. This helps the team obtain and retain their “High Performing” status indefinitely. This is all made possible not in spite of all the change that is inherent in Agile, but because of it.

When it comes to Agile, I’ve “read the book” and “seen the movie” and, as with all other cases, the book provides a much richer experience. It might take longer to get through; it might take some imagination; and you might have to read it more than once. But the book is invariably better.