Why Simple Design?
Simple Design is a methodology where the rule is to keep things, as the name suggests, simple. An acronym was brought in, very early in the birth of Extreme Programming, that underlines the methodology of Simple Design: YAGNI. This stands for ‘You Aren’t Gonna Need It’ which suggests that if something is not required, leave it out.
Some programmers can suggest ideas irrespective of cost and simplicity. By understanding and implementing Simple Design, and remembering the acronym, each programmer should be able to avoid costly detours and mistakes. YAGNI tries to ignore decisions based on future design preferring a method that focuses on what is needed now.
Simple, not trivial.
Of course, Simple Design does not mean to trivialize. It is not a process where the most straightforward path forages in the hope that some beautiful programming will magically appear. It is a method that remembers the here and now, focusing on the task at hand. In keeping things simple, through design, it gives greater scope to make changes without altering complex algorithms and programming.
Simple Design also keeps costs down for any business involved in programming. Complex designs only cause more headaches and are more difficult to remedy resulting in more hours and expenses spent on that given project. It is common for some programmers to over design, so Simple Design negates against this.
Though it is an approach that tends to focus on the here and now, Simple Design still has an eye on the future. In fact, it is because of Simple Design that a programmer can plan for any future changes. It is no use placing the complex code in a programme to try and cover all the bases for the future. Simple Design suggests that by making it, simple changes can be made as things arise.
How to implement Simple Design?
The practice of Simple Design requires a high level of teamwork on a local basis. It does not work well remotely as it is difficult to implement in these cases. If you are wanting to adopt Simple Design try and put the following practices into place:
- Be aware of design flaws and remedy quickly.
- Keep simple code remembering it will be easier to refactor.
- Put off some design decisions to a later date.
- Keep a backlog of design decisions and issues that can look into when the time arises.