High expectations were promised in the title…. what secrets? Is architecture in done the agile way only for certain people initiated in a secret club of and now Dan will tell us all about the rules to follow so we also can become Agile Architects?
The main topics for the day was
- The big picture
- Human factor
Red colour means that I don’t have anything in this blog about these topics.
Now I believe that anybody participating in this tutorial did find Dan inspiring and a very good speaker, especially when he allowed him self drift a bit on topics that he had passion about I like that my self very much.
This blog is not a representation of Dan’s presentation but of my perception therefore it represents more the things I found interesting.
The Big Picture:
“What is agile?” he asked. and some of the answers are
1.) Adapting to new learning
2.) Work iteratively (not only in iterations, but incremental)
3.) Seek, Learn and Use Empirical information rather than theoretical. Here the PlanDoCheckAdapt (PDCA) model was presented. This approach should give us the will to “try some more”.
4.) Continually reducing your ignorance.
I just wounder if no agile developers or like always try to work towards reducing their ignorance!
We are making decisions all the time – why? It’s because we as human we don’t like uncertainties actually we hate it so we want to take/make decision to make sure that these uncertainties are removed or secured for minimizing the Risk. We should instead wait as long as possible before taking the decisions so that we don’t take the wrong decisions and has gathered the right amount of data regarding the issue (empirical data). Then we should experiment with different solutions before taking the Real option.
Are users really able to take the right decisions? Users explains their business problem though the existing system – but don’t assume that the users know what the want – they don’t really know. Henry Ford said “I could ask the customers what they really wanted and they would have said a faster house – Nothing about A-model or like”.
Defer decisions, get date, experiment with different options and then decide when knowing the Real options.
Code life time
The term half life were presented meaning how long time does it take untill you replace half of the code you have written? The argument here is that you should invest more energy upfront in long living code that code with a low “half live”.
The way the company is organized like hierarchy in the change of command, the It systems, the formal and informal communications network and so. All this organization is reflected directly on the architecture which is argued by Conway.
Conway’s law saids something like the Architecture is a projection of the Organization. Now Dan’s conclusion is something like that Organization is constrained by the Architecture.
This means that once the organization and architecture is in place is it very difficult to change due to the interaction there have on each other and explains way it is so hard for a company to become try agile in any department that already has low trust, bad communication or/and other none agile organization patterns.
When doing architecture you must also bear in mind that you are having an impact on the company organization.
Risk is projected into two parameters. The likelihood of a risk to occur and the impact it would have on the business. The likelihood is 1 to 0 while the impact can have tremendous impact like people could die when working with airplane or medicine dosage.
We must find the Price of Reversal for any risk. Not focusing on the likelihood because many risks are going to realized and also many risks we havn’t identified yet. The biggest risk is the risk we don’t know we don’t yet exis. So if the price of Reversal is low we can focus on the impact and pay the price of reversal. Now we are not afraid of risk – yes they will be excecuted but we are able to revert them easily at a low cost.
This way of thinking will stimulate more paying and expirementing which will make better solutions because you also can defer decisions untill you have the data and knowledge.
Agile way is to make the Price of reversal as low as possible making you able and willing to fail fast and often and revert decisions taking in relation to risks.
Now the talk turned focus on how to design. My focus here was on the Simplicity. Simplicity is Clarity of intent, Reasonable, Cognitive dissonance, Choice of solution paradigm.
ROA: Relationship oriented architecture instead of service oriented architecture.
Every sub-domain should have it’s own domain model and when interacting with another sub-domain there must be an interpretation or a Anti Corruption Layer because the same term in one sub domain has one meaning there but in another sub-domain it has another meaning like Customer in a finance sub-domain is focusing on invoicing while a customer in a CRM sub-domain has focus on sales relation matters.
The Metal model
What is your problem domain? You need to ask your self “What is differentiator of our business?” the answer is your problem domain. Then the complexity …
The Human Factor
Terms like Position, NLP, SBI and PARC was presented. I recap these here.
Position by Virginia Satir talks about trying to imaging your communication from 3 different positions.
1. From your self – what is it you like to say
2. From the receiver – What is it the receiver is getting / understanding
3. From an observer not part of the conversation but one who is observing it – what is it the observer will understand.
NLP states that what matters in communication is what the receiver understands and transform into meaning and not what the speaker is saying and try to communicate.
Receiving feedback the SBI way.
State the Situation
Explain the specific Behavior
and describe the Impact it has.
Organisational design consist of (the PARC model)
What can you easiest change?
Is a maturity model in 5 steps
Novice, Advanced beginner, Competent, Proficient and Expert
Novice: Just want to learn the rules with very short term goals and rewards
Advanced beginner: Challanges the rules by trying to change them and failing/learning what the rules is good for.
Competent: Knows why the rules are important.
Proficient: Goal oriented don’t need
The Satir change curve was intraduced which I found very interesting. Lesson learned is that any change must be done in small steps to prevent being in the “pit of despear” to long.