Practical Principles of IT Architecture
Maxims from my experience
This is not to define architecture. There are many definitions, some more useful than others. This is not to lay down a formal method for practising architecture. There are several.
Instead, it is to express how architects may live, breathe and feel 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 patrons.
It is to bring to consciousness what I've learned gradually and subliminally over 20 years. Those who have worked long in this field may intuitively get it. For others, it may seem simplistic or like gibberish. It will be satisfying evidence of its soundness if you find it helpful. I share it with equal hope of learning and teaching.
The form is brief haiku or koan-like phrases left unelaborated to stick in the mind better. There is no sequence. There are no categories. There are overlaps. There are contradictions. It's a mixed bag. It'll grow and change.
Here goes.
- Draw it, always.
- In the end, it should have elegance and simplicity to it. It should look 'right'.
- Try to minimise the cost, and it will lead to better architecture.
- Become the customer as you think.
- Know 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 cohesion and loose coupling.
- Think for 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're mistaken; think again. You're still mistaken; think again. Now you may be getting somewhere.
- Apply non-architectural constraints only at the end.
- Allow inelegant failure of generally successful non-critical transactions.
- Pre-validate critical transactions to prevent failures elegantly.
- Manage exceptions, don't let exceptions manage your architecture.
- Think in symmetries.
- Take yourself less seriously.
- Document it.
- Explain like the other person does not know all you know.
- Explain like the other person is intelligent.
- Improve your vocabulary.
- Improve your grammar.
- Be excellent in the language you use.
- Improve your language skills every day.
- Discuss ideas and concepts with your peers.
- Listen. Really.
- Prepare your reply after you have listened, or else you aren't listening.
- Make the solution as independent of the technology as possible.
- Know that 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 used should be a copy.
- Apply objective criteria to choose between integrating systems directly or via queues, brokers, and gateways.
- Middlemen are expensive. Connect directly. Suppliers and consumers can speak one language and take care of themselves.
- Let systems signal each other for short sequences like a pop band.
- Use an orchestrator for long, complex sequences like a symphony orchestra.
- Give credit.
- Learn from others.
- It always pays to begin by identifying 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 and articulate well the technical terminology of your profession.
- Know what architecture is.
- Understand the disciplines of your profession.
- Always have an end-state vision.
- Be ready to achieve the end state step-wise.
- Start with the actors. IT is for someone.
- For anything, think layers, hierarchies and sets.
- Do not mix types at any level in thought, pictorial models, and lists.
- Encourage quality in your colleagues.
- Be nice.
- Respect the work, not the title.
- Deliver artefacts.
- E-mails, phone calls and meetings are seldom real work.
- Do more, manage less.
- PPTs and e-mails are not genuine artefacts.
- 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 profession.
- Explain to non-architects without jargon.
- You are not an architect if you can't draw — adequately, competently, and excellently.
- A drawing speaks to an audience with a subject. It must speak cleanly and clearly, using shapes, lines, text, layout, sizes, colours, and legends.
- Abandon the software tool if it takes more time to use it than the architectural thinking itself.
- Remember that great architecture has often been produced without advanced technology but with advanced thought.
That's it for now.
Shashi Sastry quality-thinking.com
Please consider Medium membership to clap, comment, highlight, and get full access to my stories and those of other excellent writers. (It's only $5 a month. Give it a go!)





