Sometimes, the client’s enthusiasm comes from the fact that a friend built a version they could click through in just two months. If it’s not a cooking blog, it's important to maintain the client’s enthusiasm until the real issues start being discussed.
2. The functionality the client needed was not initially planned but added on the fly.
Example: The project was originally developed as a trading platform, but later, the marketing team and product owner decided it was missing a
social media element. They decided that sellers and buyers should have personal pages where they could post content and comment on each other’s posts. All of this had to be dynamic, and sorting algorithms had to handle this type of content. This example is somewhat exaggerated, as such changes are generally a red flag in themselves, but the point is this: if, at the beginning of the project, the client had one goal, but somewhere in the middle they decided something was critically missing and introduced an improvement that wasn’t particularly related to the main functionality, it will add unplanned load during development and improvements.
3. Unrelated processes and requests affect each other’s results.
Example: If filling out a form and pressing a button in one window unexpectedly changes the content in another window—despite these actions seemingly being unrelated—it could indicate that the database was either poorly designed or that data updates were implemented with minimal understanding of the underlying processes.
No tests + bug tracker = everything is fixed by reviewing logs = lots of time = many bugs = many development hours = high costs