Wednesday, May 1, 2013

Bottlenecks: the Enemy of Agility


I am the Release Train Engineer for one of my company’s first Release Trains. One of my early struggles when we first adopted the Scaled Agile Framework was understanding what the responsibility of the System Team was and how to concisely articulate it to others. That understanding finally came during the Quick Start event where I heard Alex Yakyma say the System Team identifies, manages, and eliminates bottlenecks. What a powerfully simple mission! I’ve since dedicated time to understanding and helping the team understand what that means, and this is what I’ve come up with so far.

First, how do you identify a bottleneck and what does it mean to be a bottleneck? Sometimes this can be rather obvious, but often it is difficult to separate the symptoms from the root cause. This can be a process, practice, culture, etc. I have come up with a process to help myself and my System Team identify bottlenecks.

First, envision what it would be like if we could deploy to Production a dozen or more times per day. Not that we would, necessarily, but what would it take to be able to roll new functionality to Production the same day we get the request? Second, document our current process and lead time from conception to Production. Third, identify the gaps between our current process and the ideal of Continuous Delivery.

If you find yourself defining symptoms and not the root cause, start using a Lean perspective and start asking “Why?” For example:
“It takes too long to get a package to Production once it’s been approved.”
“Why?” “Because we have to find someone who has the bandwidth to get it deployed.”
“Why?” “Because we do not have an automated deploy process in place.”
“Why?” “Because our application runs on WebSphere in a Mainframe environment, and we can’t set up auto-deploy until it’s migrated to a Linux environment.”
Here we have identified the primary bottleneck – the environment on which our application lives in Production – by asking 3 “Why”s. Expect to ask as many as 5 “Why”s before getting to root cause.

Next, we need to time box the bottleneck. This basically means you’re going to work with what you have for the time being and basically “deal with it”. This is a temporary phase until you are able to eliminate the bottleneck. You should have a timeframe for how long it is acceptable to manage a given bottleneck and hold yourself to that timeframe. You may not always meet your goal, but time boxing is the first step in giving the bottleneck some form of finality.

Last, we need to eliminate the bottleneck. The easiest solution is to just do away with it – stop doing it outright. This is also usually the least feasible. The best solution is usually automation, simplification, or combination. If you can automate it, automate it! This way you’re not diminishing the task, you’re making it take less time. If you can’t automate it, see if you can apply Lean thinking and simplify it somehow. Can you get what you really need with less? Agile encourages just-in-time and just-enough to limit the amount of waste we allow in the software development process. One of the backing principles to the manifesto states “Simplicity – the art of maximizing the amount of work not done – is essential”. Finally, if you can’t automate or simplify the task, see if you can combine it with another task to “kill two birds with one stone”. Pair Programming, an XP practice, is a great example of this – you’re essentially rolling your development, code review, and knowledge sharing all into one activity that typically doesn’t take any longer than development normally would.

Once you’ve eliminated one bottleneck, repeat the process indefinitely. Kaizen mindset tells us there’s always room for improvement and it’s always urgent that we improve. By all means, take the time to acknowledge and celebrate your improvement, but don’t get complacent.

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.

Friday, March 22, 2013

I'm back - and Agile!

I've taken a bit of a hiatus from blogging for quite a while, and I'm wanting to get back into it. To be honest, I've been blogging quite actively for quite some time, but it's been on internal blogs on my company's intranet. However, I've got insights that I want to share outside just the scope of my company, so I'm taking my thoughts that don't expose any trade secrets and publishing them here!

In the past, my blog posts have been pretty technical, and they will continue to be - to an extent. My role has shifted over the past several years from Software Developer to Agile Coach and Scrum Master. If you're not familiar with those terms, I basically am trying to improve the way we deliver software by changing the way we approach the work. You can read a little by Googling "Agile Software Methodologies" or "Scrum Software Methodology", or you can check out the Agile Manifesto or the Scrum Alliance websites.

So that's about it for now. I'm going to be doing some housekeeping on the blog and will start posting next week! I can't guarantee how frequently, but I'm shooting for at least once a month. Please leave your comments to let me know what you think!

Tuesday, July 5, 2011

Why Google+ Won't Work

The last time I posted on this blog was to announce my eager anticipation of the life-changing Google Wave. Here we are 2 years later and Wave has totally replaced e-mail! Right? Wait, what? Support for Wave by Google is about to disappear and all further development will be done by the Open Source Community? That doesn't sound like a widely adopted revolution...

Google Wave had some great ideas, but it struggled with a lack of a simple, user-friendly interface that was both quick and intuitive. It tried to do too much too fast in a Twitter world.

Now, here we are. Google+ has been announced and released to a small group of demigods who hold their currently obsolete invitations ransom to the rest of the world who is dying to see how it works to they can tweet about it and let all their Facebook friends know how cool it is. And therein lies the problem. We've already chosen our drug of choice, and it's going to take an incredible first-time high to hook us enough to switch for good.

