Posts Tagged ‘Agile’

Something about “being Agile” tends to make people think that productivity magically appears when you install Scrum as if it was some sort of speed boosting software optimization. This is not the case; it takes preparation, dedication to the methodology, and above all, discipline. Daily Scrums are a good case in point; many times I have seen participants show up to this critical forum without being prepared to transfer knowledge. The traditional Daily Scrum asks three questions to try to evoke the necessary intel from the Sprint participants:

  1. What did you accomplish yesterday?
  2. What do you plan on accomplishing today?
  3. Are you impeded?

There are two issues that arise from the Daily Scrum formula that I have encountered: one, the answers to these questions from each Team member don’t always get to the best information that needs to be shared; and two, Team members are not prepared to answer these questions with valuable 411. Both devalue the Scrum, and with a 15 minute timebox, it is critical to impart focused, specific information as fast as is productive to the Team. With this in mind, here are a few suggestions to keep Daily Scrums from becoming rote meetings that developers and other participants show up at, roll their eyes when they’re asked the same old questions, and — as one developer I worked with threatened — produce a simple audio file to play when asked the questions above.

Ask the right questions to get valuable answers:
Every project is different, and the questions asked of the Team should be designed to insure that knowledge is transferring properly between the Team members. This does not mean that you abandon the yesterday / today / blocked formula; rather, it means that the ScrumMaster should know enough about each Team members’ commitments to be able to help them with getting to the good stuff. The key here is to reinforce that the Team succeeds or fails by the estimation, communication, and hard work of the individuals that comprise that Team, as Clinton Keith adroitly notes on his discussion of Daily Scrums. The questions that are asked of the Team are not designed to be a simple formula so that you can repeat the same valueless information; that is why I prefer to use the term “accomplished” rather than “do”; this engages the Team member in a different way — it asks him or her to report to their Team members if they met their commitment from yesterday’s Daily Scrum. Keith makes a good point that the key to the first two questions is commitment: if a Team member commits to finishing feature x and does not, this is an impediment that is telling you a lot about the progress of the Sprint.

Be a Boy or Girl Scout; come prepared to the Daily Scrum:
Because Daily Scrums are usually timeboxed to 15 minutes, a lot of participants think they can just show up and answer the three questions and then get back to work. If this is what is happening in your Daily Scrums, you are in danger of having these crucial meetings become valueless and might as well let people play audio files to report their status. I found quite a bit of value when I insisted that Team members bring the ticket numbers for the Tasks that they were working on from whatever tracking system was in place was enough to make ’em prepare just a little bit before showing up to the Daily Scrum. This also had the side benefit that they would bring a pen and a piece of paper, which would at least have the materials present to make a note in case (shocking!) that something came up in the meeting that they were not expecting, such as “have a conversation with so-and-so immediately after this meeting to help them with impediment z”. Stacia Broderick has a wonderful phrase for a common symptom of Daily Scrum fatigue: DSW or Daily Standup Withdrawal. She prepares herself before each meeting; I don’t see why the same, short, focusing process shouldn’t be encouraged for each participant.

Handle diverging conversations immediately:
As a CSM, I have always found that the most memorable part of teaching Scrum to people is using squeaky toys to prevent Daily Scrums (or other meetings, for that matter) spiraling out of control into technical discussions, impediment removal, or other unfocused diatribes. Scrum is full of animals, starting with Jeff Sutherland’s Pigs and Chickens, but I can still remember the rubber rats from my CSM training with Dan Rawsthorne when he handed them out and thinking “what the hell are these for?” Since then I have used a front desk bell, a squeaky dog bone, and even threatened an air horn with a particularly garrulous group. The squeaky toy almost becomes like the conch shell in Lord of the Flies with some groups; even reaching for the talisman has an instantaneous effect on someone who is off on a soliloquy once they know what it means. This does not mean that you should be a heavy-handed ScrumMaster; on the contrary, it is the sign of a good Daily Scrum when a Team diverges to try to solve a problem. In this case, I take a page from XP and shut it down by providing a concrete way forward, such as “ok, you three obviously need to have an offline discussion about this; how about right after this meeting for 15 minutes and somebody be responsible for communicating the resolution?” This prevents the squeaky toy from becoming something to be feared and restores it to what it is for: focusing the Daily Scrum.

