Having invested so much time on the web server, it still seems to be buggy. Based on feedback from qa team, the number of bugs is keeping on climbing. So, what's the problem with it?
1. The requirement isn't clear enough
We've got an design document in ppt format to follow. The document seems to be detailed enough to save us much time on UI and working flow. But the negative effect is we don't perform a thorough thinking and discussion on the requirement.
The requirement review is held after all of the pages have been setup. It's easily for others to have comments on it at this time. But it's a disaster for us. Many of pages need to be improved.
If the requirement analysis meeting is held earlier against the ppt document, things will be much better.
2. Poor work load estimation
A poor estimation will ruin a project. The project will either miss schedule heavily or be of low quality. It's impossible to achive a highly qualified, complete result.
The work for a programming task isn't only consitituted of coding. Designing and debugging are also essential part of it. Careful design and thinking is necessary for mature code. And it requires luck to get your code work the first time without debugging. Also, to ensure quality and minimize testing effort, designning and implementing unit test is necessary.
So, the actual work load for a task may be 3 or 4 times the work load for coding.
3. Inconstant process
An unified process in the whole team is important. This includes principles and policies applied to programming and releasing.
The process should be unified and mandatory across the whole team. It should be improved constantly too.
"Technical debt", an interesting metaphor.