Archive

Author Archive

The Scrum Sprint Planning Meeting

September 12, 2012 2 comments

Since the UML Scrum Cheat Sheet post is getting quite a few page views, I decided to conjure up a class diagram that shows the static structure of the Scrum Sprint Planning Meeting (SPM).

The figure below shows some text from the official Scrum Guide. It’s followed by a “bent” UML class diagram that transforms the text into a glorious visual model of the SPM players and their responsibilities.

In unsuccessful Scrum adoptions where a hierarchical command & control mindset is firmly entrenched, I’ll bet that the meeting is a CF (Cluster-f*ck) where nobody fulfills their responsibilities and the alpha dudes dominate the “collaborative” decision making process. Maybe that’s why Ramblin’ Scott Ambler recently tweeted:

Everybody is doing agile these days. Even those that aren’t. – Scott Ambler

D’oh! and WTF! – BD00

Of course, BD00 has no clue what shenanigans take place during unsuccessful agile adoptions.  In the interest of keeping those consulting and certification fees rolling in, nobody talks much about those. As Chris Argyris likes to say, they’re “undiscussable“. So, Shhhhhhh!

Bring Back The Old

September 11, 2012 4 comments

The figure below shows the phases of Scrum as defined in 1995 (Scrum Development Process) and 2011 (The 2011 Scrum Guide). By truncating the waterfall-like endpoints, especially the PSA segment, the development framework became less prescriptive with regard to the front and back ends of a new product development effort. Taken literally, there are no front or back ends in Scrum.

The well known Scrum Sprint-Sprint-Sprint-Sprint… work sequence is terrific for maintenance projects where the software architecture and development/build/test infrastructure is already established and “in-place“. However, for brand new developments where costly-to-change upfront architecture and infrastructure decisions must be made before starting to Sprint toward “done” product increments, Scrum no longer provides guidance. Scrum is mum!

The figure below shows a generic DRE system where raw “samples” continuously stream in from the left and value-added info streams out from the right. In order to minimize the downstream disaster of “we built the system but we discovered that the freakin’ architecture fails the latency and/or thruput tests!“, a bunch of critical “non-functional” decisions and must be made and prototyped/tested before developing and integrating App tier components into a potentially releasable product increment.

I think that the PSA segment in the original definition of Scrum may have been intended to mitigate the downstream  “we’re vucked” surprise. Maybe it’s just me, but I think it’s too bad that it was jettisoned from the framework.

The time’s gone, the money’s gone, and the damn thing don’t work!

Humbled And Overjoyed

September 10, 2012 Leave a comment

I’m humbled and overjoyed that some people actually appreciate and want to hear what BD00 has to say:

If you don’t overcome the fear of publicly expressing yourself somehow, then how else can you experience the same warm feelings – outside of your small, bounded, circle of family and friends? Why, daily, at work, of course.

Categories: miscellaneous Tags: , , ,

From Complexity To Simplicity

September 9, 2012 3 comments

As the graphic below shows, when a system evolves, it tends to accrue more complexity – especially man-made systems. Thus, I was surprised to discover that the Scrum product development framework seems to have evolved in the opposite direction over time – from complexity toward simplicity.

The 1995 Ken Schwaber Scrum Development Process paper describes Scrum as:

Scrum is a management, enhancement, and maintenance methodology for an existing system or production prototype.

However, The 2011 Scrum Guide introduces Scrum as:

Scrum is a framework for developing and sustaining complex products.

Thus, according to its founding fathers, Scrum has transformed from a “methodology” into a “framework“.

Even though most people would probably agree that the term “framework” connotes more generality than the term “methodology“, it’s arguable whether a framework is simpler than a methodology. Nevertheless, as the figure below shows, I think that this is indeed the case for Scrum.

In 1995,  Scrum was defined as having two bookend, waterfall-like, events: PSA and Closure. As you can see, the 2011 definition does not include these bookends. For good or bad, Scrum has become simpler by shedding its junk in the trunk, no?

The most reliable part in a system is the one that is not there; because it isn’t needed. (Middle management?)

I think, but am not sure, that the PSA event was truncated from the Scrum definition in order to discourage inefficient BDUF (Big Design Up Front) from dominating a project. I also think, but am not sure, that the Closure event was jettisoned from Scrum to dispel the myth that there is a “100% done” time-point for the class of  product developments Scrum targets. What do you think?

Just One Measly Tweet?

September 8, 2012 1 comment

I just found out from this article, “The $1.3 Trillion Price Of Not Tweeting At Work“, that Oracle’s mercurial CEO, Larry Ellison, has tweeted one, and only one, message out onto the ether. And a nasty one it is:

The Fast Company article’s author, HootSuite CEO Ryan Holmes, also states an interesting fact:

Among CEOs of the world’s Fortune 500 companies, a mere 20 have Twitter accounts. As social media spreads around the globe, one enclave has proven stubbornly resistant: the boardroom. Within the C-suite, perceptions remain that social media is at best a soft PR tool and at worst a time sink for already distracted employees. Without a push from the top, many of the biggest companies have been slow to take the social media plunge.

Ryan goes on to speculate that the status quo may change because of the findings in a report from the McKinsey Global Institute:

According to an analysis of 4,200 companies by the business consulting giant, social technologies stand to unlock from $900 billion to $1.3 trillion in value. At the high end, that approaches Australia’s annual GDP. Two-thirds of the value unlocked by social media rests in “improved communications and collaboration within and across enterprises”.

