Scrum, it's not you, it's me and hope we can still be friends
| (NOTE: The post below is not really my personal view, more of a sentiment I'm seeing amongst those practicing Scrum, though I agree much with it.) I really loved the idea of Scrum, really I did! But I’m starting to realize that in reality, what was supposed to release me from the shackles of the tyranny of my Gantt chart cum waterfall ways is the fact that I’m now feeling the very same burden and overhead for which I wished to escape! The fact is that Scrum ass-u-me’s that we are good at estimating. In fact very good, because only then could you finish a working deliverable at the end of each Sprint. The problem was that we’re not, yet the irony is that by breaking things down into Sprint iterations that were badly estimated, we ended up jerry rigging the estimation for the next Sprint which cause Sprint after Sprint to miss their deliverables. Rather than get frustrated over a prolonged period of time after a traditional planning process, we would get bursts of frustrations that started making us exhausted. On exhaustion, while it initially seemed a great idea to have daily stand-up meetings, Sprint planning meetings and all that good stuff, like anything else people show up and are enthusiastic at first, but then as time moves on and the bottlenecks start to occur as described above, you as ScrumMaster will become quite prickly and everyone working around you demoralized or bored. And for all you “Certified Scrum Coaches”, don’t tell me that “we’re just doing it wrong” as that’s starting to sound trite. I harbor no grudge against the Scrum framework, but like all good things it must come to an end and someone (maybe me!) will come up with a new twist to an old trick and get us all moving and excited again (Kanban anyone?). Scrum, it's not you, it's me and hope we can still be friends. |
Why Agile is not agile enough
| I ran into this article by Andy Hunt on the Pragmatic Bookshelf site, which is one of the well know publishers of Agile software development books. I particular liked the section with a quote from a software architect during an Agile workshop: “The theater I did in college has helped me more in my programming career than half of my engineering courses.”—Grant Gainey, Senior Architect Developer The article goes on to discuss how the improvisational skills learned in Theater are more in line with the kind of agility “Agile” is purportedly advocating. The bigger issue that was revealed to me is something I have been thinking of for quite some time in that the field of project management, both traditional and Agile and everything in between has suffered from the tyranny of left brain thinking. This is not surprising since the majority of people who have entered the field of project management are from construction, engineering and IT. So naturally the focus is still on process and analysis and nothing really much on what makes us do what we do. I know some of you Agile evangelist will argue that its focus is on people over processes, but I don’t buy that because none of the Agile methods go deeply into the humanistic aspects of why people do what they do and how they do it. In any event, I have to admit that I have lost interest in the Agile movement and in fact am getting quite bored of it. That’s not so say that “being agile” is not important! In fact, I think Agile is not agile enough. What’s needed is a broader perspective and one where we can learn from other fields. I’m finding that the field of behavioral economics provides a lot of empirical data that supports inferences on team motivation and dynamics and the quote above, and I may be biased since my educational background was in philosophy and comparative literature, highlights that we could definitely learn from the arts and humanities. My writings going forward will focus on this idea of agility that will make Agile more, hmm agile. |
The CAN-DO attitude of Lean 5S
| Here's a great introductory video from Gemba Academy on Lean 5S:
What I especially like about this video is its emphasis that these practices are important and easy to follow regardless what industry you work in and the type of work you're doing. But the most interesting part was the section on the origins of Lean 5S from Henry Ford's CANDO idiom:
Whether you work in software development or manufacturing doing Lean, the principles stay the same and as you can see, it doesn't matter where it originated since the practical and useful principles are timeless. |
Using object-oriented design structures for project agility
|
I read this interestingI read this interesting piece from the Dr. Dobbs website by Allen Holub, in which he argues for the use of object-oriented design principles to drive Agile software development projects. One area in particular that I like is the idea of adhering to the “Liskov Substitution Principle (LSP)”:
I read this interesting piece from the Dr. Dobbs website by Allen Holub, in which he argues for the use of object-oriented design principles to drive Agile software development projects. One area in particular that I like is the idea of adhering to the “Liskov Substitution Principle (LSP)”:
It should be possible to completely change the implementation of an object without the clients of that object knowing that the change has happened. You should be able to add, remove, or modify any or all of the fields in an object, replace all the non-public methods of the object, and completely replace all the implementations of the public methods. As long as the public interface hasn't changed, the users of the object shouldn't know or care that a change has happened. This principle extends to any sort of modularized system, not just OO classes and objects.
In an Agile world, following LSP gives you the freedom of changing implementation without the effects of that change rippling out to the rest of the program, and this property is, again, essential when constant change is in the picture.
More formally, LSP can be defined for an object oriented computer program where “S is a declared subtype of T, objects of type S should behave as objects of type T are expected to behave, if they are treated as objects of type T”. An important point to note is that the LSP is all about expected behavior of objects. One can only follow the LSP if one is clear about what the expected behavior of objects is. As this Wikipedia page outlines:
The Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address entitled Data abstraction and hierarchy. It is a semantic rather than merely syntactic relation because it intends to guarantee semantic interoperability of types in a hierarchy, object types in particular.
So what does this have to do with managing Agile projects? A lot and this principle could be applied to any type of project. From just the perspective of the agreed to software functionality scoped for an Agile project, there will be expected behavior of that functionality from the customer’s perspective. If you have thought through and solicited the correct requirements and have facilitated a modular design and flexible process like Agile, then you should be able to change the implementation if needed and still deliver the expected behavior without the customer ever knowing it.
Taking this further, any project whether using an Agile or traditional approach should always be incorporating a way to ensure modularity and flexibility so as to accommodate the inevitable changes without compromising the expectations of the customer for the agreed to deliverables.
I know this is common sense, but it’s not only intellectually interesting but an important reminder to be aware of these synergies in different fields to ensure you are providing the most optimal solutions for your projects.
I know this is common sense, but it’s not only interesting but an important reminder to be aware of these synergies in different fields to ensure you are providing optimal solutions for your projects. piece from the Dr. Dobbs website by Allen Holub, in which he argues for the use of object-oriented design principles to drive Agile software development projects. One area in particular that I like is the idea of adhering to the “Liskov Substitution Principle (LSP)”:
It should be possible to completely change the implementation of an object without the clients of that object knowing that the change has happened. You should be able to add, remove, or modify any or all of the fields in an object, replace all the non-public methods of the object, and completely replace all the implementations of the public methods. As long as the public interface hasn't changed, the users of the object shouldn't know or care that a change has happened. This principle extends to any sort of modularized system, not just OO classes and objects.
In an Agile world, following LSP gives you the freedom of changing implementation without the effects of that change rippling out to the rest of the program, and this property is, again, essential when constant change is in the picture.
More formally, LSP can be defined for an object oriented computer program where “S is a declared subtype of T, objects of type S should behave as objects of type T are expected to behave, if they are treated as objects of type T”. An important point to note is that the LSP is all about expected behavior of objects. One can only follow the LSP if one is clear about what the expected behavior of objects is. As this Wikipedia page outlines:
The Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address entitled Data abstraction and hierarchy. It is a semantic rather than merely syntactic relation because it intends to guarantee semantic interoperability of types in a hierarchy, object types in particular.
So what does this have to do with managing Agile projects? A lot and this principle could be applied to any type of project. From just the perspective of the agreed to software functionality scoped for an Agile project, there will be expected behavior of that functionality from the customer’s perspective. If you have thought through and solicited the correct requirements and have facilitated a modular design and flexible process like Agile, then you should be able to change the implementation if needed and still deliver the expected behavior without the customer ever knowing it.
Taking this further, any project whether using an Agile or traditional approach should always be incorporating a way to ensure modularity and flexibility so as to accommodate the inevitable changes without compromising the expectations of the customer for the agreed to deliverables.
I know this is common sense, but it’s not only interesting but an important reminder to be aware of these synergies in different fields to ensure you are providing optimal solutions for your projects.
|
Scrum is NOT Agile
| Anyone involved with Agile hears that Scrum is the most popular project management method within the umbrella of Agile practices. But Jim Coplien (one of the chief founders of the Design Pattern movement) argues that Scrum’s root is really not from Agile, but rather the Toyota Production System (TPS). I’ve heard him say this in various lectures, but in this interview he states this very directly: For now I have hope that the TPS ideals, and particularly as they are manifested in Scrum, can show teams how to marry complexity with planning. I think it’s important to point out that agility and TPS often have opposing foci and, further, that Scrum is more about TPS principles than about agile principles. Agile was a software-specific manifesto penned in 2001; Scrum goes back to 1993 or 1994. We can say that agile came from Scrum, very late in the game — not vice-versa. More realistically, they both emerged from a growing realization in the 1990s of the need to support complex system development. Scrum emphasizes the systems thinking components of such changes and I hope those prevail in the intermediate term. I actually agree with this and had actually written about this in one of my earliest articles for Gantthead. What do you think? Do you agree with this assessment or not? |





