When the process is lost, there is good practice. When good practice is lost, there are rules. When rules are lost, there is ritual. Ritual is the beginning of chaos [6] But even chaos can be controlled some way…………….
And here is the Way !
From quote above it is trivial to found, that best way to control the chaos is not to get into it…. So the goal here is to show the way how I try to not get into the chaos (using some processes, good practices, rules, rituals, patterns, frameworks like Scrum etc) and able to archive my objectives…
But even in the case if I get into the chaos for some reasons (yes, it happens sometimes), I still be able to control it – using some of next principles and my human brain!
Definitions:
- Principles describe “how I get there” or even better to say “how I not get to the chaos and get job done”
- Objectives describe “what I trying to achieve”
The Mix (random order):
Individuals (“Value People”) and interactions (“Communicate!”, “Conway’s Law” [10]) over processes and tools [1]
Highly motivated, talented, professional individuals and interactions usually have more value, than best processes and tools (while sure processes and tools are also very important. But without right team – useless!).
Working software over comprehensive documentation [1]
Focus on working software and create only documentation that is required to build (support, maintain) working software, not more!
Customer collaboration (“Communicate!” again) over contract negotiation [1]
Collaboration with customers and early feedback are highly important, even more than best Contract (Agreement) or full documentation…
Responding to change over following a plan [1]
Team want to develop BEST software and always welcome any changes that made software better (and usually increase business value). Iterations / micro management help team to follow plans that changes frequently (because plan usually valid for one or few iterations)
Highest priority – satisfy the customer [2]
No comments… Ah, sorry just one – in case if you develop software for yourself (means that you – customer) this principle become trivial
Early and continuous delivery of valuable software [2], i.e. RERO (Release Early, Release Often) [9]
Same idea again – micromanagement! Get feedback early, adjust your plans, release frequently WORKING and tested valuable software!
Give team the environment, support what team need and trust team to get the job done [2]
Changed from “individuals” in original ([2]) to “team” for few reasons: – it is important to give environment and support for all team members, not just single individuals – it is important to trust team, while it is not always a good idea to trust selected individual from business point of view
Working software is the primary measure of progress [2]
Amount of business domain knowledge is the secondary measure of progress
Continuous attention to technical excellence – “Deliver Quality” [2]
“Build Less” [7] and Simplicity: KIS and KISS [3], “Less is More”
DRY / DIE / OAOO [5]
Self-organizing teams [2]
Trust inner vision [6]
Allow things to come and go [6]
Keep heart is open as the sky [6]
Available to everybody / Share yourself[6]
Those who do not have a clue are still debating about the process. Those who know, JUST DO IT [6]
Find solutions which meet the goals of ALL stakeholders
Fix Time and Budget, Flex Scope [7]
Don’t “Fake Enthusiasm” [7]
Build something you can manage (“Can You Handle It?”) [7]
No Silver Bullet [8]
Limit WIP / Reduce Your Choices / Stop killing yourself with choices[11]
S.O.L.I.D[12]
Don’t Sweat the Small Stuff / Identify the Essential and Eliminate the Rest[13]
Set yourself free from manipulative relationships[14]
Living in the Present Moment[15]
Deal only in the truth[16]
GOOD IDEAS alter the power balance in relationships. That is why GOOD IDEAS are always initially RESISTED.[17]
“Whenever you find yourself on the side of the majority, it is time to pause and reflect.”[18]
To be continue…
References:
[1] Manifesto for Agile Software Development
[2] Principles behind the Agile Manifesto
[3] KIS Principle
[4] SOA Manifesto
[5] Don’t repeat yourself
[6] The Tao of the Software Architect
[7] Getting Real
[8] No Silver Bullet
[9] Release Early, Release Often
[10] Conway’s Law
[17] Ignore Everybody: and 39 Other Keys to Creativity. by Hugh MacLeod
[18] Mark Twain