It’s not immediately obvious why values are important to success. To me, it at first seems like the process dictates values and principles attached to them. To some extent this is true. A waterfall process, by its nature dictates that planning and control are important values. Agile dictates that adaptation is key. But neither process gives insight into how team members will interact. Will they collaborate to solve problems among themselves and with their business sponsors and customers? Can they openly raise issues? How will they even involve the customer? More in depth shared understanding is needed to bring success.
I have seen how the values implemented with a process can make all the difference in ultimate success. As Dee Hock, the founder of Visa once said:
Simple, clear purpose and principles give rise to complex, intelligent behavior. Complex rules and regulations give rise to simple, stupid behavior.
Insuring that the values are explicit, clear and agreed to among and across participants allows for better interaction and has a large impact on success. It supports an environment for innovation and creativity by providing a touch stone to ensure that motivations are healthy and collaboration productive throughout any process. It allows the process to evolve and deal with complexities that may not have even been envisioned when originally conceived.
So, where should we look to define values that are central to success in development? In my last post Agile on a Single Page, I suggested we start with the agile poster from VersionOne, the Agile Manifesto and the Declaration of Interdependence. Finding common ground across these sources is a good starting point for the discussion. Mapping affinity from these three sources, I get:
|Agile Poster||Agile Manifesto||Declaration of Interdependence|
|Adaptability||Responding to change over following a planWelcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.||We expect uncertainty and manage for it through iterations, anticipation, and adaptationWe improve effectiveness and reliability through situationally specific strategies, processes and practices|
|Transparency||Customer collaboration over contract negotiationWorking software over comprehensive documentationWorking software is the primary measure of progress.||We deliver reliable results by engaging customers in frequent interactions and shared ownership|
|Simplicity||Simplicity–the art of maximizing the amount of work not done–is essential|
|Unity||Individuals and interactions over processes and toolsBusiness people and developers must work together daily throughout the project.The most efficient and effective method of conveying information to and within a development team is face-to-face conversation||We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference|
|Customer Value||Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.||We increase return on investment by making continuous flow of value our focus|
|Cadence||Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.|
|Accountability||Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.The best architectures, requirements, and designs emerge from self-organizing teams.||We boost performance through group accountability for results and shared responsibility for team effectiveness|
|Quality||Continuous attention to technical excellence and good design enhances agility.|
I see utility in giving single word labels to the similar concepts and have added them where the agile poster did not apply. Short labels allow complex thoughts to be communicated in a short hand and give teams the ability to quickly call forth values in discussions. There is also a need to spell out in more detail what is meant by these simple terms to promote understanding.
Your organization is not required to have this same set of values. I would, for example add the need for simple, timely, shared metrics to the Transparency value statement. I might add a social aspect to it as well and change the title of Unity to Collaboration. You may also add to, delete modify or enhance these values to fit unique aspects of your team or organization. The important point is that values should be stated, understood and used through the course of normal interactions across the execution of a development process. Make them part of charter creation and use them to guide productive interaction and decision making.