The process by which new software is made is called the "product cycle." There are a variety of people involved, including program managers, developers, testers and designers and programmers. The first step is to develop a "business case." The development team comes up with a concept, determines how much it would cost to create and manufacture the software, and calculates potential revenues.
The next step in the process is to "size the opportunity." After the development team figures out the possibilities for the product, it writes a "vision document," which details the proposed project. The vision document identifies what's going on in the software market, the current competitors, core customer needs and the "preliminary specs" - the basic features of the new product. For example, take a hypothetical application, a product called "Start the Day" that helps users organize their lives. Start the Day wakes you up in the morning, prints out your calendar for the day, and uses push technology to give you the weather forecast, top news stories, and dinner recipes - complete with grocery lists, so you can shop on the way home from the office. Developers will prove the need for the product and explain how they're going to win over the market. Product managers then figure out a schedule for development and an overall budget.
The product manager presents the document to the product group management team in a "kick-off" meeting that details the schedule, budget, and overall product strategy. If Start the Day is approved at this point, managers continue with the development process, meeting often to mull over details.
After a period of time (typically three to six months) group managers meet again to explore more in-depth specifications - how Start the Day does what it does (how, for example, it receives news stories), and what the user interface is like (maybe it looks like a newspaper). Then programmers begin writing the code for the application. On average, program managers work 65 hours per week, and that can easily rise to 80 or more.~As the end of the development process nears, everyone puts in excruciatingly long hours. High-tech vets say there is never enough time to get everything into the product.
Once the programmers finish their work (or the deadline catches up with them), the alpha phase commences. In this phase, the testers come in, test the code, and see if the product matches up with the specs. A database is used to track all the "bugs" found - basically mistakes where the action of the software doesn't match what the spec calls for.
When the programmers are completely finished, comes the stage dubbed "Code Complete." Start the Day is submitted to a testing team, which then "starts pounding on your product looking for bugs," says a source from the software industry. After that is "beta testing" - when an external group of users tests the product for more bugs. The development team fixes any problems, and sends it back until all of the kinks are knocked out. When this process is finally over, it's RTM time - Release to Manufacturing. The developers hand over the product for reproduction and release to the market. Break out the champagne!
While programmers and engineers may put together software products, it takes a skilled marketer to get those coded brainchildren on the market. Software projects are led by program managers - what in other industries might be called product managers. These managers are "idea people" - they are usually not programmers, but they have a good understanding of technology and what is feasible for a product. Program (or product) managers oversee the group that plans and develops new products.