Flexibility Zones Architecture

Flexibility Zones Architecture is based on the idea that you can define which parts of the project need to be flexible, and which are more rigid. In this way, one can separate the code to two parts, and treat each one in the methodology that suits it better.

Usually, the flexibility zones are known from the start. They are the places where one is not really sure what to do, or how to do it, or what the requirements may be. On the other hand, a big part of the project is well known, the solution will be obviously rigid, and the requirements are not likely to be altered. In those areas, we don't want to pay the overhead of being "prepared for rapid changes", but wish for a stable interface.

A common example for Flexibility Zones Architecture is a FrameWork based architecture: The framework itself is a non-flexible zone, and the rest is flexible (for more see PatternLanguage for FrameworkConstruction).

The EclipseIde is built according to Flexibility Zones design - The flexibility zones are called "extension points", and you can add there extensions, that can have their own extension points.


The TgpMethodology uses Flexibility Zones Architecture as a common ground for building a project. Briefly, The flexibility zones are created and maintained by BusinessProfessionals and programmers, in a declarative, confined environment (TgpArchitecture). -- ShaiBenYehuda and OriInbar


Discussion


TGP doesn't look like agile to me - it even says in the figure above: "...modification of the foundations due to new insight is expensive", which, as I understand it, is completely opposed to the usual agile approach that changing software is not that expensive, and that you are supposed to have new insight as you progress through a project!

Everything has a price. TGP is not XP, it is not as dynamic. TGP invests in planning and modeling at front - at the setup phase, when developers and BusinessProfessionals establish the VisualSharedModel. It is agile in the sense that most of the development will be done in Incremental mode with collaboration with business professionals; its architecture is tuned for dynamic changes in the fields defined by the business professionals. Please see the comparison between TGP, ExtremeProgramming and The WaterFall methodologies in OtherMethodologiesAndTgp. -- OriInbar

As far as I understand ExtremeProgramming, the claim is that changing software happens all the time, and therefore it must be cheap. XP makes it comparatively cheap by adding a lot of automatic tests, by making the team very small, and by extensive use of re-factoring tools. XP has its overhead, and FlexibilityZonesArchitecture claims that you can usually identify beforehand in which parts of the software you need agility, and in which parts the agility is not so important, and save time and effort. -- Moddy


CategoryAgileMethodology


EditText of this page (last edited February 18, 2013) or FindPage with title or text search