Thoughts on Software Development Methodologies and being Antifragile

IT development processes are an attempt to define patterns of behavior for each of the participants in identifying, designing, developing and delivering software, hardware and services.  In general processes are needed to organize people as they work toward creating the value needed.  I have found that people in general want to do a good job.  It has been rare that someone has said to me, “I’m going to mess this up, so I can look bad, have to work on it again, and ensure my manager looks bad.” It just doesn’t happen, assuming a modicum of sanity.  So why is it that there are numerous methodologies, why is that coaches and PMOs are needed to encourage, train, coach, hound, demand, or worse to get work done?

Understanding is rooted in behavior as is any endeavor where people are involved. Of course, where people aren’t involved I suppose it really doesn’t matter.  Here are some of my observations.

“Human will generally do that which is easiest.”  Of course there are exceptions and you probably think you’re one of them. The exceptions to this are easily identified in history and current affairs.  These are entrepreneurs, politicians, inventors, writers, painters, sculptors; those that create, organize and build. My experience tells me that this is not most people.  Too many find comfort in the lives and foibles of others as presented in books, movies or TV shows. Other popular “comforts” are video games and sports. The number of conversations I hear around sports and video games is disturbing.  Consequently and getting back to IT methodologies, since humans tend to do that which is easiest most will shy away from complicated processes, having to learn a new methodology language, work with coaches to learn a “new way”.  Leaders of these processes must overcome the natural bias of humans to avoid work and do what is easy.  People don’t follow up, because that requires effort, they don’t complete tasks on time or provide real commitment because that is actually hard. People fail to properly plan because that takes brain power.  So what do leaders do: create processes, methodologies, and procedures.  And what does it cost to implement and maintain these artificial organizational initiatives?

Instead of a fixed methodology we need a way to bring diverse people together under a common banner. This needs to be done in a way that instills a desire on the part of the team to perform work, to collaborate, and to succeed in a more natural way.  There is no one size fits all. What is needed is a loose framework around which teams can naturally fit together to get work done.  The teams would be self-organizing, with a leader committed to the success of others first, and with each person accepts ownership of his or her part.  One approach that gets close to this clarion call is Conscious Agility. With roots in several methodologies and deep understanding of human nature, Conscious Agility provides a framework for organizing to achieve value.

Antifragility is a word coined by Nassim Taleb in his work “Antifragile: Things that Gain from Disorder”. Antifragility is the idea that things that grow and adapt from stress, the unknown or from disorder are more adaptable, able to change, and thus are better off.  This concept describes why fixed methodologies are less than ideal. They are inherently fragile while attempting to be robust. Take SAFe for example. The attempt is to take Agile processes and scale them to handle large complex efforts. In the process new language and terms are introduced. New dynamics are required as teams attempt to work the concepts. All this has led to an industry to provide training and coaching. I have to ask, how useful is a process that requires coaching to maintain.

I’m not advocating abandoning methodologies. They are needed to combat lethargy. Processes are needed to help organize work efforts. What I am advocating is the use of a simple process that takes into account human nature and works with it instead of trying to mold it.  This is one of the reasons Si Alhir and I have authored and are editing a new book, “Exploring the Practice of Antifragility“.  As we explore the practice of antifragility I hope we begin to take in the human element in our work.

til next time

Software Methodologies

Software development methodologies remind be of salmon desperately swimming upstream only

I’ve been working in Information Technology for over twenty years. In that time I’ve obtained experience in software quality assurance and testing, in business and system analysis and more importantly project management. A number of years ago I decided I needed to go to graduate school and ended up completing three masters degrees one of which is in Project Management. I also have a PMP certification.

For several years I’ve been experiencing mental dissonance concerning the efficacy of the various software development life cycle methodologies.  The genesis of this understanding is rooted in the difficulty I and many other practitioners have experienced in implementing these various methodologies.  All of them, waterfall, agile, sAFe, Spiral, Rapid, Kanban, etc. experience varying levels of difficulty being implemented, used and maintained.  From a logical perspective one might gravitate toward a waterfall approach since it is sequential, seems logical, and has been around a long time. At one point we became enamored with Kanban and other teaming approaches, but these never took root. Then someone thought up Agile which in theory should greatly accelerate delivery, reduce cycle time and allow teams to form to do the work. Has anyone wondered why a methodology requires supporting roles, scrum masters and agile coaches.  Usually in a system these are the kind of roles required to interject energy to overcome inertia. A lot like the instinctual imperative salmon demonstrate forcing them to swim upstream.

When all else is equal, humans have tendency to do that which is easiest.

So what is the answer?  Well, another saying I have is if you’re not taking into account human dynamics you’re destined to fail.  This of course begs the question, what are the human dynamics?  I think, of the top of my head, the following are key.

Need, Desire, Ability, Vision, Reward

I am not advocating any specific methodology with these. An approach to obtain value/results can develop in the moment to address the problem or request at hand.


There must be a reason to perform work; a requirement that someone is willing to expend energy, money, or time to obtain.  This need must be communicated in ways where all those who may affect the result can achieve understanding of what is wanted. This communications may need to be in various modalities to accommodate the worldviews of the persons involved. For example, some cultures have a difficult time saying no and will often say yes due to social imperative. Leaders in this situation must understand this and work to ensure “no” is in the vocabulary.  The point is no one way to present the need is workable.


There must be a desire on the part of the people involved to be involved. This often stems from several places. The most common is the desire to make a living. Another source of desire is can stem from relationships or the emotional reward obtained when doing something for someone. This source of desire can be powerful but is usually limited to those in the immediate circle of each person.  There there’s the ethical imperative or doing what is right. This is a strong source of desire, but not so prevalent in a for profit venture.  Localized one sees this happening when a person commits to doing something and thus feels ethically obligated to deliver. The most rare, I think, and the most powerful is desire that comes from a sense of self or doing something because you want to whatever the personal reason may be.  For me as an example, my passion is to leave people better than I find them, consequently my interactions with others is motivated by my internal desire.


There are two key areas or types of ability to which I refer: technical ability and people abilities.  Among technologist having the skills, education, talent, wherewithal to achieve the work is too rare and too misunderstood.  By misunderstood I’m referring to a too common lack of appreciation for ones own inadequacy. I find most people have an inflated concept of their own abilities, including me.  This is why mature companies provide support for technologists in the form of training, seminars, webinars, libraries, etc. Further, encouragement to obtain certifications and learning as a part of ongoing development is expected.

Unfortunately a far too common lack of ability is among leaders.  My experience tells me there are at least two reasons. One, leaders promoted from technology ranks too often do not have the people skills to succeed as a leader, and two leaders don’t exhibit the “need” and “desire” to develop the ability to manage people. Very few people have inherent abilities relative to helping people grow and develop. This lack of natural tendency requires study, learning, and experience to develop. Great leaders are said to constantly be reading something, usually related to management, teams, the so called “soft skills”.


“Where there is no vision, the people perish.”  Vision provides the context around which the work is performed. Vision also contributes motivation to the team by providing defined goals and usually a timeline. Vision consists of the requirements, value proposition, descriptions, and any other information that helps define where the team/work is going.


Beyond the expected compensation for the time spent, people thrive on reward.  Even the smallest token of appreciation has beneficial effect: a smile, a kind word, a praise, a card, etc. Almost anything that expresses an out of the ordinary token of gratitude will have a positive impact.  The key to successfully giving reward is to be sincere, to start with heart.

I’ll more on this subject over the next few weeks and months exploring alternatives and nuance.