Google+ might have had a chance if it came out guns blazing, showing everyone what it could do. It could still have retained a semblance of exclusivity by using invitations - you can only invite 50 people a day to Google+. Of course, with that amount of invitations going out it would blow up pretty quickly. Then, assuming it had something really new and fresh to offer, it might keep its head above water long enough to win over a non-insignificant percentage of the Internet population.

Instead they're showing everyone what they've got without letting anyone use it. My prediction: before they can get a toehold on the Social Network market Facebook will identify the gems of usefulness out of Google+, implement those features themselves, and Google+ will be left on the side of the road like so much picked-apart carcass. I'm serious about this. Go to Google+, find your favorite new feature (aka one that's not already in place on Facebook), and see how long it takes for it to show up on Facebook. I bet the best ones are there before Google+ really opens up to the public.


Google was not the first ones to do online search, but they did it best and got in early enough to win the masses over. From where I'm standing, they're too late in the game and not hitting it hard enough to win this battle. I hope I'm wrong - I love Google - but I don't think I am.

Monday, June 1, 2009

Waves, Tweets, and the future of Communication

I'm a bit of a techie guy. After all, I'm a programmer by profession. So I sometimes feel that it is my obligation to be up-to-date on Tech-related stuff. I've known about Twitter for some time, but I've put off getting an account until yesterday. I know, I know, I'm a little late getting on the band wagon, but I'm on it now and that's all that matters, right?

Anywho, I was pushed over the ledge by watching the Google IO video unveiling Google Wave. One of its pioneers, Lars Rasmussen (he and his brother brought Google Maps to the world), mentioned Twitter as "Everyone's favorite Social Networking site", or something to that effect. That's when I realized that it wasn't just about me, it was about being true to my profession and my generation. Cheesy, I know, but it's my justification.

Okay, back to Google Wave. It is hard for me to contain my excitement about Google Wave!!! I CANNOT wait for the public beta release! :) I know it's a little long, but I really think that everyone should check out the demo. It will revolutionize communication as we know it!



By the way (I know, I spelled it out - weird), if you're curious about the terminology associated with Google Wave, check out the explanation on Wikipedia. It's pretty interesting!

Tuesday, January 27, 2009

Tooting Your Own Horn



I’ve always been told that it’s a bad thing to “Toot your own horn”. This colloquialism typically refers to bragging or boasting. But if you view your horn as your accomplishments, I’ve come to the realization that you have to toot your own horn, or who will?

Obviously there are those out there that would be willing to give a toot or two. There are family members, close friends, and respected colleagues that would be willing to speak up at a moment’s notice. What they likely won’t do is go out of their way to talk someone else up without any nudging or coercion.

There are moments in life, plenty of them, actually, where it is perfectly acceptable – perhaps even vital – for “self tooting”. It just has to be done carefully. For example, I feel I’m due a promotion at work, especially since they took my last one away (they actually just eliminated the position altogether – my compensation was unaffected by the stripping of my title). Now, what I can’t do is bust into my boss’s office, guns blazing as it were, demanding the promotion that is rightfully mine whilst my bards and minstrels catalog my glorious accomplishments and sing accolades to the wonder that is me.

I’ll give you a moment for that imagery to set in.

This is what I can, and intend, to do. First, I’ve been keeping track of the things that I have done to benefit the company. I have participated in and even led minor projects successfully that my internal customers are now benefiting from. Next, I will sit down with my manager and outline these accomplishments, emphasizing both the benefit to the company and the translation to job skills that are required by the position I am seeking.

You may ask, “Shouldn’t your manager know all that already?” The reality is that, due to exceptional circumstances, I’ve spent 3½ months under my first manager, 1½ months without an official manager, 3½ months under my second manager, and now ½ a month under my third manager (who I will likely be reporting to for a while to come). However, even if I’d have had the same manager for the past 9 months I would not expect my manager to just know that I feel I’m ready for a promotion and why I believe I deserve it. Repeat after me: “If you can back it up then it’s not bragging. It’s a dissertation.” I just have to make sure that I stick to supporting my thesis or it might turn into bragging. If I can meet with my manager and engage her in open, honest dialogue, then we can at least get on the same page. But if I don’t “toot my own horn”, she’s not likely to hear anything.

Saturday, November 22, 2008

In, Out, and the Space In-Between

I’ve always heard that integrity is doing what is right all the time, even if no-one is looking. As Stephen R. Covey put it in his book "The Seven Habits of Highly Effective People", "'Wrong' and 'right' … have little to do with being found out". Then there’s what I’ll call outtegrity – doing what is right because that outward appearance is somehow beneficial. To have outtegrity is to live a duplicitous life, and that kind of life is never sustainable. I could go on, but I think you get the point, and that’s not I’m driving at.

Between integrity and outtegrity is a grey area that I don’t have a name for yet. There are two parts to this grey area. First, there’s doing the right thing because you hope or think or want to believe it is right, but it is not yet a conviction. You may be working on it, but in the mean time you’re trying it and checking out the consequences. Second, there’s acting like you hold beliefs that you don’t, but those beliefs are not necessarily moral in nature. For example, pretending you hold political beliefs that you don’t, or saying you’re a cat person when in fact you think they’re minions of the underworld. This type of behavior is employed typically to get people to like you, getting the relationship jump-started until you get to something you actually have in common.

