YAGNI and defering decisions

You aren't going to need it – you don't need to add functionality until it's necessary. Only add things that are vital to the success of your project. You probably won't need a lot of functionality for the first version of your web app; it's best to defer this until necessary.

By deferring unnecessary functionality, you are able to keep your software design as simple as it needs to be. This helps you cope with the pace of change. Later in the software development process you will be more educated regarding the requirements, and more importantly, your client will have a more precise projection as to where they want the product to head.

When you make decisions on software later, you have more data and more education. ...

Get Mastering PHP Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.