What Pragmatic means in Software Architecture?

We are currently in the world of rapid software development using agile methodologies where fast and frequent delivery of software is paramount. This is done through 2 week sprints providing customers opportunity to view and provide feedback on the software as it gets developed.

This definitely brings in the discussion around how much architecture work needs to be done before or whether it needs to be carried out during the Sprints? In my experience I would always recommend a Sprint 0 which provides ability to do enough Architecture to get the Development team understand on the technical aspects of the software to be developed and reviewing them as part of the Sprints so that what was proposed got delivered.

Understanding what is really required for the Development team to get started is what I think being pragmatic. This will avoid doing too much upfront design or doing nothing.

  • P: Promote collaborative work that involves all team members
  • R: Reduce risks and uncertainties
  • A: Adhere to minimalism and simplicity principles
  • G: Gather key elements to outline the architecture during your initial timed-boxed iteration 
  • M: Modify the design throughout the development life cycle to adapt to emergent needs 
  • A: Address both functional and non-functional requirements
  • T: Try out theoretical concepts and leverage past empirical experience
  • I:  Invest in known requirement instead of hypothetical future needs
  • C: Concentrate on tasks that support the development team

Reference https://www.ibm.com/developerworks/community/blogs/jlmarechaux/entry/about_pragmatism_in_architecture3?lang=en

Comments

Popular posts from this blog

Architecture diagram using Visio Stencils

The Death of the Architect

Communication skills for an Architect