Maxims from my experience.
This is not to define architecture. There are many definitions, some of them more useful than others. This is not to lay down a formal method for practising architecture. There are quite a few.
It is an attempt to express how architects might be living, breathing and feeling architecture, beyond the dry steps of any method or framework. It is about the immersive experience and the sheer pleasure of architectural thinking. If done well, architecture can lead to systems of beauty that delight all its stakeholders. It is to make conscious what I have learnt gradually and subliminally over 20 years. Those who have worked for long in this field may intuitively get it. For others it could seem obviously simplistic or like gibberish. If it is found useful by others it would be satisfying evidence of its validity. It is shared with humility, more with a hope of learning from the discussion than to teach.
It is in the form of brief, haiku or koan-like phrases, left unelaborated to better stick in the mind.
Here goes.
There is no sequence.There are no categories.There are overlaps.There are contradictions.It’s a mixed bag.It will grow and change.
- Draw it, always
- In the end it should have an elegance and simplicity to it. It should look ‘right’.
- Try to minimize the cost, it will lead to better architecture
- Become the customer as you think
- Know that there is no ideal architecture
- Assume that you know very little
- Assume that you are never right
- Begin with these architectural principles for all problems — cohesion & loose coupling. They solve most problems.
- Apply the architectural principle of reuse after those of cohesion and loose coupling
- Think in terms of business domains
- Look for patterns, both good and bad
- Be unselfish
- Read a lot
- Read every day
- Read widely
- Observe the language as you read
- Think. You are wrong, think again. You are still wrong, think again. Now you may be getting somewhere.
- Non-architectural constraints should be applied only at the very end
- Allow inelegant failure of mostly successful non-critical transactions
- Pre-validate for critical transactions to handle failures elegantly
- Think in symmetries
- Take yourself less seriously
- Document it
- Explain like the other person does not know all that you know about it
- Explain like the other person is intelligent
- Improve your vocabulary
- Improve your grammar
- Be excellent in the language you use
- Improve your language every day
- Discuss ideas and concepts with your peers
- Listen. Really.
- Prepare your reply only after you have listened, else you are not listening
- Make the solution as independent of the technology as possible
- Know your drawing can be clearer. Every drawing. Every iteration.
- Follow conventions for drawing
- Follow conventions for writing
- Follow conventions for speaking
- Be meticulous
- Be complete
- Be consistent
- Stick to your role
- Apply an objective method to decide if the data should be remote or local
- Apply objective criteria to decide between integrating components directly or via Enterprise Application Integration
- Give credit
- Learn from others
- It always pays to identify and begin with the options
- Rationally explain your decision
- Decide from wisdom
- Listen to your gut
- If it is right, do the difficult thing
- Stick with it
- Spend 80% of your work time performing your core role
- Spend 10% of your work time on self-development
- Spend 10% of your work time performing non-core roles
- Work no more than 9 hours a day
- Keep your evenings and weekends for yourself and your family
- Be physically fit
- Do high quality work and be proud of it
- Think about operations
- Think about maintenance
- Know well and articulate the technical terminology of your profession
- Know what architecture is
- Understand the various disciplines of your profession
- Always have an end state vision
- Be ready to achieve the end state via intermediate steps
- Start with the actors. IT is for people.
- For everything think levels, hierarchies and sets
- Do not mix types at any level in thought, pictorial models and text
- Encourage quality in your colleagues
- Be nice
- Respect the work, not the title
- Deliver your artifacts
- E-mails, phone calls and meetings are seldom real work
- Do more, manage less
- PPTs and e-mails are not real artifacts
- There has to be an underlying business case
- Given enough money and time, almost anything is possible
- Always think top-down
- Get certified. It teaches you the language and thinking of your guild.
- Explain to non-architects without jargon
- You are not an architect if you can’t draw…..adequately, competently, excellently
- A drawing speaks, to an audience and with a subject. It must speak cleanly and clearly using layout, boxes, sizes, lines, text, colours and legends.
- Abandon the software tool if using it is taking more time than the architectural thinking itself
- Remember that great architecture has often been produced without great technology
That’s it, for now.