Provide concrete output from the Daily Scrum:
Whether it is on stickies, a quick set of notes, or directly updating the community Scrum Board, make sure that there are tangible results coming out of your Daily Scrums. The most important thing is definitely in the heads of the Team members, but it is highly valuable to have some sort of record of what went on yesterday today. This is a prime way to ask those extra questions suggested at the top of this list if necessary — review what the commitments were from yesterday and insure that each Team member is answering whether or not they accomplished what they set out to get done. These notes also become a key starting point for Sprint Retrospectives, when I have found there is naturally a lot of brain fade after a successful delivery. Like most everything else in Scrum, find what works for you; I have provided concrete output from Daily Scrums a variety of ways, but it is another Scrum operation that can be shifted from person to person, or combined with the Scout rule above — if Team members know that there is concrete output from the Daily Scrum, they are more likely to come prepared. These types of notes, especially in an electronic format such as a shared document or an e-mail update, also provide the added benefit of being able to communicate Sprint status on a daily basis to other interested parties, such as business owners and / or stakeholders, if necessary.

As usual, these are my observations from practicing Scrum at several different organizations, and I would be interested in any feedback about how you focus your Daily Scrums to prevent DSW, insure effective knowledge transfer, and make your Daily Scrums something that people look forward to because they provide help and value to the contribution of the Team to the Sprint.

The popularity of Agile project management has come with a lot of people saying that they “do Scrum” or “we Scrum” or “we be Sprinting” or any other combination of buzzword + us. This is known in the community as doing “Scrum but” because it inherently identifies that agility has not been fully embraced. This leads to three things:

  1. Poor results
  2. Frustration
  3. Anger at Scrum / Agile methodologies

Introducing Agile methodologies into a company is a subject for future blog posts, and won’t be covered here. Suffice it to say that without understanding and embracing, at least for the duration of a medium-sized project, an Agile tech completely, you’re going to be disappointed with the results. “Scrum but” begets butt results — just remember that.

I could go on and on with the metaphors that might explain how doing “Scrum but” is a terrible idea (it’s like thinking one or more tires on a car are optional to go on a road trip; it’s like trying to grill steaks with no propane; it’s like trying to land a job with no resume) — it all rolls up to three issues:

  1. Doing Scrum because it is cool / a buzzword / makes you feel cutting edge
  2. Believing that Scrum is a la carte rather than a whole methodology
  3. Unwillingness to let go of old Waterfall habits

Let’s discuss these three points.

One: Scrum / XP / Lean / Agile may sound cool — and done right, providing clean, measurable results, it is — but that is not the point. The point of Scrum is to force participants to think outside the box and provide continuous feedback on specific deliveries to insure that nobody is working in a vaccuum. The agile part of Scrum is reducing the battleship to a PT boat; it is able to turn on a dime rather than lumber around to a new heading. I believe that some of the attraction of Scrum is due to the flexibility of the methodology; however, when Teams start skipping Scrum Retrospectives because they have to rush to the next Sprint, or the Sprint Stories are “close enough” or “placeholders” or “XP Style” (a note to have a conversation about this later on), or there are other shortcuts taken in the process, you are accumulating Tech Debt which is guaranteed to bite you in the ass like a rogue wave (or a rogue VP). I am not arguing against the coolness of Scrum or any other Agile PM; again, they ARE cool, but it’s not in the name, it’s in the results of using Scrum effectively, and that means the whole enchilada.

Two: Scrum is not a buffet line, where you take a few Sprint sausages, some scrambled egg Stories, and a tall glass of Tasks, passing on the perceived parsley of a complete Planning Scrum and the dubious gridwork of well-formed Retrospective waffles. If you are going to try this approach, you might as well skip the plate while you are at it. There is a reason that CSMs are certified: it’s because Scrum is a methodology, and although Scrum purists will dislike that I point this out, there is a 1-2-3-4 to Scrum. It works best if the tech is embraced fully, even if you don’t understand why right off of the bat. Reusing the food metaphor, eat your veggies; it makes for a properly balanced diet. Try it, you might like it. Three pain points that I have found while implementing Scrum into businesses are the following:

  1. Planning Scrums are not prepared for (Stories ready, Backlog prioritized, etc.)
  2. Sprint Retrospectives are skipped (gotta get going on the next Sprint — no time!)
  3. Daily Scrums are not transferring knowledge properly (usually not asking the right questions)

