My Understanding of Architecture as a developer and PM perspective

I have been working as a software engineer over 10 years, although I was as Project Manager over 2 years before I came to Germany. In this 10 years,  I met and worked different teams and cultures and many projects that some successful and some failed.

The reason wrote down my understanding today is to reflect in the future.

To build a good architecture is TAO.

TAO is  a Chinese word signifying ‘way’, ‘path’, ‘route’, or sometimes more loosely, ‘doctrine’ or ‘principle’.

Architecture with stakeholders viewpoint

  • A system architecture is built to address the needs, concerns, goals, and objectives of its stakeholders.
  • Designing an architecture should reflect and balance stakeholders(investor, manager, PO, PM, QA, Dev, Ops, customer) different needs.
  • More communication is to avoid the defect of design and the lack of different concerns.

Architecture capability on no-function requirement

  • Easy to understand,  Understandability. Good documentation, clean code, Unit test are elemental to understand the system.
  • Easy to maintain, Maintainability. It depends on how easy to change, replace, deploy, recover the system at present and in the future.
  • Easy to extend, Extensibility. Simplicity , Modularity, Scalability, Autonomy are helping to extend system smoothly.
  • Time is the key factor to staying productive and cost-efficiency. In rapid web development, architecture measured by the cost of time.
  • Cognitive complexity and control it, keep it simple with system thinking.

Architecture made by iteration and progression

  • Building Minimum Viable Product(MVP) at first, it helps us get fast feedback from customers. Design driven in UX is minimal MVP.
  • Over Engineering and scope-spreading are big risks. To verify the architecture is to put into the market in earliest possible date.
  • Architecture is not made by design once but by evolution in long-term, there is No Silver Bullet.
  • To look failure in the face, know it, learn it, then improve it.

Architecting for closed loop feedback

  • No measurement, no improvement
  • Metrics driven development(MDD), using Metrics when taking decisions.
  • Fast feedback loop is agile, metrics is not only Application, Infrastructure, but also business.
  • Loop is a closed and repeat system which likes collection data, measure, react and repeat.
  • Build automated processes included developing, release, deployment and monitoring first before implementation in detail.

Architecture and organisation culture

  • Architecture is constrained to produce designs which are copies of the communication structures of organisations.
  • If architecture is an iceberg, technology, process, tools are upon the water, but under the water are the employee and culture.
  • Continual experimentation, taking risks and learning from failure.
  • Understanding that repetition and practice is the prerequisite to mastery.
  • Continuous delivery by continuous learning, encourage engineer to learn in working time.
  • Choosing relationship over correctness.

Posted in

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.