Project Management

Agility and Project Leadership

by
A contrarian and provocative blog that goes beyond the traditional over-hyped dogma of "Agile", so as to obtain true agility and project leadership through a process of philosophical reflection.

About this Blog

RSS

Recent Posts

Has Scrum outlived its usefulness? Should Scrum just go away?

The rise of Agile’s SAFe is like a bad episode of the movie Groundhog Day

Marcel Proust’s recursive novel: Why the concept of iteration in Agile is shortsighted

Forecast for 2015: The beginning of the end of Agile?

Google considered the best US company to work for due to HR agility

Categories

Date

Just enough up-front thinking and nothing more

linkedin twitter facebook Request to reuse this  

I happened to run into this discussion thread and the most interesting discussion was on the topic of just “enough up-front thinking” which this poster David Chelimsky, responds:

In regards to enough up-front thinking, there are a series of scopes to which it applies. When you’re in a release planning meeting you want to do enough up-front thinking to be able to start working on the release with confidence. This will likely include considerations like business strategy, marketplace, etc.

In an iteration planning meeting, the scope is narrower. The goal is still to do enough up-front thinking to start working on the iteration with confidence, but the considerations tend to more about the functional details of specific features that we’ve already selected in the release planning meeting. Perhaps you don’t do separate iteration and release planning meetings, and that’s fine, as long as you recognize that even in the context of a single meeting, the concerns for release planning are wider than the concerns of iteration planning.

Within an iteration the scope is narrower yet. You still want to do enough up front thinking, and perhaps you’ve recognized some design challenges that are presented by the features slated for the current iteration. In that case you call a design meeting with your peers. The goal here is stay within the scope of what you’re doing this iteration.

Then, when you get down to the minute to minute practice of doing TDD, the scope is even narrower. The focus is on objects and how they respond to events in given contexts.

At each level, we’re informed by what we know from the wider scopes, and we can’t help but consider the things we know.  We’re human, after all.  The trick is to avoid the temptation of considering the things we don’t know or are not relevant to the task at hand.

I like this idea as it outlines a form of “mental agility” that forms the basis of acting on information that you obtain “just in time” to be able to get work done.  But as the post outlines, it is still driven by the overall goals of the project and the key is to eliminate the fluff while focusing on the meat.  As I’ve critiques in the last couple posts, Agile is too focused on processes and not enough on the thinking and most importantly, the behaviors you need to adopt in order to have true agility.

Look forward to thinking “just enough” about this and posting more about it!

Posted on: February 06, 2014 05:02 PM | Permalink | Comments (3)

Scrum, it's not you, it's me and hope we can still be friends

linkedin twitter facebook Request to reuse this  

(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.

Posted on: January 31, 2014 02:04 PM | Permalink | Comments (3)

Why Agile is not agile enough

linkedin twitter facebook Request to reuse this  

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.

Posted on: January 23, 2014 08:17 AM | Permalink | Comments (3)

The CAN-DO attitude of Lean 5S

linkedin twitter facebook Request to reuse this  

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:

Ford's CANDO Lean's 5S
Cleaning Up Sort
Arranging Straighten
Neatness Sweep
Discipline Standardize
Ongoing Improvment Self-Discipline

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.

Posted on: January 12, 2014 08:11 PM | Permalink | Comments (4)

Using object-oriented design structures for project agility

linkedin twitter facebook Request to reuse this  
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.
Posted on: December 27, 2013 08:43 PM | Permalink | Comments (2)
ADVERTISEMENTS

"Comedy is tragedy - plus time."

- Carol Burnett

ADVERTISEMENT

Sponsors