Time and costs estimates on software projects are never accurate. Web apps, even simple websites are complex systems that are constantly changing, so trying to determine the duration and cost of a project is really futile. For large projects, there’s just no way to predict the “completion” date. For small projects though, there’s a way to be fairly accurate: feedback loop.
Small projects offer a finite amount of information that can be digested easily, but there’s still room for error, miscommunication, and project snafu when specs are sent from the owner to the development team. That’s why I like to quote “feedback loops” as my unit of time. The first feedback loop can last a week or two, and every subsequent feedback loop should last about 24 hours – depending on how connected the people involved in the project are.
All the specs of a small project can be implemented on the first feedback loop. It is wise however to plan for 5, 10, maybe even 15 extra feedback loops to tweak and refine the product.
A good example of this process is web development on small static or wordpress websites – maybe 3 to 10 webpages. The initial development work can take 1 to 3 days, at which points all the specs that were agreed on at the beginning of the project have been implemented. However, it’s very likely that the project owner will want tweaks, updates and refinements.
A lot of design firms include 3 rounds of revision in their quotes. It’s good to acknowledge that revisions will be needed, but it’s a bad idea to include revisions in a quote. A quote should never include revisions – the development team is contracted to implement a finite set of specs and that’s that. The client is entitled to revisions only in the sense that the client gets to review the agreed-upon specs and see if the final product matches them. Revisions – or feedback loops – shouldn’t be limited. The client should get as many as needed… But the client should pay for them.
All of this to say that even for small projects, it’s hard to determine how long a project will take. And for large projects it’s downright impossible and that’s why we have agile and scrum workflows.