Comment by thra018
7 years ago
This [1]post on Reddit says something similar and really is true. Most of us engineers tend to neglect design. The fusion of good code and good design can set you up for success (after product market dit obviously)
https://www.reddit.com/r/Entrepreneur/comments/9ay8fq/design...
To a certain extent design is the antithesis to agile. How can you create a good design when you make up new features on the go?
Following the above summary of the book Ousterhout argues for increments implementing abstractions instead of features.
Ordered the book now :)
I don’t think design is the antithesis to agile just that design needs to be an iterative process not just in terms of product features but software architecture.
Jamming new features into an existing architecture whether it fits of not is amazingly common though. In that vein I’d maybe even think about separating product and software increments just to highlight technical debt.
'Agile' has become such an overloaded and qualified term that it is almost meaningless, or even a source of confusion between people for whom it has different implications. If you are asking whether something is or is not agile, you are probably asking the wrong question.
You are right about the frequency of jamming new features into an existing architecture whether it fits of not, but, if the feature makes sense (which is not a given), then a bad fit shows that there is something inadequate about the current architecture. This does not necessarily mean that it is wrong for its current purpose, but regardless of how you got into the situation, you now have a choice: you can redesign the architecture and re-implement the affected parts (aka refactor), or you can create technical debt, and the former has a much greater chance of success if you separate it from anything that changes features.
Thats talking about UI Design, not software design.