I recently joined a growing company that, among other things, builds web applications.
The development process boils down to:
1) Determining Requirements
2)Building exact specifications complete with descriptions of functionality and mockups
3) Developing the software to match the specifications
4) Creating a QA test plan to break the SW and ensure that it matches the specification exactly
5)making necessary changes to both the specification and software
6)Rolling out the product to users
Being a loather of redundancy and having a personal project/startup background, this process strikes me as antiquated and arcane. Surely there must be a better way to develop software. What are some of the workflows that work for you to create great features when you've got more than just a couple people hacking? What can startups teach scaling companies in this light?
Many web startups have come to resemble the open source development pattern: release early, release often, don't plan too far into the future (your assumptions will probably change by then). I think these are all good ideas: you get feedback sooner from real users, which allows you to focus on providing functionality that your users actually want (or at least think they want).
In general I think the extreme programming propaganda has a lot of good advice, but I don't know if any large companies have successfully applied them to teams of more than 10-20 people.