When is a Good Idea a Bad Idea?
Categories: Project Management
Have you ever had a really good idea that you were excited about, that you couldn't wait to start, only to have it go nowhere? I've had more than one hobby that went into limbo and became an "interest" because it was a good idea, but the timing wasn't right. I'm sure I'll get back to one or more of them, but now is not the time.
Have you noticed that we have similar behaviors at work, often with one difference? A good idea becomes a project and resources are assigned to it, but when it loses priority it never actually stops. Nobody says, "This isn't a good idea right now." Instead, people work on it when they have time, assuming it doesn't impact anything. Don't get me started on multi-tasking… but multi-tasking isn't the only concern. Activities involved in both testing and implementation tie up people and resources, and not just those performing the work. A desktop software implementation can distract people working on other projects, as well as resulting in issues that can stop work until they are resolved.
This post is only partly about organizational multi-tasking and project prioritization. It's also about efficiency, or at least the illusion of efficiency.
My work is primarily in IT, so there will be an IT focus in what I write, but I will try to tie it back to the business, as well.
IT is expected to be efficient. It often feels like people think efficient IT means working on all requested projects and getting them all done on time and within budget. That doesn't feel very efficient to me. Can you see the connection to "good ideas?"
A company can have employees working on a lot of projects. Some strategic, some compliance enabling, others required to keep the lights on, and then a bunch of good ideas. The company can hire more people and buy more equipment to keep everyone working efficiently on all of the projects. Eventually, however, there will be conflicts. A natural bottleneck occurs with testing and implementation. When you have interdependent systems, your dependencies limit the amount of separate changes that you can effectively test or go live with at any given time. If you really want IT to be efficient, you need to insert a bottleneck in the decision-making process in order to limit the amount of work in the project pipeline to match the amount of output your organization is able to effectively deliver. (Think of Portfolio Management as one step toward making this happen.) Over time, you may be able to enlarge the testing and implementation bottleneck, at which point, you will be able to increase the amount of work in the pipeline.
So far, we've just been talking about IT projects. Now, consider a company, like the one I work for, that has global markets. This means global marketing projects and global sales events that also impact the web, mobile, CRM, and ERP systems, among others. The windows for testing and production implementations just got a lot smaller. Should these activities be considered as part of portfolio management?
Is that good idea you're working on a good idea right now, or would it be a better idea to work on it when it is a better fit with other priorities your organization is pursuing? Or, not at all? Does being a good idea automatically mean that it deserves to be executed?
Since switching my mobile app "project" from Scrum to Kanban, my initial suspicions have become cemented in my mind - this project I've inherited really isn't a project. The biggest giveaway? Now that my Product Owners are producing roadmaps, I've found that there is no end in sight.
So, if it's not a project, what is it?
Maintenance. It's a mix of new feature development and bug fixing. It was assigned to me as a project, and it has a project number, but the product owners expect it to continue until the products are no longer supported. That might be a while.
I'm not complaining. It's providing me with the opportunity to gain experience transitioning a team from Scrum to Kanban. It has also helped me to realize that Scrum has the ability to blur the lines between projects and maintenance.
As I'm re-reading what I've written so far, I'm asking myself a question that you're probably asking, too. "So what?"
I think that the first "so what" is the realization that when a company is making a transformation to Scrum, there is the potential for everything to look like Scrum. So what?
Mobile application maintenance does look like something that you can do in sprints. But, all of a sudden, you go from traditional release management processes to needing a Scrum Master to accomplish something that you've been doing successfully. Hmm… potential increase in overhead costs, but now you can say you're doing agile. Again, so what?
This isn't to say that maintenance can't benefit from Agile processes. It certainly can. My primary caution is that if your company is making an agile transformation and you have selected a single flavor of agile to implement, don't try and force everything to fit the flavor you have selected. You might also want to avoid trying to turn things into projects that are not - being able to use Scrum-like processes for ongoing maintenance does not turn maintenance into a project.
More about our transition to Kanban…
I talked a little about switching my team to Kanban in my post in February:
The team has been making great progress, although we're still trying to figure out meaningful metrics for our consultant development team. There are times when I wonder if a project manager should be running this effort; it really is a long-term maintenance effort. If this is what the PMO Director wants me to do, in addition to my SAP projects, I'm not going to argue. There is the possibility, however, that at some point, I will either need to be more dedicated to the mobile effort, or focus on my projects that have end dates. Either way, it's in my best interest to make sure that I have a documented process.
Hopefully, the product of every project you finish delivers value. It doesn’t have to be an either/or proposition. If your projects are like mine, however, you don't always realize the value in the products you deliver.
It's not that you don't see value in what you're delivering, or that value is never realized. It's just that once the product of your project is delivered, your team might provide support for a short time, and then you're off to the next project. The reality is that the product you just delivered might not deliver tangible value to the business until you are getting ready to finish your next project.
It is difficult, to say the least, to assign a date to value realization. It can also create a bit of a conundrum when you are told you are responsible for delivering value, but you're assigned to do other things by the time someone else quantifies the value realized from the product you delivered.
Let me take a step back. What I'm really describing is a more traditional, big bang approach to delivering value.
One of the touted benefits of most flavors of Agile is that they deliver value faster than other project approaches. This can be true, but one of the caveats I would place on this is that you must have one or more Minimum Viable Products (MVPs) and be able to deliver your MVPs early enough to begin realizing value before the project is finished.
SIDENOTE - For those of you asking if you can benefit from using a flavor of Agile, my opinion is that one of the requirements to realizing the full value of Agile is that you have one or more MVPs. If you can't deliver value incrementally, or, in other words, if you can't deliver the finished product until everything is done, and you can choose your project approach, a flavor of Agile might not be the right approach for your project.
What is an MVP? Minimum Viable Product is the smallest discreet subset of functionality that can be delivered to and used by customers, or sold if your company sells product.
Should I repeat that in English? The MVP is not the finished product or a beta, demo, or proof of concept. It is something usable, and usable enough that your customer(s) would be willing to pay for it, before you deliver the finished product. When you deliver a true MVP, you are delivering value in the sense that the company you work for can begin generating revenue (or goodwill, for internal projects) months, or longer, before you deliver the finished product. You might deliver several MVPs before delivering the finished product.
The finished product is just that; finished. It contains all of the planned features and functionally that have been specified, or a decision is made that it is finished and no more work goes into that version.
You can take the big bang approach and try to deliver everything at once. Big bang can be your only choice on some projects, even if you can develop iteratively. But, if you can build AND deliver MVPs iteratively, and realize value incrementally, why wouldn't you?
I'm guessing you've noticed that I've used a couple of expressions that you don't normally hear in discussions about Agile. You might often hear about incremental and big bang delivery, but not incremental and big bang value. The difference is mostly, but not completely, mindset.
Incremental and big bang delivery is about delivering product. You can deliver working code almost every sprint (Agile), or you can deliver everything at once (Big Bang). These descriptions are most often used to describe one of the differences between Agile and Waterfall.
I am distinguishing incremental and big bang value from delivery because of my experiences. I've broken a project into phases and delivered value, incrementally, without iterative development. I've seen "agile projects" that were basically iterative development with a big bang product delivery. Let your decision about how to deliver value inform your decision regarding your project approach. Your project may be over long before the business realizes the value of the product your project delivers, and the amount of value that the business is able to realize may be beyond your control, but you can still keep value as the driver behind the product you are delivering. Look for ways to deliver value before the project is finished, whenever possible; delivering product is not the ultimate goal. Don't force an either/or proposition.
I recently posted a question regarding whether or not a project, that several of my peers are working on, is agile. You can read the responses here:
If you're thinking, "Who cares?" I don't blame you. Agile. Waterfall. Does it really matter how work gets done, as long as it gets done?
Some processes, however, make you wonder what is really getting done.
One of the concepts used in Scrum is the Definition of Ready. A simple explanation of this is that there is enough information on the story card for the work to be accurately sized. Obviously, you have the user story on the card. Then there are test cases, exceptions, you might need wireframes and a technical spec, and so on. Before you know it, you've gone from Scrum to Waterfall. This was what my peer's project was starting to look like. There were so many pre-conditions that needed to be met before development could begin that they created a Kanban board to track the stories through the pre-conditions, so that they would know when they could size the story and add it to a sprint. From an outsider's perspective, they were sacrificing speed for quality.
But were they? And were they still agile? While you could no longer call their process strictly Scrum, it still contains elements of agile. Scrum may be a flavor of agile, but agile is not scrum. It is not strictly adhering to a set of practices to the point that the practices get in the way of getting work done and delivering value.
Don't ask yourself, "Are we agile?" Instead, ask yourself (and others) the following:
Adopting a flavor of agile doesn't guarantee either. You may have organizational issues or other problems that need to be solved that have nothing to do with agile. Instead of pursuing an agile transformation and hoping that it solves your problems, take the time to find out what the problems are that are keeping you from delivering and responding. If you find that making an agile transformation will solve your problems, by all means, go for it. If not, then do what it takes to solve the problems. Being able to deliver value and respond to change is more important than the name of the process you use to get there.
One of the points from the CSPO class I attended, last year, that stood out to me more than anything else, was when the instructor told us that one of the roles of the CSM is to coach the CSPO and make sure the CSPO is fulfilling his or her role.
That statement, by itself, was not a cause for concern. The concern came from realizing that there were things taught in the CSPO class that were not taught in the CSM class. My question to the instructor was, "How can the CSM coach the CSPO on things the CSM is not taught?"
I don't have a satisfactory answer, but over the past several months as a ScrumMaster/Agile Coach, I've come to realize that the Product Owner is the most important role on the team, and I'm coming to appreciate the challenge created when the Product Owners are also Product Managers.
Is there a difference between Product Owners and Product Managers? Your company might not treat them like there is, but I'm learning that there is enough difference in the roles that it is difficult when one person is expected to do both, when both are required.
The simplest way to put it is that the Product Manager is externally focused, getting funding for product development and working closely with customers, while the Product Owner has an internal focus, creating user stories and supporting the development team. Yes, there is much more to both, and some overlap, but the Product Owner role is different from the traditional Product Manager role.
When I attempt to look at this situation as a ScrumMaster, I have to wonder, does this mean that I am also expected to understand the Product Manager role?
I'm not ready to tackle that question, right now. However your organization is organized, make sure that your Product Owner/Product Manager is empowered to make product decisions. How effective would sprint planning or backlog review be if your Product Owner had to take a list of questions back to someone else to get answers or approval to changes? It doesn’t matter if you have separate a Product Owner and Product Manager, or one person filling both roles, as long as the person filling the Product Owner role has the authority to make decisions for the project. If your Product Owner is also a Product Manager, recognize that it is a big job and be supportive. If the Product Owner fails, the project fails.