With capacity, came complexity
Amount of interactions between a number of entities. As the number of entities increases, the number of interactions between them would increase exponentially, and it would get to a point where it would be impossible to know and understand all of them.
We need to keep an open mind focused in seeking excellence
This is called exploration, freedom, "breaking the rules", taking risks
Can you still see the big picture?
not in our scope
Agile relies a lot on merciless refactoring
This is a sign that something is going on
I like that!
How much code can we own?
Remember why waterfall is not a good idea
It is too big!
Not just simple -- obvious
Requirement often are complex
Complexity cannot be removed , it has to be hiddenAs close as possible to specifications
We don't want to have 25 things to maintain
We need Simple & Obvious
To both:
Yes and No!
It is not trying to see in the future
Little by Little
Design On Demand
I'd like to keep these drawing for posterity's sake
Often saves in binary files -- not ideal because it can't be kept easily with code.ssssss
We should not have to search for design, BRDs, User Manuals, etc
It should be like the comments and come with the code!
This way coders know it is there and will be more likely to consult and update
Diagrams that can be kept with code in RCS
Easy to:
subgraph clusterAnimalImpl { label = "Package animal.impl" Dog [ label = "{Dog||+ bark() : void\l}" ] Cat [ label = "{Cat||+ meow() : void\l}" ] } edge [ arrowhead = "empty" ] Dog -> Animal Cat -> Animal edge [ arrowhead = "none" headlabel = "0..*" taillabel = "0..*" ] Dog -> Cat