So here’s my question: Are either of the grey area issues immoral? Are they okay? Or are they really nothing more or less than grey? I have my own opinions, but I want to know what you think.

Wednesday, July 30, 2008

Leveling
Or, how playing RPGs shaped my view of Corporate Life

When I was younger, I was introduced to the game Diablo II. This is the game that kept me from playing World of Warcraft, because it helped me realize that I'm an RPG addict. As you may or may not know, once you're an addict you're always an addict, and my social and academic life suffered enough during my Diablo stint. If you're not familiar with RPGs, this Wikipedia article may be enlightening.

The thing that RPGs hook you with is control. You control everything about your character(s), including what skills they acquire and what their specialties will be. As you earn the experience and find or buy items to help your character, you decide what skills your character will develop. Experience points get you a lot further a lot quicker at the beginning of your character's "life" than they do after the character has become well established. This is what provides the addictive nature to the game. You very quickly become addicted to the rush of "leveling", or getting your character to the next level. In Diablo, for example, I could get a character from level 1 to level 5 in a single day, no problem. However, getting that same character from level 41 to 45 or, worse, 91 to 95, is a considerable feat. Why do people do it? Because they're already addicted.

Now, how does this affect my view of Corporate Life? Simple. Corporate Life IS an RPG! I just started out at the lowest position offered at the IT division of the company I work for. I've been there almost 3 months and expect a promotion to the real foundation position of the division. My next several promotions will likely come every 18-30 months, depending on how quickly I'm able to develop the right skills - or gain experience. The higher the position I get, the more time will pass between promotions.

This puts me in an interesting position. Here I am, an RPG addict in the "Real World" trying to map my game play throughout the life span of my character - who just happens to actually be me. I'm setting goals for what positions I want to acquire, when I want to acquire them, and what courses of action will get me there on time or early. I'm looking at corporate and continuing education opportunities, high visibility projects, and "A List" connections. I'm not sure if this is a bad thing or not, but I definitely get the impression that not everyone sees their career like this. I'm really interested to hear what other people think. Please respond with your thoughts, and please include whether or not you play or used to play RPGs, electronic or otherwise.

Thursday, May 22, 2008

My Brand New Life

I feel like I have just begun a whole brand new life. I have a new son (well, I've had him for 7 months now, but for a human that's still pretty new). I have a new job. I have a new no-more-school! I even have new furniture in a new apartment (and I mean new - we're the first to live in it)!

I have to say, I really enjoy life here even more than I thought I would. When I accepted a job with Wal-Mart I knew it was the right thing to do, but it always felt like I was settling, like I was just taking this job until I started my "real career". But the benefits are pretty good, the challenges are unique, the atmosphere is great, and the opportunities for advancement and lateral placement are phenomenal. I'm really starting to feel like I could settle down with Wal-Mart. Actually, I could stick with Wal-Mart, retire at 55, and travel the world!

The point is, I'm really excited about everything! The only downer is the lack of improv here. I tried out this one new group in the area, but it's an hour drive to get there and all but one of the existing members are old enough to be one of my grand-parents. Of course, the age thing in and of itself wouldn't be so bad except that only one of them has any improv experience. So I figure that, as long as I'm planning on staying in the area for a while, I'll try to recruit some college kids from the University of Arkansas to do improv and (hopefully) end up helping establish a ComedySportz here.

So that's my "new life" in a nutshell! I just want to end with a shout-out to all my friends from BYU - you know who you are - and let you know that this is a great area with a lot of opportunity, so get down here already! :)

Monday, April 21, 2008

The New* Big Blue

Hind sight is 20/20. So often it seems that events that occurred decades ago were inevitable, and the current state of things is accepted as obvious. Those who make the future are those that realize that there is no such thing as inevitability.

Not that long ago IBM, Big Blue, was the all-powerful behemoth that ruled the realm of technology. It was a scary world for new companies like Apple, Microsoft, and those countless unfortunates who are no longer in existence. For the last couple of decades or so, Microsoft has been the Undisputed World Technology Champion, and it has seemed like an inevitability.

Those of us in the industry have sensed a shift lately, and Microsoft is no longer "the place to be". If Microsoft was the "New Big Blue", then Google may be considered the "New New Big Blue". And, just as sure as Google is becoming the industry giant now, some company will replace Google, likely one that has not even been formed yet.

Dr. Charles Knutson of BYU stressed to me the importance of the individual. There will likely come a point in each of our lives where we'll have an opportunity to say something, to make some decision or point out some insight, that will change the shape of whatever industry we may be in and, potentially, the world. And children who are born after that change is effected will count it as an inevitability. The sad, scary, and unfortunate flip side to that coin is the fact that many of us will not realize the opportunity. We won't make the decision, realize the insight, say the right thing at the right time, and we won't change the world. The important thing to realize is that it is up to us - it hasn't happened yet, and it is most certainly not an inevitability.