A list of things to do is not a Backlog; an ad hoc 5 minute “how’d that Sprint go?” is not a Retrospective; “what’d you do yesterday? how bout today? are you blocked?” is not a Daily Scrum. Feel free to try to fool yourself and your organization that this is adding value, but see the first ordered list in this post for the results.

Three: As a veteran PM, I have ridden the inner tube of Waterfall-style project management, and it really isn’t all that bad if you are working for a huge company with lots of specialists and compartments, have all the time in the world to complete a project, and you are employed by the government. Even software development with ever-changing requirements can be successful with the right amount of documentation, change requests, and a battery of people willing to trade speed for bulk; i.e., the battleship. I would, however, like to point out that the dreadnought became extinct in World War II, when the strategic air power of carrier-based fighters and bombers sunk the Yamato in port in ’45. It couldn’t hide from a swarm of agile aircraft. The introduction of Scrum / Agile into a business is always fraught with the dangers of incorporating Waterfall-style PM into the process. “The Tech Spec IS the Backlog” is one I have heard countless times, and this leads to skipping the work of creating the needed pieces to properly Sprint. “These meetings are a waste of time; get back to coding!” is another one, typically from Business Owners who are trying to buffet their way to agility, usually because Waterfall — “we’re in development phase!” — is how they understand the surface of the project and because saying that the company is “Agile” or “does Scrum” is some sort of competitive advantage jargon. One of the reasons that Scrum is flexible is to be able to USE Waterfall-style documents to create solid, prioritized, accurate Backlogs, well-formed, spot-on Stories with full doneness requirements, and to provide developers with all the information that they need to Task out the Sprint to a high degree of initial accuracy, which provides a framework to embrace the inevitable changes that will come down the pipeline.

Overall, Scrum (and other Agile methodologies) suffer from the coolness factor, the buffet line, and the grandfathering-in of Waterfall thinking. Observation of anything along these three lines should be cause to stop, drop, and re-evaluate. Anytime I hear “we do Scrum but…” I always inquire if the organization has done Scrum with no But. That is the only way to understand how the pure methodology works for you, and from that foundation comes tuning and refinement, THROUGH Scrum, not around it.

Honesty is not only the best policy; in Scrum, it is the ONLY policy. There is a pseudo-phrase that is used in Scrum training to describe the appearance of Impediments: they ‘bubble up”. This only happens when Team members are honest — with themselves, with each other, with their ScrumMaster. The ScrumMaster is a facilitator and a communicator. It is the job of a well-trained and courageous SM to prod, poke, investigate, cajole, bribe, berate, beg, reward, entice, and otherwise convince both the Team as a unit and individual members to communicate impediments — no matter how large or small they may seem — by “bubbling them up” to the surface. The brave ScrumMaster then takes the Impediments and communicates them to the rest of the Team, the Product Owner; if necessary, the Business Owner, and possibly even the Stakeholders (read: Clients). Good ScrumMasters are always in jeopardy of having their heads ripped off because many times they are the bearers of bad news. Agility is also helpful in dodging thrown staplers, monitors, and other heavy, close-at-hand office items.

Honesty leads to Agility in this manner: the communication should be like greased lightning. Every employee at Achieve has seen me absorb some information and immediately turn around and start communicating it to someone else. Whether this is by walking into someone’s office, picking up the phone, crafting an IM or an e-mail, creating or refining an Unfuddle ticket, or driving between offices, you have witnessed the lengths I go to insure that communication is happening quickly, effectively, and honestly. Scrum — and I would suspect most Agile methodologies — completely falls apart if the channels to move information slow down or become clogged. Lack of transparency to the Client is the bane of Waterfall, where you work in a bubble on a project for a segment of time only to find out at delivery that this is no longer what the end user wants. It is better to confront a known Impediment than to pretend that there isn’t one or that there is nothing that you can do about it; ignorance is NOT bliss; it is cowardice.

