14 Principles of a Software Architect in an Agile Environment

May 19, 2015
  1. Facilitate rather than dictate architecture
  2. Negotiate for the reduction of technical debt
  3. Lead by example
  4. Embrace emergent design
  5. Refactor relentlessly, harvesting application idiomatic patterns
  6. Design with the expectation of change
  7. Extract Embedded Frameworks
  8. Make design choices at the last responsible moment
  9. Do not try to predict the future
  10. Rely on tightly coupled team discussions to make and socialize design decisions
  11. Choose simple solutions that can be replaced later once more complicated design is required and when the limitations are more well known
  12. Do not enable those would use architectural considerations as a pretext to force waterfall processes
  13. Rely on team members to make rational, adult decisions regarding code, and use refactoring as a mentoring opportunity
  14. Do the minimum amount of upfront design necessary to clear easily visible pitfalls, but expect to have to pivot at any moment.

Comments are closed.