Return to site

SCRUM: An Agile Approach to Software Architecture by Gene Gotimer

· scrum

Software architecture is the design and specification of the rules by which software will be built and by which components of the system will behave and interact.

Architecture also includes establishing design considerations for the development team.

When adopting agile, enterprises often ask:

“When do we create our software architecture?"

Response is,

“Approach architecture just as we approach everything else—by using agile.”

 

 

DESIGNING ARCHITECTURE BASED ON AGILE PRINCIPLES

👌 Working software is the primary measure of progress.

Architecture specifications may be important, but only when we get working software.

"working software over comprehensive documentation"

 

⬆️ The best architectures emerge from self-organizing teams.

"Ivory tower architectures" developed by architects may not fit.

The team knows what they actually need to build architectural compliant code.

"the customer for the architecture is the development team".

Collaboration involving someone who will actually be using the finished product will lead to an architecture that fits the team needs.

 

🖼️ Simplicity—the art of maximizing the amount of work not done—is essential.

Up-front architectural designs causes more work for a payoff that never arrives.

Design incrementally along with the code, and refactor it as you go.

 

🚀 Build projects around motivated individuals.

 

🏆 Continuous attention to technical excellence enhances agility.

Agile doesn't mean "no design" or "no architecture."

A well thought-out architecture makes it easier to change directions.

Too much architecture can make it more difficult to adapt.

 

🪞 At regular intervals, the team reflects on how to become more effective.

By designing iteratively, the team can adjust the architecture as it is tested.

 

 

FITTING ARCHITECTURE INTO THE AGILE PROCESS

In order to be agile, we must develop the architecture in an iterative ➿ manner.

There is a trade-off in picking 🤷 technologies that the team wants and that are compatible with the rest of the enterprise.

Like any mature agile process, an agile approach to architecture relies on doing just enough definition 📄📄 up front to get started.

Prior to the first sprint, a high-level 🔭 enterprise or system architecture should be created.

🅰️ Sprint review meetings should present how each story fits into the bigger picture of the whole application and the enterprise.

🅱️ Sprint retrospectives should include architecture and design in the discussions of what is working and what isn’t.

 

 

ARCHITECTURE SHOULD BE TREATED LIKE ANY OTHER PART OF THE AGILE PROCESS

🧙‍ By starting with experienced architects and industry best practices

✅ By incorporating retrospection and review in the process

⚙️ By driving that feedback using quality tools

🧑‍💻 By collaborating with the development teams

 

#scrum #emerging #architecture

Full article👉 https://www.agileconnection.com/article/agile-approach-software-architecture

Udemy👉 https://www.udemy.com/course/professional-scrum-developer-certification-prep-200-question/?referralCode=49CBC321F20A7E381F7C