Being a software architect involves much more than just knowing technology. Aside from being an excellent developer, you also have to be a leader.

Expectations

It is expected of you to:

  • Analyze technology, industry and market trends and keep current with those latest trends.
  • Analyze current technology environment and recommend solutions for improvement.
  • Ensure compliance with the architecture
  • Have exposure to multiple and diverse technologies, platforms and environments
  • Possess exceptional interpersonal skills, including teamwork, facilitation and negotiation
  • Define architecture and design principles to guide technology decisions for the enterprise
  • Understand the political climate of the enterprise and be able to navigate the politics.

Aspects

Main aspects of this role are:

  • leadership and communication
  • technical knowledge
  • business domain knowledge
  • methodology and strategy

Leadership and Communication

Three C’s:

  • communication (effectively communicate ideas, concepts, issues and solutions to stakeholders)
  • collaboration (get stakeholders involved in the architecture process and solicit ideas and feedback early and often)
  • clarity (articulate the architecture solution in clear and concise terms as appropriate to each stakeholder)

Translation skills

  • “Business is constantly changing to meet demands of the marketplace” -> Agility, Maintainability
  • “Due the new regulatory requirements, it is imperative that we complete end-of- day processing in time” -> Performance, Scalability
  • “We need faster time to market to remain competitive” -> Agility, Maintainability
  • “Our plan is to engage heavily in mergers and acquisitions in the next three years “-> Flexibility, Scalability, Integrations.
  • “We have a very tight timeframe and budget for this project” -> feasibility

Technical Knowledge

Triangle of knowledge

  • at the top: stuff you know (technical depth)
  • second level: stuff you know you don’t know (technical breadth)
  • third level: stuff you do not know you don’t know

Focus on the second level.

Multi-platform knowledge

  • golden hammer antipattern - one platform to rule them all
  • overview multiple platforms to solve the problem

Business domain knowledge

It is important that an architect understand the business.

  • communicate better with the business
  • better understand business goals, issues and trends
  • gain trust by speaking the business language
  • design the system to better handle the future changes
  • better determine the correct architecture pattern

Methodology and strategy

Once you know where to go, how do you get there?

Be aware of many different methodologies. You can influence on the business to choose right methodology

Sample scenarios

Scanario 1. Do not choose Waterfall Model

  • incomplete requirements
  • you expect a lot of change
  • tight budget and timeframe

Scenario 2. Do not choose Scrum or agile

  • large and complex project
  • multiple remote teams
  • integrated maintenance

Scenario 3. Hybrid

  • try to create a hybrid to strike the right balance

Regardless of what you do, as an architect you have to make it work!

References

  • 97 Things Every Software Architect Should Know
  • A Practical Guide to Enterprise Architecture
  • Software Architecture in Practice 3rd Edition