Unrest in the motherland

All the unrest in Nigeria at the very end of the year is concerning. Between the bombings in Jos, killings in Maiduguri and the chaos that ensued in Ibadan today, the country seems to be on edge. 2011 looms and it ain’t looking pretty.


We Don’t Do Waterfall

Is the cry of many software teams I interact with.  In fact, they are always very quick to point out to me that they follow agile principles and practices such as TDD, iterations, automation etc etc very closely but after a couple of minutes of discussion, we usually find out that they may not be as agile as they think in their core approach.

Most teams that say they don’t “do waterfall” mean that they don’t do all their analysis, then do all coding, then testing for a set of requirements etc etc in a sequence, rather they decompose sets of requirements down into smaller features, MMFs, user stories (whatever) and work on those.  These teams should be applauded for adopting an approach that allows them to deliver value faster than they probably did before.

However, my observation of such teams (including teams that I have managed both past and present) is that they are still very sequential in the development of smaller work items.  They are waterfall-esque, just at a user story or feature level. What can be more surprising is the (at times) averse reaction to concurrent development e.g. having design and coding or coding and testing on the same feature happening at the same time.  Somehow, this is considered to be a bad practice and I’m not sure why.  For example, even though the designer and developer both know that something will have to be implemented, designers don’t want developers to write any functional code till they (the designer) have documented it even though its inevitable that the developer will have to code some form of that functionality.  Waiting for days with zero code is deemed a better tradeoff than having to modify code that was written in the case that requirements change.  Software development teams in the interest of preserving sequencing, minimizing change and refactoring sacrifice delivery times significantly with little to no observable improvement in quality and don’t think much of it.  Think of how much time in the delivery cycle could be recouped if activities were happening concurrently.  In fact, don’t just think, try it out!  It’s not that hard to put certain controls in place to ensure that the necessary documentation is in place before the software is released.

In my experience, I’ve heard designers (for example) say that they are being asked questions by developers that they haven’t thought about yet, i.e. they haven’t been able to go “deep” on a feature and are hence not ready to answer their questions.  Now tell me, why is this a bad thing?  The fact that the developer brings this up is the type of early feedback that we want in the development process.  It shows that everyone cares.  This is a culture that needs to be cultivated.

Part of the solution to fostering concurrent development is to identify what activities are truly essential for the delivery of high quality software.  We also need to understand that a working solution is what is of value to our end users and practices that get us to a working solution sooner should be encouraged and promoted.  Our assumptions as to what is required is very ever reality.  It may even mean redefining what designers, developers, testers actually do and how they do what they do.  Only software development organizations that are willing to improve their practices will improve their delivery.  The status quo should not be acceptable.

Improvement methodologies

Regardless of software methodology (including agile methods) being implemented, good software development leaders should have an improvement methodology. Lean thinking is my method of choice but there are others such Six Sigma and Theory of Constraints that exist.

More to come on this….

I’m Nigerian By The Way

I’m chuckling as I’m typing this post because I started it (ok just the post title) over a year ago (September 9, 2009 to be exact).  I had just watched a scene from the movie Savages (which I enjoyed as a reflection of the challenges of an aging parent in this part of the world but I digress) in which Jimmy, the male nurse (Gbenga Akinnagbe) makes it clear to Wendy (Laura Linney) that he is not from Jamaica (if I recall correctly) by saying:

I’m Nigerian by the way

The fact that I have had this experience multiple times (I don’t get how a Nigerian could sound Jamaican) is not what got me thinking rather, what got my gears grinding was my observance of the increased references to Nigeria in movies over the last  5 or so years.  To be fair, I didn’t have any compelling statistics to buttress my thoughts, but it seemed to me that most references to Nigeria in the movies (implicitly or explicitly) were rarely, if ever, positive. Unfortunately, I never found the time to express my thoughts on the matter.

Fast forward to the last couple of months in which I’ve watched only 3 movies, Prince of Persia, District 9 and the Expendables. Two out of the three had references to Nigeria (I’ll leave it to you to guess which one didn’t).  District 9 featured a locale where Nigerians lived in crime searching for alien juju while stockpiling alien weaponry while the Expendables made reference to Nigeria as place where a mission had taken place.

In both of these movies, the image of Nigeria is at best degrading and at worst, well I’m not sure what the word would actually be. Conducting a search for “District 9 Nigeria” gives an indication of Nigerians reaction the movie.  Why did the Expendables have to go on a mission to Nigeria?  After all, the country is relatively peaceful at the moment.  The same is true of Tears of the Sun (staring Bruce Willis).  I’ve often asked myself what type of opinions are formed by the viewers of these movies many who probably could not locate Nigeria on a map and who still think that Africa is a country.  Do these movies give us the type of publicity that we are looking for?

While it could be easy to try and blame this on the West and its movie directors/producers that would be awfully trite and be missing the point.  Years ago, it might have the right reaction, but it no longer is simply because we as Nigerians are doing nothing to provide a different point of view.  We’ve resorted to perpetuating this perspective through our own movie industry as a recent article in the The Economist very clearly (even though this was not the intent of the article) states.

I’ve forwarded the article to a couple of Nigerian friends and relatives and to a man (and woman) their reaction was curiously one of pride. Once again, Nigeria, the giant of Africa, via Nollywood was influencing the African continent at large.  I must admit, there is something both cute and funny about Zambian kids trying to speak with a Nigerian accent, who knew that day would come?  However, what caught my eye was the fact that piece highlighted the most common themes in the plots of Nigerian movies as being “juju and Jesus”.  If most of the movies present plot lines revolving around juju, human sacrifice, witchcraft, money making schemes etc etc, why are we surprised that District 9 features a Nigeria settlement characterized by all these attributes? Should we really be offended by it?  We created that image.  We made our bed, we should lie in it and be quiet.

What’s worse is that well educated and informed people who rail against the fabric of society where these themes run rampant, still spend money and time, buying and watching the movies, and further perpetuating the profileration of this perspective by continually investing in the industry.  I wonder how many of my dear friends who are ardent “Naija film” viewers, have a collection of Nigerian movies that they would proudly use as a means of sharing their culture with their non-Nigerian friends especially those from the West.

I believe its time for a revolution in Nollywood but then again, money talks. We need to leverage mass marketing and exporting of movies to present our country in much different light.  It can’t be that the image currently portrayed is the only one we’ve got, can it?

I’m no longer chuckling, I’m angered by it all.  I’m taking a stand.  I’m boycotting Nigerian movies that don’t rise above the muck that we are currently mired in!

One Method To Rule Them All

It’s quite common to see IT organizations with multiple software development groups enforce a single development and/or process methodology across all teams.  I think this is a big mistake and ignores the fact software solutions and teams differ.  A weak analogy to this is parents raising all their kids in the exact same way and ignoring the fact that each child is unique (and terribly more complex in their own right!)

A post by Martin Fowler distinguishes between strategic and utility software.  In many organizations different software solutions occupy different places in the Strategic – Utility continuum and instead of requiring all products to conform to a single process/method, management needs to understand the role each software solution plays in the overall vision of the business and align processes in that manner also taking team on hand into consideration.

Am I suggesting that individual product groups should just be able to do whatever the choose without any direction?  No, not at all.  Management still needs to the set the parameters and frameworks under which methods are used to develop software such as requiring that all teams be agile but leave actual implementations to the teams.