Product development is the art and science of building software solutions for the market. For software companies, the ultimate goal is to produce a great product that will meet the needs of the widest possible section of their chosen market segment.
As large companies seek to get lean in the tough economy, there’s been a smattering of layoffs within the industry. Still, despite some decline in demand, the need in the wider mass market remains strong. For example, in just the first nine months of 2009, 1 billion applications were downloaded from Apple’s App Store, indicating consumers remain willing to spend money for software that solves a problem or entertains them.
According to the U.S. Bureau of Labor Statistics, the software industry has a bright future over the next decade. In the latest version of its Career Guide to Industries, the BLS predicts employment in this area of technology will increase by 32 percent between 2006 and 2016. Another BLS publication, the Occupational Outlook Handbook 2008-2009 Edition, predicts most of the positions within product development will be fast growing roles over the next decade.
Increasingly, the reduced costs of ownership for products delivered using the software as a service model (SaaS) is making the Internet browser the delivery platform of choice for software products. While the two most pervasive languages, Java and the .NET family, are still being used for Web applications, two new technologies are on the rise: PHP and Ruby on Rails (ROR). Because of their tight integration with Open Source technologies, PHP and ROR are popular within the start-up community. Many of the most popular and heavily trafficked Web apps available today are written in either PHP or ROR, so skills in this area are in demand.
Roles and Career Paths
Individuals in product development will generally work for a software company. This may be through direct employment, or through a contracting arrangement. The jobs are distributed among product management, software development, and quality assurance.
While the role of the product manager can vary widely from company to company, this is generally a position of leadership, coordination, and evangelism. The product manager has to walk among the many departments that touch a product, communicating at a context-appropriate level. From marketing to software development, and on through quality assurance and post-release tech support, product managers have to make sure the product is moving in the right direction, and that everyone involved understands their priorities.
Using market research conducted at the beginning of the product development cycle, the product manager will identify a need in the marketplace, then produce a marketing requirements document that conveys the overall definition of the new product or product release. The MRD is used as a base to guide the functional and design-level specifications that are later created and used in software development and QA. In some companies, the product manager may produce the second-level functional specs.
Once the product is in full development mode, the product manger will coordinate with the development group to review features as they are completed, making sure they’ll meet the needs of the customer. As the product or release nears completion, the product manager may write press releases, blog posts, and other communications to customers or potential users. During the beta period, feedback is gathered from users and further tuning to the product offering may be undertaken. After release, the product manager works with the tech support group to identify trouble spots that may need to be addressed in the next release of the product.
Software development is where the real tangible and clickable software is built. Within this area, teams are comprised of a technical leader and the supporting roles needed to produce the product. The development manager is generally an experienced software developer whose job is to coach and guide the development team through the process of creating or updating the product. Using the MRD, software engineers produce functional and design specifications that drill down to more technical levels. During the design stage, the development group selects the programming language and other associated technologies, and plans how the system will operate as a whole. The team then moves on to the construction phase, where the productÂ¿s code is actually written. During this phase, the developers also write the unit tests that are essential in testing their code, making certain that the requirements are being met on a micro level. Throughout the development process, user interface (UI) and user experience (UX) designers coordinate with the engineers or developers to design interfaces that are both esthetically pleasing and easy to use.
In quality assurance, the primary task is to verify the product performs to the written specifications and is free from defects. The QA manager is generally a seasoned professional tasked with leading and coordinating the testing activities of the team. During the construction process, QA engineers create test cases based on the software specifications produced by the development group. The test cases can either be automated or executed by human testers.
As features are completed during the development cycle, the QA group tests them against spec to ensure the quality from using best practices in the requirements, design, and construction phases are present. If problems arise, a defect report is written and submitted to development. Once a fix has been implemented, QA retests and either verifies it, or fails the fix and sends it back to development. Once all features are completed, a complete regression test will be performed, and an eventual thumbs up will be given to the product for release.
Skills and Qualities
- Strong analytical and troubleshooting ability
- Ability to lead (with or without authority)
- Exceptional design and programming skill
- Excellent oral and written communication skills