Get Agile
Agility means being able to quickly change direction

Agile Engineering is a methodology that promotes iterations. open collaboration and adaptability throughout the lifecycle of the project

Agility has also effected how we model; agility has shifted emphasis away from models as prescriptive specifications and towards models as communication and ideas generation aids.

Refactoring is all about building from the bottom up; if we rely on a pure refactoring based approach we may be giving ourselves extra work. Sometimes it pays, especially near the start of a project, to research the design solution space, draw some pictures on a wall, talk to some experts, i.e. do some up front light weight modelling to try and get on the right track from the start. I like to call this establishing a solution bridge head, it’s about establishing a foothold in the solution space while at the same time realising there is still a lot of challenges ahead.

Another agile trap, is that you find yourself on a false summit, you have reached what appears to be the peak because every way is down from this point, if you could see through the fog you would note that there the true summit is still to be reached. There are some code smells that you can’t refactor away from, you need to raise your head up from the code and use modelling to help plan the next leg of the journey.

Formal Models

Ideally models should be carried easily around in people’s heads, but for some classes of problems we need to apply more rigour to our models, we need to be able to clearly show how for example sub second responses can be achieved across terabytes of data. Non functional constraints like this can’t normally be safely dealt with through a mix of pure refactoring and creative modelling, instead we need to safely and unambiguously capture in a space outside of the production code. Not very agile I know, but that’s real life.



Agile Mind Map
Enlarge Mind Map

Contact us to discuss how CSE can help
phoneT: +3531 700 5427
Copyright © Centre for Software Engineering
Website: Red on Green Design