The central strength of Scrum is that everyone is in the loop all of the time. Developers should raise impediments as they appear, not after they have been trying to solve it for an hour. Lead Developers should be ready to (and encouraged to) step in to team program around a thorny issue — after they tell their ScrumMaster that something has come to their attention in this vein. ScrumMasters should be central communication hubs that are constantly talking to the Team and the Product Owner to keep everyone appraised of progress and Impediments, all the while shielding their Team from outside interference. Product Owners should be speaking with their Clients daily in order to provide their feedback to the Team and to tell them of both good news and bad. This is colloquially known in Scrum as “swarming” and it is fantastic when it happens. Transparency may lead to Agility, but transparency comes from being honest.

[snip]

Let us review Part I of this immense Blog:

* An existing process is necessary for Agile technologies to bolt on to
* Agile means to think multidimensionally
* Process + Agile = efficient goodness
* Thinking nimbly means to find the ideal solution

Q: What is similar between hopscotch, Agile, Libras, and Aikido?

A: Balance

Hi, I’m Michael; I’m from Ocean Beach, I enjoy hacky sack, body surfing, and spinning vinyl; I am not much into health food — I am into champagne, and I am — you guessed it — a Libra.

Now, I don’t put much stock in whoroscopes, but I have always been fascinated with the concept of Balance. It is a positive thing; it is something that you can always work towards; it is not static. You must continually work to keep your Balance, and in this regard it is a lot like juggling (cue Karl with the flaming chainsaws). Balance is what must be struck at Achieve Internet between Process and Agility. We have plenty of both with the crazy brainpower, talent, and good looks at this Company, but as we struggle towards the lofty goal of being Balanced, I have a few long-winded observations on our Process for y’all to comment on:

1. UNFUDDLE TIMESHEETS ARE DA BOMB: Do you like getting paid? Then do your timesheet. Ye Grand Experiment of moving from Excel timesheets to a web-based, I-work-in-this-damn-thing-all-day-anyways application is Chris Fuller’s brainchild — I am just implementing and championing it — and it is much closer to an Agile way of tracking time. If this is not clear to you already, your paycheck is fueled by this Company billing time to the Client. We have to know what you are doing at all times in order to explain to the Client the value that they are getting from Achieve Internet. Once upon a time, there was Tracker, then there were Excel Timesheets [insert Alfresco integration link here]; now we are on the cusp of jettisoning a big pain in the ass locked up on the CLIENT drive for a much more flexible solution for every single employee. As the ScrumMaster, as the Resource Manager, as the Project Manager, and as a member of this Team, I have got to know what you are doing with a reasonable +/- WTFBBQ you are doing to move the ball forward on the football field so that I can explain to the owners why we want to extend your contract to next season. I’ll harp with just one of my many pieces of headgear on: as a ScrumMaster, I want to remove impediments for my Teams, and the Excel-based timesheets are an impediment. Help me help you: do your Unfuddle timesheets religiously or I will rent a tent and hold a revival meeting on one of our Lunch and Learns, including high-volume full-duplex teleconferencing for NYC and Costa Rica.

