Skip to main content

Incrementally Designing Architecture

Last post 05:57 am December 16, 2015 by Ian Mitchell
5 replies
07:23 am December 14, 2015

Hello everyone!

I am sure a lot of scrum.org readers have a great experience with the Incremental Design. And I hope that you can share with me your answer for that question: How to be if I need to change the Architecture, but new changes will not compatible with the primary version. It means that I need change all old classes usages, or create the addition logic for the compatibility, when I leave both old and new version? May be I don't know other opportunities.

That topic I've created while reading the great book: "The Art of Agile Development" by James Shore and Shane Warden


12:25 pm December 14, 2015

If there were problems when revising the architecture, how would you know? Some problems might break the build, but others might be run-time incompatibilities. Is there an automated test harness which would then fail?


06:42 am December 15, 2015

It's very simple we change BaseClass with a lots of dependencies and after that compilation of the project will be broken. And to fix that I have to change the every depending class. And unfortunately for all this work I need more time then 1 sprint. Maybe you know, how to be in that case?


11:05 am December 15, 2015

It sounds like you need to gradually refactor the code using better design patterns. I'd suggest using a wrapper class and maybe dependency injection, for example. The wrapper would become the base class. It would support the old brittle contract, and also a new one that is better decoupled or encapsulated. Then you gradually wean the dependent classes away from their brittle relationships by refactoring a few of them each sprint.

I'm sure I've read something by Martin Fowler about this approach. In any case I'd google for his programming patterns as they are a good source of ideas.

Note that this will only address build dependencies. If you don't have an automated test harness in place, you can still get run-time errors, even with judicious refactoring.


05:39 am December 16, 2015

Hi Ian!

Thanks a lot for advices. And can you give some tips for scrum master in that case. Should I learn different coding approaches and show it to my team or I appear the problem to the team(too much refactoring in one sprint) and they should solve it?


05:57 am December 16, 2015

You should take this matter to the team so they can solve it, and help them. A Scrum Master should demonstrate servant-leadership.


By posting on our forums you are agreeing to our Terms of Use.

Please note that the first and last name from your Scrum.org member profile will be displayed next to any topic or comment you post on the forums. For privacy concerns, we cannot allow you to post email addresses. All user-submitted content on our Forums may be subject to deletion if it is found to be in violation of our Terms of Use. Scrum.org does not endorse user-submitted content or the content of links to any third-party websites.

Terms of Use

Scrum.org may, at its discretion, remove any post that it deems unsuitable for these forums. Unsuitable post content includes, but is not limited to, Scrum.org Professional-level assessment questions and answers, profanity, insults, racism or sexually explicit content. Using our forum as a platform for the marketing and solicitation of products or services is also prohibited. Forum members who post content deemed unsuitable by Scrum.org may have their access revoked at any time, without warning. Scrum.org may, but is not obliged to, monitor submissions.