Programmers require at least some information before they can start a project, whether this is in the form of project documentation or through direct contact with people who need software, is obviously debatable.
I am in a busy camp where people and interactions prefer the process and documents. However, I am also pragmatic, which means that if you do not have access to business or product owners, you must, of course, work on some kind of design. But I will always maintain personal interaction with documents.
From a flexible point of view (depending on your taste), the documents will be in the form of form cards that represent individual functionalities that will be developed, and when this functionality is considered “done”. The specific details of what is developing, however, come from interaction and communication with the business and will, in most cases, be formed through “evolutionary” design.
Although it is true that documents can be updated, and yes, sometimes this happens, I find that in most cases this is not so. You also face version nightmares, developers working with the wrong document, or QA testing of the wrong version. It is a simple fact that in a rapidly changing business situation, as soon as you record it, it becomes obsolete.
Most of the problems are unknown during the design process and are detected through the actual development process, so it makes sense to invest more time and effort on the development stage than to spend it on the design stage, where there may be assumptions and it will be wrong. You CANNOT design for something you don’t know! The sooner you enter and discover these unknowns, the sooner you can develop your design to meet new requirements.
source share