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.