2. THE ACHIEVE APPROACH WORKS REALLY @*^(%*#^@ WELL: I have had this strange sense of deja vu in the last few weeks. Every single person who I tell “we’re gonna apply the Achieve Approach — Discover, Architect, Develop, Deploy…” gives me a funny look like, “what the hell is the Achieve Approach?” This makes me sad. There was a whole slide on this that Gary lovingly built and explained at the wonderful Summit that gave us all a day at the beach on Achieve Internet: drinking mimosas, eating ribs, throwing the football, and having Chip take closeups of everybody’s grill. Or did you forget about the presentation that the Business Owners worked on for a whole week because that was too much fun? Remember: keep your balance, folks. The Achieve Approach (and that’s capitalized for a reason) is both Agile and Process, and I have seen it work on every single employee. Each time I have put the AA thumbscrews on and started ratcheting them down — from the front line developers to the executives — I get the eyes rolling at me and 15 minutes later this same person is excited because we — as a Team — have caught 10 or more hours of time we would have missed if we hadn’t taken the time to ask ourselves these questions. I have seen the Achieve Approach work when a bunch of the crew wants to decide where they want to go to lunch that day! I cannot believe that we are not asking those four simple queries; every Story, every Task, every initiative, of every Client’s “business goals”, of every time I see someone rush off to do something and I watch the see-saw tip drastically in that direction. Stop, drop, and roll…with the Achieve Approach. At least for a month or so, just like the timesheets. The Achieve Approach is what our Agile is bolted to, and as a series of quick questions, it is pretty damn scalable and it saves a lot of time when the estimates are in, keeping us balanced and trusted.

3.YOU ARE RESPONSIBLE FOR THE SUCCESS OF THIS TEAM: Teamwork…Resiliency…Road Warriors…this is the Clydesdale horse puckey that Super Bowl filler is made of. While we were all tuning into the ball game, we were so amped that this stuff sounded like the Gospel. After the Game, that crap is forgotten and dragged all over the parking lot on the bottom of whatever footwear you decided to come to work in. And nobody wants to take responsibility for crapping or picking it up. This is represented best by how many times I have gone into an Achieve bathroom and there is no toilet paper on the roll. Not even a nice note on the cardboard saying “haha your f****d now!”. No thought at all, just an impediment caused by your teammate. Apparently, this is how we do our best work? I don’t have to be a CSM to tell you that this is not Agile, nor is it polite. I see this every day in little ways, and it really isn’t conducive to the Process, Agility, Teamwork, or anything else that gets us more Balanced. I hate to overemphasize, but in this toilet paper metaphor, do your diligence: Discover (no toilet paper! where is the next roll?); Architect (this is how this clever roll thing works); Develop (go and get the refill); Deploy (put it on the roller and recycle the empty). This may seem like I am talking down to y’all, but I am really not happy working in an environment where I might be shanked by an empty toilet paper roll at any time. If we cannot refill the roll for each other, we have no business building COMMUNITY WEB SITES for other people! The point I am trying to illustrate is that Achieve Internet is a TEAM; it is founded on Teams, it relies on teamwork, and this is the heart and soul of Process AND Agility. Without this fundamental core, we cannot build anything like Process, Agility, or a successful business. YOU are part of this Team, and the office doors are wide open for your contribution to the Balance of the business, and this Intranet is the forum to “get your node on” in. Community does not succeed unless every voice is heard, evaluated (Discover, Architect, Develop, Deploy), and occasionally, everyone has to refill the roll for the next Client. Baby steps always help people balance on that playground equipment.

Whitney Cali — my previous boss at Achieve — used to go to Yoga every Tuesday, leaving early at 5PM to make that class. She told me she was going to “get balanced”. I am a CSM because Whitney had the foresight to take me with her to ScrumMaster training because Achieve Internet needed it. I think Scrum has helped Achieve in a significant and measurable fashion, but there is a lot of work to be done yet. All good jobs — that you enjoy coming to, working at (most of the time), and partying with the people you meet — are this way: they need balance.

OUTPUT:
* Do your Unfuddle Timesheet
* Quiz yourself on the Achieve Approach
* Change a roll of toilet paper.

Scrum is really fond of recoiling at anything that vaguely resembles Waterfall methodology, but after a while, this provokes the following question: How do you balance Agility and Process? By definition, [Business] Process means following established procedures, usually in a certain order. This is already starting to quack like a duck in a Waterfall to Scrum aficionados.

On the other hand, it is patently stupid to be Agile for the sake of saying that you are being Agile. That is like pretending that there is a hopscotch board in front of you wherever you need to walk. Entertaining for a little while? Perhaps; however, over time, you will not only expend a lot of unnecessary effort, you will look foolish. Scrum, XP, Lean Development, and other Agile methodologies are, well, methodologies, and as such, are processes. Although clever witticisms such as “Scrum: it depends on common sense (Danube Training)” and “Scrum is not a methodology — it’s a pathway (Ken Schwaber)” are helpful when in the context of the tapestry that they pertain to, lifting them out as sound bites will insure that they are used in the wrong circumstances to justify incorrect assumptions.

So, back to my Blog title: Process Makes Perfect. I am not quacking here; even Agile PM has procedures to insure results. The introduction of Agility to a company is always tough because it forces the employees at all levels to think sideways, not completely out of the box. No Agile screed that I have ever heard of asks an enterprise to jettison everything in the name of Agility; rather, it is learning to recognize that you have many more options besides ludicrous speed and ranking full stop.

If you look at all of the fancy diagrams that supposedly depict Scrum processes with 3D delivery time loops, poetry and Bible verses, and even BHAG flowcharts, they really all say the same thing:

Wait for it…

Think Different

OK, I am not joining the ranks of the Apple fanatics (NSFW) here at Achieve with this bold appropriation of their late 90’s advertising campaign. It just so happens that this describes Agile thinking very, very well…when it is paired with a standard process to follow.

Nobody complains about the Waterfall when it is producing quality software, meeting deadlines, communicating well, and insuring that clients feel like heroes. No one cares how Agile your company is if you deliver a shoddy product that the customer didn’t ask for, late and over budget. There is a balance that can be struck — and should be found — where the best practices of differing methodologies can actually provide better results than any one on its own.

If a process is a series of steps in a predictable order, such as points on a straight line, then agility is thinking multidimensionally: away from the line. The main cause of grief from Waterfall is the strict adherence to the idea that “we can’t do that until we have done this”. This dot is in front of that dot on the line, and you cannot think differently enough to see that there is more than one dimension. Agile methodologies encourage anyone who is familiar with this mode of thinking to do a sort of mental Aikido when the standard operating procedures meet with resistance or raised impediments:

Aikido techniques are normally performed after first blending with the motion of the attacker, so that the defender may redirect the attacker's momentum without directly opposing it, thus using minimum effort...Aikido demonstrates this philosophy in its emphasis on mastering martial arts so that one may receive an attack and harmlessly redirect it. In an ideal resolution, not only is the receiver unharmed, but so is the attacker.

If the process is running smoothly, and product (quality “potentially shippable” code) is being generated, there is no real problem. It is when one perfectly-shaped piece of gravel catches your left front skateboard wheel at high speed that you realize that the attack is imminent — in this metaphor, the asphalt meeting the side of your face. Being flexible in your processes not only allows for agility, but brings you closer to not only dealing with your “attacker” (WIBNI, anyone?) but finding an ideal resolution to the apparent confrontation.

Here is some more abuse of the code block tags; something else to pair up with this idea of an Agile process, this time from the buzzword bingo that is the Agile Manifesto:

Simplicity--the art of maximizing the amount of work not done--is essential

As I have stated before, Achieve has an Approach. This is where I am going with my defense of Process. Recent hard work has determined that we may have found a balance point between Scrum and Process that will provide the Company with the best of both worlds.

Stay tuned for the other side of the double-wide!

There are three terms to describe the way light shines on an object: Transparent, Translucent, and Opaque. Transparent means that you can see right through it; translucent means that light shines through it, and opaqueness is the quality of blocking all light. Although you may think that vocabulary lessons are not on topic for this forum, I am a fan of the Definitions section of this collective knowledge repository, and point out this fact:

Without a common language it is difficult to communicate.

Transparency is an Agile quality. Although there are several definitions that might apply from the link above, transparency is a communication art. One of the foundations of Scrum is honesty, and honesty leads to transparency for both internal team members and external clients. Being transparent means that all of the work done on a Sprint is visible to those participating in the process. This means document — lightly — as you go, identify problems — impediments — as they arise, ask for clarification — from your Team, your Product Owner, your ScrumMaster — as the Sprint happens.

Opacity occurs when Team members feel like they cannot lift their eyes from the screen and their hands from the keys. If the ScrumMaster or Product Owner only has a foggy idea of what the Team is doing, this is translucency. Transparency is honest communication all the way out to the Stakeholders — that means the client. Even if it is bad news, it is Agile bad news, which means that it is coming now rather than weeks or months down the road. Whenever you can save weeks and months, you know you are getting more Agile.

Mark Levison writes a great blog-style site out at Notes from a Tool User. Aside from being a proponent of Team Programming, Mark simply states that “Transparency builds Trust”. I think that this is a good sound byte to remember. Transparency = Honesty = Trust.