A great architect will:
- be a coach
- be an expert – have instinct
- be an influencer
- have the ability to understand what’s in place and tell stories about it
- have empathy to understand what is true for others not just self
- have humility and humor
- have technological and social curiosity
An architect often turns up to find a bit of a mess. A classic is SOA gone bad, with clients coupled to WSDL, WSDL coupled to methods and multiple duplication of methods across the services.Â This could all be deployed upon a flaky architecture; a particular version of a software stack, with known issues rectified in later versions, with a crazy bit of EJB. To add to the problem you may find yourself with smart developers in silos.
Start by doing nothing, listen, listen and listen some more. But, take into account that all you hear may no be true.Now it’s time to set a strategy for the future (give yourself air cover), once you have a strategy:
- make sure you are moving on and not just re-hashing the old, but you may need an interim architecture to get you to utopia.
- make sure the team are with you and change the culture as appropriate – rotate roles – encourage coaching – future ambassador/architects
- keep to the strategy and use the right technology stack
- introduce bounded contexts and shape to the codebase/services
- make it easy to share knowledge – make sure the stand-ups are effective, not just news.
- if it’s not working be honest so you can get it right
Note: pairing is just helping, easier to sell in.
Epilogue (1)- Technical aims
- “Good” SOA
- Clear context of boundaries
- Happy team – moving in the same direction
- systemic and sustainable organizational aims
Epilogue (2)- Learnings
- There’s always a reason -positive intent (whatever someones doing they are trying to help)
- Have and be a shaman -people who can explain why
- Strip away everything you can – until it breaks, your simplifying the system
- use transitional architectures (think of it as scaffolding whilst you complete the building)