BD00 hopes that Mr. Holmes is right, but there’s a lot of inertia and outdated tradition motivating the mute behavior in the head shed. There’s paranoia about giving away too much information to competitors and there’s a fear that the penthouse occupants might say something that destroys the illustrious image of infallibility unconsciously burned into the minds of themselves and their minions.

Just cutting email out of the picture in favor of social sharing translates to a productivity windfall as “more enterprise information becomes accessible and searchable, rather than locked up as ‘dark matter’ in inboxes.

Oh man, despite the risk of being served with a cease-and-desist order and/or being slapped with a slander lawsuit, I couldn’t resist the urge to do this:

Besides our buddy Larry, can you name all the faymoose people in this dastardly mugshot collage without using Google? I’d offer up a BD00.com T-shirt to the winner, but I’m all sold out.

Software Reuse

September 7, 2012 10 comments

As a follow up to my last post, I decided to post this collection of quotes on software reuse from some industry luminaries:

Planned? Top-down? Upfront? In this age of “agile“, these words border on blasphemy.

The Odds May Not Be Ever In Your Favor

September 5, 2012 6 comments

The sketch below models a BD00 concocted reference cost curve for a single, one-off, software-intensive product. Note that since the vast majority of the accumulated cost (up to 3/4 of it according to some experts) of a long-lived product is incurred during the sustainment epoch of a product’s lifetime, the graph is not drawn to scale.

If you’re in the business of providing quasi-similar, long-lived, software-intensive products in a niche domain, one strategy for keeping sustainment costs low is to institutionalize a Software Product Line Approach (SPLA) to product development.

A software Product Line is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. – Software Engineering Institute

As the diagram below shows, the idea behind the SPLA is to minimize the Total Lifetime Cost by incurring higher short-term costs in order to incur lower long-term costs. Once the Product Line infrastructure is developed and  placed into operation, instantiating individual members of the family is much less costly and time consuming than developing a one-off implementation for each new application and/or customer.

Some companies think themselves into a false sense of efficiency by fancying that they’re employing an SPLA when they’re actually repeatedly reinventing the wheel via one-off, copy-and-paste engineering.

You can’t copy and paste your way to success – Unknown

If your engineers aren’t trained in SPLA engineering and you’re not using the the terminology of SPLA (domain scoping, core assets, common functionality, variability points, etc) in your daily conversations, then the odds may not be ever in your favor for reaping the benefits of an SPLA.

Beginner, Intermediate, Expert

September 3, 2012 Leave a comment

Check out this insightful quote from Couchbase CTO Damien Katz:

Threads are hard because, despite being extremely careful, it’s ridiculously easy to code in hard to find, undeterministic, data races and/or deadlocks. That’s why I always model my multi-threaded programs (using the MML, of course) to some extent before I dive into code:

Note that even though I created and evolved (using paygo, of course) the above, one page “agile model” for a program I wrote, I still ended up with an infrequently occurring  data race that took months, yes months, to freakin’ find. The culprit ended up being a data race on the (supposedly) thread-safe DB2 data structure accessed by the AT4, AT6, and AT7 threads. D’oh!

Don’t Do This!

September 2, 2012 Leave a comment

Because of its oxymoronic title, I started reading Paul McMahon’s “Integrating CMMI and Agile Development: Case Studies and Proven Techniques for Faster Performance Improvement“. For CMMI compliant orgs (Level >= 3) that wish to operate with more agility, Paul warns about the “pile it on” syndrome:

So, you say “No org in their right mind would ever do that“. In response, BD00 sez “Orgs don’t have minds“.

Ultimately And Unsurprisingly

September 1, 2012 5 comments

Take a look at the latest, dorky, BD00 diagram below. The process model on the left is derived from the meaty, 482 page CMMI-DEV SEI Technical Report.  The model on the right is derived from the lean, 16 page Scrum Guide.

Comparing CMMI-DEV and Scrum may seem like comparing apples to oranges, but it’s my blog and I can write (almost) whatever I want on it, no?

Don’t write what you know, write what you want to know – Jerry Weinberg

The overarching purpose of both process frameworks is to help orgs develop and sustain complex products. As you can deduce, the two approaches for achieving that purpose appear to be radically different.

The CMMI-DEV model is comprised of 22 practice areas, each of which has a number of specific and generic practices. Goodly or badly, note that the word “practice” dominates the CMMI-DEV model.

Unlike the “practice” dominated CMMI-DEV model, the Scrum model elements are diverse. Scrum’s first class citizens are roles (people!), events, artifacts, and the rules of the game that integrate these elements into a coherent socio-technical system. In Scrum, as long as the rules of the game are satisfied, no practice is off limits for inclusion into the framework. However, the genius inclusion of time limits for each of  Scrum’s 4 event types implicitly discourages heavyweight practices from being adopted by Scrum implementers and practitioners.

Of course, following either model or some hybrid combo can lead to product quality/time/budget success or failure. Aficionados on both sides of the fence publicly tout their successes and either downplay their failures (“they didn’t understand or really follow the process!“) or they ignore them outright. As everyone knows, there are just too many freakin’ metaphysical factors involved in a complex product development effort. Ultimately and unsurprisingly, success or failure comes down to the quality of the people participating in the game – and a lot of luck. Yawn.