[Time: 1 min 45 secs] As we have said earlier, software is rarely ever made and forgotten. After the release, there will be change requests, there will be requests for new features, and bugs to be fixed. And why after the release, even when we are in the process of making software we have to interact with code that has already been written. It is with the goal of easing all of these, that we design software. The design should enable flexibility, extensibility, and maintainability. [Time: 9 mins] FLEXIBILITY What is flexibility? Actions for change Identify, Change, Test Detractors of flexibility Complex code Lack of clear responsibilities for classes and methods Unreadable code Repetitions in code Uncontained functionality Design decisions that promote flexibility DRY (Don't repeat yourself) KISS (Keep it simple) No tricks Loose coupling Encapsulation Not...
Write Awesome User Manuals and Tutorials for Software Products