Constraint Management for Information Technology
Welcome to this webinar by John Ricketts and well John Ricketts and I he corrected me we met I believe in 2011 in a conference in Luxembourg where he was the key speaker and I was doing an obscure little presentation after him and that's where we met and I wanted to meet him because i'd already read his book at the time which was published in 2007 called Reaching the Goal which is all about managing professional services for the Theory of Constraints way and was answered is that the best seller with regards to applying the Theory of Constraints in services with these professional services and so he worked for big blue IBM for many years. He's too modest to tell you he finished in fairly important positions dealing with strategy and stuff and then he retired which I will do soon also and he couldn't think of anything better than to spend his time writing and he published this thing Exceeding the Goal a few months ago now three months ago something like that and it's a fascinating book and he's going to be basically talking about part of it today I highly recommend this book basically whatever your your angle on the Theory of Constraints and on IT is because it's just fascinating very very rich um and so much so that uh we're doing this this webinar here with the sort of kickoff but we plan to do a lot of uh various events and things and videos throughout the year because we've been thinking hard about how to get all the messages across from his book but for instance John suggested that we do it chapter by chapter but since there are 26 chapters that might get to be a Netflix serie sort of thing so we'll work it out we'll be picking out the best of them and putting out some some videos about all that okay so i'm gonna hand over to John the the setup is John will speak for about an hour and then we'll have about 30 minutes of questions and answers you can use the buttons that allow you to type in your questions and answers that the Q&A button or depending on the language in which you set up your Zoom it might be different but there you can type in your questions maybe Etienne who I haven't mentioned yet you could just type in something in the Q&A just to make sure it's all working okay but Zoom is slightly confusing because you can also type in things in the chat button right uh so you can do that also and myself and Etienne who appears under the logo of Marris Consulting will be concatenating reading all those messages uh so that we can uh then host the Q&A session okay so uh please type in your questions as they come to you and we'll use all that stuff to ask the grueling questions at the end right and Greg Beatty by the way says no pressure John okay so over to you and take it away john thank you Philip and Etienne I'm honored to be able to present this webinar today you know Marris Consulting has been a leader in Theory of Constraints or constraint management for many many years so to some degree I feel a little bit like I'm preaching to the choir here As Philip was reading the list of countries that you participants come from i was impressed. Some of you are showing incredible dedication because i know based on where those countries lie this webinar is not happening during normal business hours so for those of you that are up late or up early I salute you as Phil mentioned we've been kicking around ideas related to constraint management for quite some time and we actually did another webinar similar to this a few months ago and that webinar is available now out on youtube if you're interested the book that Philip alluded to, Exceeding the Goal, actually has three elements or three components to it two of which we're going to talk about today in fair amount of detail and the third will save the details for subsequent videos but the three elements that i'm alluding to are constraint management Information Technology and technical strategy technical strategy is the one that we're going to go light on today but we'll cover more on a later date because this is an introductory video and one that's oriented towards an I.T. audience primarily i'm going to do a fair amount of explaining what constraint management is at least at a rudimentary level and the previous video took the opposite tack on that because I.T was for the Theory of Constraints International Certification Organization (TOCICO) my assumption was that people attending that webinar knew constraint management to a fair degree and maybe didn't know I.T. as well so I spent more time explaining I.T. to that audience than I will today in any event
both these videos together form the crossbar on what's sometimes referred to as a T-shaped curriculum meaning we're going to go broad but not very deep today and then in the subsequent videos we'll go much deeper but much narrower so without further ado let's take a look at the agenda I've got five things in mind for today and that is number one we're going to look at some constraint management principles at a basic level and then we'll take a look at the question "Is Agile compatible with constraint management?" I reckon those of you who are I.T. professionals or who work closely with I.T. professionals have been exposed to agile and you might have wondered whether anything into Theory of Constraints has applicability there and so we're going to tackle that question then we're going to ask "does the constraint management approach to projects work in information technology?" we're actually going to introduce you to a project management method that's been around for quite a while in Theory of Constraints or constraint management but it's not a hot topic like Agile is I think it's a topic though that nevertheless warrants some discussion which takes us then can constraint management handle it staffing what does constraint management say about I.T. portfolios?
it's this fifth item where we're going to begin to get an introduction to technical strategy and then as Philip said finally we'll have an open question and answer session so I encourage you to go ahead and answer your questions at any point and we'll be sure to try to get to them before the end of this webinar So I.T. is in the title of this webinar I reckon everybody on this webinar has some notion of what I.T. is what i find though is that sometimes people have a narrow view they tend to think of I.T. as personal computers and desk side support and i'm going to take a much broader view basically anything to do with computers network and sensors attached to those computers and networks so that will include hardware software data services all of that is in scope for what i'm referring to as I.T. next I'd like to just say a couple words about general management before we talk about constraint management I realize most of you on this call are already familiar with general management but there's one nuance here that I want to emphasize and that is when I talk about operations I'm talking about productive activities in the manufacturing environment that would be the production of physical goods in a services environment it would be the delivery of some kind of service either from a labor-based perspective or from a technology-based perspective we're in fact going to talk about some technology-based services later in this webinar but the one that I wanted to emphasize on this page here is what I mean by strategy so when I talk about strategy I'm really talking about change initiatives so that we can figure out where we are where we want to go and what we have to change to get there I'll also talk about enterprise strategy as distinct from technical strategy as you can see here on this slide the definition of enterprise strategy that I'm using is how are we going to reach or exceed the goal that's been set for the enterprise by enterprise I mean not just businesses I deliberately chose the word enterprise in lieu of business because the concepts that we're going to talk about here I believe are equally applicable to non-profit organizations and the governmental organizations so I didn't want to limit the discussion to just the business world finally on this page then you can see a technical strategy comes down to how are we going to support the enterprise strategy and if there's misalignment between the technical strategy and the enterprise strategy then one of the other perhaps both of them are going to suffer so I'm going to describe constraint management in my own words here if you read the constraint management literature you're going to see a somewhat more detailed description that I'm giving you here but people sometimes get tripped up by the wording since the founder of Theory of Constraints a fellow named Eliyahu Goldratt had English as his second language sometimes the the words don't mean exactly what someone who has English as their first language would assume they mean so this is my own words here in a nutshell constraint management involves step number one set a goal step number two identify what restricts goal attainment step three focus operations around that constraint for reasons that will become evident in a moment and then execute strategy that continuously improves so this is formally known as Theory of Constraints i'm going to call it constraint management because that word "theory" sometimes confuses people or they misinterpret it so from here on out I'm going to refer to constraint management and if there is a single core concept behind constraint management it's manage the one thing that matters not everything and that runs against a lot of conventional wisdom I know in business schools and in applied settings managers oftentimes feel compelled to have their fingers in every slice of every pie and not only is that worrisome for them it can also be ineffective what I like about constraint management is it helps you identify leverage points a constraint a bottleneck one thing that's impeding the performance of an entire system and because it's a leverage point it means you don't have to manage everything you can manage just a few things before we get into this though let me begin with just a little adventure in the book that Philip alluded to, Exceeding the Goal there are... I believe it's several dozen adventures and an adventure is a short story, a true story. There's no fiction in the book
and those stories range from successes that i'm really proud of to shall we say less than successes that I'm a little bit apologetic for in the extreme cases there's some cautionary tales of things that really went pear-shaped but the adventure that I'm going to recount for you here is one that was a success and hopefully it'll give you a little bit of a feeling of how we've taken constraint management into the I.T. realm so this is a story about how the client organization was optimizing a non-constraint in their information technology development organization and by helping them re-envision where the constraint is and reorient their activities around that constraint it led to not only solving the problem that they approached us with but it improved their performance measurably from that point going forward so what you see on the left hand side of this table here is this very simple sequential set of steps that's undertaken to develop software requirements design code test production and the "As Is" column represents the situation as presented to us when we walked in the door the client was having difficulty with production too many errors too many outages and their belief was that their constraint was in testing so when they would have an error an outage they would circle back to recoding the parts of the programs that they believe were leading to those problems and then they would retest and test and test and test and test and yet they continued to have this problem in discussions with them though it became evident that they really were operating intuitively they didn't have very many measures of things they were doing so what we helped them in do was introduce defect metrics so that they could measure how many bugs there were per program and how many bugs they were removing per test cycle those two measures are called defect density and defect removal efficiency respectively and once they had those defect metrics in place we worked back and looked at their code metrics metrics about the programs that gave us insight into things like how complex was the code and then finally we recognized that there was a hole where they didn't have any metrics at all and i'm referring now to design metrics it turns out that the root cause of many of the problems that they were experiencing experiencing in production did not have their origin in the coding they had their origin in the design some of the designs were so complicated that they were effectively untestable and by providing these metrics it gave the development organization more insight into whether they were moving the ball forward because they could see the metrics change as they changed the design and they could see the code metrics change as the design improved So this is an example of identifying the real constraint in an I.T. environment and having it bear fruit for the development organization which takes us then to the first of several principles that I want to talk about here what I'm going to do is describe principles in the context of manufacturing not because I necessarily expect those of you on this call to be manufacturing experts but because the things that flow through a manufacturing environment are physical and I find through experience that it's easier for people to picture that than it is to picture abstract things flowing through an I.T. development organization so we're going to talk about some principles here and then we're going to turn right around and see how these principles apply in an I.T. setting first principle is the constraint principle the constraint is that thing that restricts production so it has to be an element of the system or closely aligned with the system I mentioned my definition of enterprise a few moments ago so if we're talking about an enterprise system it could be a factory or it could be a function like accounting or it could be a project like a system development project there can be constraints in those enterprise systems likewise there can be constraints in an information system it's less the case nowadays that hardware is a constraint than it used to be because hardware used to be very very expensive compared to what it is today more often today what you find in an I.T.
system is the constraint is in the software but if you think about these two parallel but separate systems those that are running the enterprise and those that are in I.T. it's possible to identify constraints in both of them so we may have... We we may need to consider both classes of constraints as we go forward something else to keep in mind when we're talking about constraints is the boundaries that define the edges of the system that you're trying to understand the constraint for One of the things that characterizes businesses today is that they're actually systems of enterprise systems so you have systems for marketing and for production and for distribution and finance and HR and so forth when you go to a manager in any one of those systems and you talk to them about constraints they will all easily be able to point to a constraint in their system whether or not that local system though harbors the constraint for the enterprise is an open question in fact most of them will not be the enterprise constraint they still however may warrant constraint management because they consume investment dollars and they consume operating expense but they aren't revenue generators if they're not part of the enterprise constraint some other terminology to get under our belt here is that constraints can be internal meaning inside the system or in some cases they can be external in fact when you look at enterprise constraints and you ask yourself what is it that really restricts the enterprise's ability to generate revenue and profit oftentimes nowadays in about 70 percent of the cases the constraint is actually external it's out in the market somewhere meaning that the enterprise could produce more goods and services than the market is willing to consume we're going to start by talking about internal constraints and we can talk about external constraints more later which then takes us to operations constraints versus strategic constraints essentially my definition of those is that the operations constraint is whatever is presently restricting the Throughput or the production of the system and the strategic constraint is is what you will move to in the future so it restricts your future so let's apply this constraint principle to this diagram that represents a manufacturing environment on the left we've got raw material that's able to be dispensed at 300 units or more per time period and then production flows into step a which produces 300 units per per time period and then that flows into B C D probably three identical machines each of which produce 90 units per period but collectively they're 270 units so if you compare A to B C D you can see that B C D has capacity less than A and therefore given as far as we've made our way through this diagram one would conclude that B C D is is more likely to be the constraint than A is since A has more capacity if we continue on to the right we can see HT has 250 units of productive capability per unit of time which is less than B C D so HT becomes our new candidate for the constraint in fact if we look on to the right we can see that X and FA both produce more than HT does so HT is the constraint in this context one of the things that happens though in environments today is if you look closely at where the boundaries are you sometimes find that the constraint is not where you thought it was I mean it's typical to go through a mental exercise like I just went with you here when looking at the direct manufacturing activities but if you examine ancillary activities what you may find is that the constraint is actually elsewhere in this case it's represented as being in quality assurance because quality assurance can only inspect 240 units per period and HT produces 250 QA's actually constrained here but let's go back to the original situation and assume that the QA has more than enough capacity let's ask ourselves what happens in this context if the constraint capacity increases and there was a subtle change here as I flicked through the bullets HT's capacity increased up to 300 which means now it has more capacity than B C D and therefore B C D is the constraint now so when you tinker with capacity in an environment like this you may be shifting the constraint around and one of the questions you should ask yourself is have I put the constraint in a strategic location one that actually increases the the benefit to the enterprise as a whole now what I've done is increase the capacity of all the elements here so that they all can produce 300 units per time period that in fact is the what's driven for if you're into lean and lean strives to have balanced productive capacity so that you can have a minimum of work in process lean is a very laudable objective it works best if you've got a stable environment though if you have a turbulent manufacturing environment meaning you have new products coming in old products going out new workers coming in old ones going out change in machine change in marketing if you have a turbulent environment then having an unbalanced capacity can actually be to your advantage because it gives you a single control point with a lean environment like you're seeing depicted here if you have a disruption any place it becomes a disruption every place and that's not the case with the constraint management solution that's unbalanced as we'll see as we go through the rest of this example a constraint a disruption in one place doesn't necessarily ripple elsewhere so to finish out this slide let's ask ourselves what happens if demand is less than production this is that external constraint that I was alluding to on the previous slide if demand is less than production we wind up over producing and we wind up with excess finished goods inventory Allright on to the next principle Utilization utilization is the ratio of production productive time to available time and conventional wisdom says utilization mana you know matters everywhere that's why in the old days in a manufacturing environment they would watch the utilization of every machine and every worker and try to get all of them up to 100% and what that one an unintended consequence of that management mindset was it overloads the constraint in constraint management utilization really only matters at the constraint and if you try to utilize non-constraints over a hundred percent or up to a hundred percent then it just overloads the constraint so let's go back to this diagram that we were looking at a couple slides ago and see what happens if we maximize utilization so here we've got a hundred percent utilization on everything up through HT and then it trails off because ht's capacity it is much because it's the constraint its capacity is less than the others then they're not being fed enough work in process to achieve 100 percent but an unintended consequence of overloading the constraint is the excess working process accumulates upstream but it also creates some level of chaos in the manufacturing environment and so you wind up with inventory being stacked everywhere the gray boxes on the right here represent inventory that may be work in process inventory that represents jobs that were started too early or jobs that are waiting on some components from upstream so if you walk into a manufacturing environment and you see inventory everywhere it's probably because they're following the utilization principle inappropriately what happens in this case is you wind up with late jobs causing cancellations discounts and loss sales clearly not something you would strive for so let me introduce the concept of buffers. A buffer is something that
decouples elements so that a disruption is less likely to ripple throughout the entire system those buffers can be tangible in the example that we've seen on the previous slides the work in process inventory is physical work in process inventory or stock another way that you can manage buffers in a manufacturing environment is to use space as the buffer to literally paint lines on the floor and say anything any working process that's inside the boundaries represented by those lines that's our buffer for the machines that are going to work on that stock but for an I.T. environment I need to introduce the notion that buffers can be intangible we're going to see a project management method after a while where the buffer is time contingency in other words but if the system in question is the financial system the buffer could be cash if the system is one that provides human resources then the buffer is skills and so forth the specific buffer type depends on the flow type in the system under examination in other words buffers are sized to accommodate normal variation so if something abnormal happens then you may have to sprint to resolve the problem but what I love about sizing buffers for normal variation is it means most of the time the system operates without a lot of management intervention and that allows management to spend more of its time thinking about strategic matters rather than fighting fires at the operational level another way to say that is the management attention is required only if a buffer is approaching depletion we're going to see buffers depicted with colored zones in a while red being bad green being good yellow being somewhere in between it's only when the buffer approaches depletion meaning it gets into the red zone that management attention is required which then takes us back to this diagram if we ask ourselves where's the buffer the answer is it's all work in process ahead of the constraint so i'm assuming here that HT is the constraint and there you can see the gray shaded area represents all the work in process in the buffer what happens to utilization and excess work in process if you manage the buffer then utilization on these steps upstream decreases but the working process melts away and so the chaos that we saw in the previous slide or two melts away as the working excess horse can process melts away which then takes us to a pool principle conventional wisdom says managers should push work through a system push push push push push because otherwise things don't get done in an expeditious manner frequent expediting large batches and excess work in process are symptoms of that mindset constraint management instead says look we're going to establish some rules some practices and some measurements that pull work through the system on demand so that we're not producing excess inventory and we're not spending effort needlessly if we apply the pull principle to this now familiar diagram we can pull work through the system by monitoring the buffer and when we see buffer holes appear we can release jobs to fill those holes as long as we do that and keep that buffer level in the green zone management doesn't have to worry about the rest of the production it's going to take care of itself on the other hand if we have an external constraint meaning that the market isn't buying everything that we can produce if we keep the buffer full we're going to be over producing so we need a different trigger that pulls work through the system and that different trigger is demand from the marketplace so in this scenario if the marketplace is only demanding 200 units then we would release 200 units per period into step a we would expect to get 200 units out of B C D 200 out of HT which is less than its capacity so in in that circumstance the factory would not be 100% utilized including the constraint all right one other thought about buffers though is if you think strategically it might be advantageous to put a buffer elsewhere in this manufacturing process what you can see here is a buffer being established at step X to feed into FA and the reason for doing that is if the total duration to go from raw material to finished goods were let's say a month and you instead put a buffer at X it might be that you would be able to offer to the marketplace the ability to deliver in one week instead of a month and if all your competitors are delivering in a month and you can deliver in a week that gives you a competitive advantage based on speed so the point here is that buffers can be strategically placed not only to manage the constraint but also to create competitive advantage which takes us then to the time principle. Idle time on an internal internal constraint is bad but on non-constraints some idle time is inevitable however time lies lost on a constraint is time lost by an entire system so what happens if the constraint has an outage the system overall produces less but if a non-constraint has an outage the upstream tasks can sprint meaning they can produce more than the constraint can and likewise the downstream elements can sprint to finish late jobs faster so that's what I meant when i said earlier that this kind of unbalanced productive capacity means that the enterprise is more resilient to disruptions so do these constraint management principles apply to I.T. We haven't seen that yet but I'm going to give you a foreshadowing here that yes they do I need to acknowledge though the constraint management principles were derived from systems consisting of a series of dependent events just like we saw in the manufacturing examples and I.T. is a little different
that means that constraint management has been a bit more of a struggle for people to apply than it was in manufacturing because in the I.T. world the systems in question are more a set of interdependent events you know software projects are not just you do A B C D in a linear fashion or a sequential fashion there's considerable iteration as discoveries are made of requirements and as experiences gained with alternative designs and implementations and code and so forth it's just not as as linear as manufacturing likewise because I.T. as I've defined it also includes services what we find is that there are aspects of I.T. that involve completely independent events technical support for instance may involve calls from 10 different clients and each of those clients has a completely different and unrelated problem so those independent events might make you think I wonder if CM really applies in the I.T. realm let me give you an assurance up front that it does and we'll see how in a little while so despite these differences constraint management principles do apply to I.T. a couple things about I.T. though that
we'll keep in mind as we apply those principles is in manufacturing when there's no work in process production stops I mean there's literally nothing to run through a machine on the other hand in I.T. there's always work to be done because work doesn't always depend on physical work and process but what we do is intangible. It might be written down on paper, it might not, it might be carried around in people's heads the tasks that we perform are often semi-autonomous so the people performing those tasks have a lot of discretion as to which tasks they work on and whether they split their time between this task and another task this project and another project and the requirements that they're given to work on may be imprecise there's a lot of judgment and interpretation required finally you can see here operations on 24/7.
so the conclusion that I'm headed toward all in all this is that in I.T. there's a lot of real work to be done but if you don't manage the constraint people will find work to do and I'm calling that busy work here in the conclusion But I don't mean that in a majority sense I just mean it's work that's maybe not as important as things that they could be doing if the constraint were being managed You may have been asked why on Earth is I.T. a perpetual bottleneck you tend to hear that from people trying to manage enterprise systems and they've been stymied because they want some I.T. capability and I.T. either can't deliver it at all or they can't deliver it on the time frame that the project sponsor has in mind my short answer to that is I.T. is a bottleneck only if you let it be and we're going to manage constraints because if if we don't manage the constraint the constraints going to manage us which takes us then to the goal of I.T. it's important to keep in mind that I.T.
serves different roles across organizations I.T. in many enterprises is an enabler of core business so payroll is an example. Payroll doesn't generate revenue unless you happen to be in the payroll business doesn't generate any revenue for your organization and yet it's an essential function you know it's a at a requirement that you can't live without because you can't operate without paying your employees at the other end of the spectrum there are enterprises where I.T.
is the business as Philip mentioned I used to work for a large I.T. company and the revenue that we got was directly from the hardware the software and the services that we delivered between those two extremes though it can serve a role as an adjunct to the business and this is common in manufacturing today where a manufacturer that's been producing products for a long time has awakened to the possibility that they can deliver ancillary services you know maybe they haven't done maintenance repair and operations before MRO and they open up a new business and they have to have I.T. to go along with that and that becomes the separate source of revenue in fact having an app that displays data that's being produced by the physical products could be a separate revenue stream similarly it's possible to embed it in products and services and in that case it generates revenue but the revenue is indirect and not as separable as if it were an adjunct business so the goal of it might affect you know how much interest we have in a particular constraint could be that we have a constraint in payroll and we're just not going to give it as much attention as a constraint that we have in marketing because marketing generates revenue and HR doesn't another point to keep in mind here is that information can be a differentiator or a barrier or a commodity and so its importance relative to the strategy the enterprise can vary widely from enterprise to enterprise so if you ask yourself "in I.T. where is the constraint?" it can be a lot of places. Where it is really depends on your role and where
you draw the system boundaries if you're a project manager for example the constraint you're going to be most interested in is a constraint for your project if you're the CIO your constraint might be budget and you have to figure out how to accommodate the multitude of requests that are being made upon your organization and you're gonna have to pick and choose where to spend that those precious budget dollars same thing goes for people who are managing enterprise systems if you're in in marketing you're gonna see a different constraint than the CFO When we're talking about operational level systems though it's helpful to think in terms of that system having just one constraint there are exceptions you know it's possible to have both an internal and external constraint if you've got a division that has two product lines and one of them is ascending so there's a lot of demand and the other one is descending in terms of demand you could have an internal constraint for product A and an external constraint for product B however as we're going to apply these principles I find it helpful to encourage people to think in terms of operations level systems having just one constraint at a time at the enterprise level however you need to think in terms of multiple solutions for multiple constraints you know the CIO as I alluded to moments ago is probably concerned about budget and and how to allocate it sensibly across the multitude of demands but that CIO also has to bear in mind that each of the projects that are being worked on within his or her sphere has its own constraint so multiple solutions for multiple constraints one more slide before we talk about how to apply the principles in I.T. information systems come in a variety of forms and if you hear me speak of systems of record I'm referring to systems that gather and maintain data for the enterprise so a customer master record product master record sales records all of those are examples of things that would be kept in systems of record for mature organizations those systems may be old in the sense that they weren't built just last year they may have been built a decade or more ago but they are literally running the business you might be surprised at how many business rules are embedded in that kind of system nowadays however enterprises need more than just systems of record a system of insight is one that creates actionable information so if you've got some market intelligence data and you plug that into a system and you generate a map that shows you where the demand is and where it's moving to and based on that analysis you're able to redeploy your marketing and sales efforts that's an example of the system of insight creating actionable information system of engagement is one that involves social networking Twitter being an example nowadays when enterprises create systems of insight systems of engagement and systems of innovation which we'll get to in a moment oftentimes they need to access data that's in those systems of record and that creates a two-speed I.T. problem that we'll delve into more in a little while but first let me just acknowledge this there's a fourth category of systems here called systems of innovation so those reinvent processes product services those of you who might have implemented TOC software or constraint management software will have found that I.T. really does
reinvent the process the point that I'm leading to here is that one methodology doesn't necessarily fit all of these different system types it may be that the systems of record are so large that they follow a planned methodology and they release new versions of the software quarterly or semi-annually systems of engagement though may need to be developed quickly in just a matter of a month or two and then they need to be tweaked quite a bit to follow the trends that are captivating your market nowadays if you were to wait for quarterly releases on assistive engagement that may be way too slow where you run into problems and this is the two speed I.T. problem is if you've got one or one group one developer group working on a quarterly schedule and another group working on a two-week schedule that creates problems because the deployment of a new social networking app might be delayed by several weeks or even months while waiting for data that it needs from another system we'll talk more about how to resolve the two-speed I.T. problem in a while but now let's take these principles and begin to apply them in the I.T. world I reckon if you've been around I.T. at all you've heard of Agile and this is my little simple diagram of how Agile works ideas turn into requirements which then are fed over to developers who produce deliverables and then there's a blue line here that goes back to the beginning so it's highly iterative is the implication of this little diagram here and when i ask people who are engaged in Agile projects where is your constraint most common answer is it's developers and in fact that's actually the intent of the Agile philosophy is for developers to be the the limiting factor so to the degree that we can keep the developers busy we're going to get 100% utilization of the constraint it's possible though for the constraint to be requirements and that happens when the product manager whose job it is to prioritize the requirements coming from users either gets behind in their work or gets distracted and has to go off and do something other than their project management role or maybe the role is unfilled. I know of of enterprises where the developers are
they appear busy but they're working on things that aren't the most important things that they could be working on because the requirements haven't been prioritized similarly the constraint could actually turn out to be the ideas coming from users and project sponsors and to the degree that they're not coming up with new requirements then the rest of of the activities that follow subsequently aren't focused on the most important work that could be done another possibility is that the constraint is actually in the time between deliverables but Agile doesn't really manage that the way another methodology does that we'll look at in a little while so we're not going to spend much time talking about the sprint or time between deliverables as a constraint the point here is that even though people who are engaged in Agile method don't necessarily think of constraints beyond the developers should be the constraint every system has a constraint whether you manage it or not and to the degree that you let the constraint slip in an Agile environment you cause slack time or busy work in the downstream activities so you might ask yourself here if the developers are the constraint where's the buffer the answer is the buffer includes work in process so it's the documents it's the thoughts having to do with design and coding and testing and training and so forth but the buffer also includes requirements and it also includes the ideas so the buffer is all of that stuff to the left of the the developers in this context and the conclusion I'm trying to lead you toward is the earlier the constraint the shorter the buffer so when you have a disruption it disrupts more if the constraint is actually toward the left in this diagram than if it's toward the right so how does pull work developers their availability their ability to say to the rest of the team you know I've got some time now what should I work on next? their availability pulls requirements into work in process so they go to the requirements list they look at what what's toward the top the highest priority pop it off that stack and go to work on it and commitments to the project sponsor to users pull the work in process through to deliverables if we were to instead of using the pull concept here we were to push developers what we wind up doing is forcing them to engage in bad multitasking and for developers multitasking is a problem because it just disrupts mental flow time you know the nature of development work is such that you really need to concentrate and it takes about 20 minutes to get into that deep level of concentration so if you're interrupted every 15 minutes you never really get deep into thoughts and that's why you find developers working after hours working off-site working with headphones on if they're forced to work in an office all that is their attempt to avoid the interruptions that bad multitasking imposes upon them and so working on too many requirements at once actually it gives the illusion of progress but if you look at the actual output of an I.T. development organization the output is actually less when people get distracted so this whole principle that we saw in a manufacturing environment and we're now thinking of in an I.T. development environment is meant to focus people on the most important I.T. work which then takes us to this slightly different diagram of an Agile project you'll notice that I've introduced here operation support and maintenance as additional activities and this devops approach involves developers multitasking among not just development but also these other activities and the prevailing philosophy behind this push is who knows better than developers how to handle the additional duties and I sympathize with that I recognize that if an Agile team is only three people or nine people or some number in between that's a pretty small team and for them to have to do a handoff to an operations organization the philosophy is that that would be more disruptive and less effective than just keeping all these activities within the development team what I find though is that the bigger the organization the bigger the development team the less well that commingling of duties serves the organization and I think there's a valid reason for why over the years there's been a separation between operations and development part of it has to do with efficiency other reasons for doing it have to do with security and privacy if you separate duties then it requires collusion rather than a single perpetrator of bad actions anyway we're not going to have time for it in today's webinar but I invite you to engage in this mental exercise offline and ask yourself what happens to the constraint what happens to the buffer and how well does pull work if the developers also have responsibility for operation support and maintenance which takes us then to a transition point in this webinar I'm going to talk about I.T. project management methods here beyond just Agile but I first want to remind you of the iron triangle of project management which says you can have a good faster cheap you get to pick any two and I that up as a lead into this slide because I'm going to compare Agile with a method that comes from constraint management called Critical Chain so this is going to be a very rudimentary but I hope enlightening introduction to Critical Chain as another tool that I.T. developers can have in their tool kit and what you'll see is that it has a different philosophy with respect to the iron triangle of project management so on the left hand side you can see that the row labels begin with domain and end with the objective for these methods and then the two columns represent the methods that I want to compare and contrast the Agile method was developed for software and the scope of work that's accomplished by an Agile method is variable depending on the nature of the requirements how complex they are and their priority so a two week sprint on an Agile project might deliver a lot of work in sprint number one and less work in sprint number two because sprint number two involves something really really complicated it looks smaller but it was complicated and so sprint one might deliver an app or two and and the following sprint might develop deliver just a database in other words the variable scope but the resources tend to be fixed you know if it's a three-person team for sprint one it tends to be that same three-person sprint for sprint two, three, four and so forth so the resources over time tend to be fixed in number and whether the time between releases is fixed or variable depends on the specific Agile method there are I believe 60 different variants on Agile method and the one that I've been alluding to so far is called SCRUM SCRUM is the one that has two week fixed intervals on releases an alternative to that is called KANBAN and with KANBAN the time between releases is still short but it's variable it could be a week it could be a week and a half could be two weeks it could be two and a half weeks variable delivery time but no matter which Agile method you use the deliverables are small and frequent and oftentimes the objective is to create a minimum viable product and to do it quickly so Agile implements an 80/20 rule meaning 20 percent of the requirements for any system may account for up to 80 percent of the value that that system delivers and rather than produce 100 percent of the requirements if you can produce the twenty percent that's really critical up front you accelerate the business benefits and if you never get to the other eighty percent then you conserve on your investment in that I.T.
solution so the minimum viable product says do the most important stuff first and the less important stuff you may never get around to and that's really okay Critical Chain though takes a different philosophy on that in that Critical Chain is meant for situations where if you deliver less than 100 percent you've got a problem you know think about building a bridge if you don't deliver 100% of the requirements on a bridge do you really want to put your family in the van and drive across that bridge if it doesn't have guard rails and lights and a second lane and good supports underneath no you really want to drive across that bridge when it's been fully built to satisfy all the requirements Critical Chain was invented for a manufacturing environment but it's been widely used elsewhere including services and including software there are times when software has to be complete and so in row two here the scope rule you'll see that with Critical Chain I said the scope is fixed you know it's all relative nothing is really a hundred percent fixed but compared to Agile you can think of the scope of a Critical Chain project as being more fixed later on when we do a deep dive on Critical Chain we'll talk about ways to cope with the uncertainty and requirements in I.T. but for now think of it like Critical Chain would be useful in building a data center you really need all the elements in place when you build a data center or it's not going to be secure and it's not going to work because it won't have power or light or environmental controls with a Critical Chain project the resources that work on the project are not fixed if you need designers they come in and do the design if you need coders they do the coding if you need testers they come in and do the testing so over time people move on to and off of a project and the time or the schedule for a Critical Chain project really depends on its scope the deliverables tend to be larger and less frequent but Critical Chain can produce a fully viable product so let's take a look at a very very very simplified view of a Critical Chain project plan this is a Gantt chart so each one of these numbered boxes represents a task time flows from left to right and if we ask ourselves where is the constraints in this project it's the things that i've shaded in blue here activities one through five plus nine through ten so the Critical Chain is the longest path through the plan and although I've drawn the boxes having the same length here that's just for illustration purposes in a real project plan there would be many more boxes hundreds perhaps and they would be of a length you know representing the actual estimated duration one of the things that makes Critical Chain different from other planned methodologies that you may be familiar with is that task durations are planned at 50% probability of completion by that date let me just pause for a second because that may be a little bit mind blowing if you've never seen Critical Chain before because Critical Chain is in some ways an unfortunate name many of you may be aware of a plain project method called Critical Path it's been around for a long long long time with Critical Path what people do is they plan task durations with you know 80% 90% 95% probability of being able to complete the task by the date that the end date for that task and the way they accomplish that is they embed a lot of contingency into the estimate so if you think it's really going to take you three days to do this task but your manager you know may load some other work on you and you're going to get distracted you might estimate that task at five days instead of three those additional two days are the contingency that I alluded to and what happens during project execution is that contingency typically gets squandered and so you have a late task finish and that ripples into the next task and so on and so forth so late task finishes tend to become cumulative constraint... Critical Chain takes a completely different approach it plans task durations at 50% probability but it takes the contingency and it sticks it out in buffers that protect the entire project you see two buffers here represented as PB on the right that stands for "project buffer" and then for tasks six seven and eight they are followed by something labeled FB that stands for "feeder buffer" more about those buffers in a moment but coming back to the idea that task generations are estimated 50% probability that means that if you aren't distracted then you don't engage in bad multitasking and you just do the tasks that you've been assigned you work it like you're participating in a relay race some tasks will finish early some tasks will finish late on the average they should finish on time and if you do have an accumulation of late finishes your project buffer protects the date that you've committed to finish the project by so contingency gets moved into buffers the assumption here though that is that resources aren't the constraint they assume that you can get the resources to do the project according to the plan so in addition to having a project manager who's putting together a viable plan you need a resource manager who's planning to assign the resources on demand as they're needed when the project is executed so this little diagram represents the Chain principle it's not one that I introduced earlier this seemed like an appropriate time to do that but it says that a system produces only as much as its weakest link will allow and in this case the weakest link is the longest path through the project so moving on if we ask ourselves where the buffers here you can see them in gray however I've redrawn the buffer here so that it is divided into three zones and i think you can see that if let's say task 10 finishes late in effect it slides right on this timeline and intrudes into the green zone of the project buffer which is fine that will happen occasionally hopefully somewhere else in the project when you have a late task finish that will be another test that will finish early and it will pull the buffer penetration back to the left but over time if late projects accumulate and you wind up penetrating into the yellow zone or into the red zone when it gets to the red zone that's really when management needs to act so it lessens the demand on managers time to be concerned about every late project finish because some of them will be offset by early finishes similar to the way that I divided the project buffer into zones here I've divided the feeder buffer into zones what the feeder buffer does is it protects convergence points what we wouldn't want to do is execute tasks one through five and get all them done on time and have tasks six seven and eight finish late that would disrupt the critical chain so we insert a feeder buffer whenever there's this convergence of tasks the committed date however includes the buffers so when you're putting together your project plan and you're telling your customer you know I can commit to having this done by May 10th May 10th is the date out there at the end of that red project buffer zone. What that means is that this kind of project plan is not just shorter than an equivalent Critical Path plan. The Critical Chain plan
has a much higher probability of on-time completion in organizations that have become mature in their application of this kind of planning and execution methodology what we find is that their on-time completion is in the realm of 95% one last caviar that i will offer though is that sponsors ask for speed when what they want is predictability so if there's a marketing promotion that's going to happen in six months where there's a new product in introduction it's going to happen in six months what the project sponsors may ask for is to have new I.T. capability in support of the marketing and the delivery of the product be done in three months because they want their own buffer and make sure the idea is going to be there in time and they do that because I.T.'s track record of success in honing to their estimates is not particularly good so the mindset of the project sponsor might be if I demand it in three months I have a reasonable probability that it's going to be done in five months and therefore I'll be safe on my six-month commitment well with Critical Chain if you have a 95% probability of it finishing on time it may be the case that you can make a commitment to the client to finishing it in five months instead of three months and the client can trust that commitment because they understand how Critical Chain works the reason from an I.T. perspective for doing that is a five-month project is a different kind of project from a three-month project the additional time means you could introduce more tools you might use different skills it's just a different project and one that we would expect would have a better quality deliverable at the end of the five months than something that would hurried to be done in three months so it's a situation where both parties can benefit from the longer schedule how does pull work well tasks start when their predecessors finish once you kick off the project you no longer pay attention to start dates on tasks however you know if you think about how you ran relays races in high school when the person who had the baton came around you didn't wait to grab that baton and run you would grab it and run just as fast as you could because that's how relay races work that's not how projects typically work though when they're being managed according to start dates you know in a relay race you wouldn't stop and work on your math homework while you're holding the baton that's just not in the spirit of it so you don't not doing bad multitasking is the essence of the relay race principle something else that I said in the agenda that i would cover is the application of constraint management to resources this is actually the very first solution for services that we did using a constraint management toolkit here you can see we've got a job market on the left we've got projects on the right we want to be able to hire skills and assign skilled persons to accomplish those projects so where's the constraint well the constraint is on skills requiring lead time to hire and get on board if we can hire people off the street and put them to work tomorrow that's not really a constraint but if we have to take a multi-month period of time to interview candidates to select the ones that show the most promise and then get them on board and trained you know you're not going to be able to respond to demands for staffing a project tomorrow you're going to be able to respond in 90 days or more and yet that's how some organizations work they hired a plan they say we think we're going to do this many projects in second quarter and so we're going to demand we're going to hire people to to satisfy that anticipated demand well then if demand is exceeded or fall short you wind up with either overstaffing or understaffing so the solution that we came up with to apply constraint management to resource management was forget about the forecasts we're going to establish a buffer and we're going to hire to demand so here you can see on the right we've got a project people being assigned into that project out of a skills buffer when they finish their work on that project they go back into the skills buffer and if we are fortunate enough to sell a lot of projects and need more people we replenish the buffer from the job market this buffer is a little different from the ones that we've seen before though because it's bi-directional instead of being green yellow red which is a uni-directional buffer here we've got a bi-directional buffer that's red on both ends that's simply an acknowledgement of too many is is bad likewise too few is too bad so the buffer is core skill groups those that take some time to hire and on board it does not include commodity skills ones that we can hire off the street likewise it doesn't include critical skill groups I mean critical skills are those where if we could hire enough to have a buffer we would do so but the skills are just not that plentiful in my experience I.T. architects are an example of a skilled report you just you can try to set a buffer but if it's ever above zero that's a surprise because everybody you hire you can put to work on projects right away which takes us then to pull works off of the buffer level you know when the buffer level falls into the low range of the red zone then you would replenish from the the job market and in the interest of time I'm going to move on to the measurement principle here it's been said that measures drive behavior the corollary to that is miss measures drive misbehavior if I.T. has no metrics about its work then development can go awry guesstimates lead to risky commitments problems are hard to diagnose performance improvement isn't quantifiable so this is a little bit of insight into technical strategy we'll go into more depth in a subsequent video but what I wanted to do was show you this diagram so that we can talk about applying constraint management principles to an I.T.
portfolio where a portfolio includes a spectrum of projects as you can see here on the left there is a vertical axis labeled scope and on the horizontal axis it's labeled schedule so scope you can think of that in terms of number of apps being delivered or number of screens number of reports it's something the project sponsors and users will acknowledge as a deliverable that fulfills a requirement on the horizontal axis we've got schedule that's the elapsed time to perform a project with longer projects being toward the right within the body of this diagram you can see that there are some open dots that represent active projects and you can see some closed dots that are color green that represent finished projects similarly if you really squint at it you can see that this dashed blue line represents a minimum viable product frontier it's the amount of time that it takes to go from zero to a minimum viable product if you look closely you can see that there's a cluster toward the lower left that represents small projects as you might imagine there there's they're small by definition because they have small scope but they're also short because that scope is short there's a cluster to the right of that that represents medium-sized projects and then another cluster to the right of that that represents large projects if I click on this button to show you the fully viable product frontier you'll see that it passes through the completed projects and it forms an arc those two arcs the MVP and FVP frontiers create an envelope it's the envelope of successfully completed projects or projects that are on their way to success because they're in process right now and if you have this kind of information it equips you to ask questions when you get an estimate of a project like number one that you now see appearing toward the bottom of the screen if I take project number one which is yellow in color and I project it on to the MVP frontier we can draw a couple conclusions from that the overarching conclusion is that this project appears to have been estimated with a considerable amount of slack because the projection onto the frontier says if we really are going to allocate that schedule to this project we ought to be able to get about 40 percent more scope or work out of the project conversely if we hold the scope to what is represented by dot number one it looks like the schedule could be half of what we've actually estimated so is this a viable incredible project estimate or not well it might be, it might be that there's something novel about the requirements that really puts it in a different category from any of the work that's been done before if we're doing a project in artificial intelligence or machine learning for the first time it's just going to be harder than anything we've done before so we may need to allow extra time for that so I'm not meaning to imply that this is is necessarily a schedule where because it's unlike anything we've done before we ought to cut the schedule back or we ought to ask for more scope I'm not saying that at all i'm saying the conversation around the estimates here can be enlightening and we might decide that this is a perfectly valid estimate but it's the conversation that's important similarly when I bring up project number two we can see that it's outside the envelope in the opposite direction and once again I'm doing a projection here and we draw a somewhat different conclusion on this one though if we hold scope to what is being proposed it looks like the schedule ought to be about twice what's being proposed so that's should be raising a red flag alternatively if we hold the schedule of what's being proposed then it looks like the scope is maybe a quarter less than what we would expect based on prior successful projects so number two is a stretch project it's somebody saying you know we need something we needed fast we need it big and we've never done one like this before so if an I.T. manager looks at this they ought to be asking themselves okay how could we do this bigger project in a shorter time frame maybe we need to put our best people on it maybe we need to adopt a different tool maybe we should acquire the software rather than writing it ourselves you know there are many answers to the question of how do we get to end of job on a stretch project li