It has been 26 years since I wrote my first commercial software code. With that I mean that I have written code that somebody has paid for. What I did then is to use my knowledge and capabilities within mathematics, physics and software development to deliver a desired functionality to a customer who was working on simulating different flight brakes on different runway surfaces. we both were satisfied with the deal and did more business together. We worked together, exchanged values and were very happy at the end of the day.
That was a happy story. During the 26 years I have, as many others too, been witnessing a war between different «schools» trying to teach software developers and their stakeholders how to work efficiently and what to do on a daily basis to maximize the customer value. Some of the tools we have been using are: Rational Unified Process, Evolutionary Project Management, PRINCE2, Scrum, Kanban, XP, LeSS, SAFe and many others. Common for all is the saying: If you do not implement our framework or process fully, you cannot succeed. In spite of that; we have seen many failing implementations of all methods, processes and practices. What we usually hear from the godfathers, founders or fans of these is that our method, process or practice does not fail, but you failed implementing it! I think we are missing the point when we discuss like this.
The ultimate goal must be to exchange value with the right attributes
The ultimate goal must be to exchange value with the right attributes. With that I mean: As a business you need to get the desired features, functionalities and capabilities implemented within a healthy budget and with the right quality. Your budget needs then to be converted to income to the development team. Nice, nothing new. Does this mean, there is no need for frameworks, processes and practices? No, it means just that we should not make these elements holier than the value we are trying to exchange. You do not need to use a «user manual» to operate your team all the time. What is needed is to follow common sense and build on that common understanding. But, how?
There are two core values which I believe are the main (not the only) keys to all team success. The fist key; Alignment ensures we are going the same way, looking at the same target, and understand the same WHY. The second key; Transparency ensures that there is only one agenda and everyone understands «what is in it for them». Yes, everyone needs to know what is in it for them so they really get their inner drivers to drag them in the direction of self realization and fulfillment. If any team member does the work just because it is her/his job, you will get less motivated people with different agendas and different level of contributions. This will result later in bigger impediments and conflicts. Please do not misunderstand me! There is nothing wrong in having a job just as a job. But, if your goal is to build high performance teams then you need to build a team with top motivated people who share the same agenda and drag in the same direction no matter what happens.
What else we need is to ensure continuous focus on the target and that our actions are bringing us in the right direction toward that target. We also need to adjust if we see that we are moving in the wrong direction or if we see that the target needs to be adjusted. This is done by close collaboration , open and honest communication translated to practices like daily briefing/stand up, DevSecOps and other good practices we have experienced in many of the frameworks, processes and methods mentioned above.
The only silver bullet is using common sense to create customer value
I am teaching and certifying professionals all over the world in Scaled Agile Framework and other disciplines, but what I always preach about is that there is no silver bullet, apart from using common sense to create customer value. Do not stick to a Framework and be its slave, but do not customize it before you really understand it. All the mentioned Frameworks are good for different kinds of enterprises, but used with no common sense the implementation will fail. solution to this is not to ditch the Framework as bad, but to deal with the root cause to the problem, namely: we do not use common sense and prioritize customer value.
One simple, but powerful setup in a team is as follow:
- Create a cross functional team with all competencies required to deliver the desired value your enterprise is producing usually
- Bring the customer into the team in person either on daily basis or at least weekly so feedback cycles are short and there is a direct interaction between the requester and the people developing the value
- Let the team decide on a target and then plan how to reach it. The target should be reachable in reasonable time, like 6 months period.
- The team together with the customer breaks down the plan into smaller cycles/iterations and sub targets and start execute on them keeping transparency and alignment in mind. Iterations do not need to be bound on time, but must have a specific value as deliverable. I prefer to also bound them to time, but not as an absolute requirement.
- On daily basis there has to be a briefing talking about the team progress toward the sub targets
- On weekly basis there has to be a briefing to check progress toward the overarching target and adjust if needed
with other words: Do always have the deliverable value as your target no matter what framework, methodology or process you chose to use!
Of course this topic can be discussed in much more details and from different perspectives
0 kommentarer