软件既可以作为一个产品也可以作为一种服务。产品是具有伸缩性的,可以卖给多个客户,但服务是对一个特定的客户的一次性项目。软件产品可以是许可证费用或是价格销售,而咨询公司提供面向项目的服务按时间等来支付。
  
  为了使软件有伸缩性,必须把它打包成产品,将产品定位到一个客户群上。在软件和/或硬件企业中,把产品管理作为核心业务功能(硬件往往需要安装操作系统后才能出售使用)。
  
  在软件和/或硬件企业中,软件产品管理处理下面这些软件开发中的方方面面:
  
  --为新的软件产品或已经存在的产品的下一个版本在白板上勾画出新的主意
  
  --从前景、产品早期版本的客户、领域专家、技术梦想家、市场专家、来自竞争对手的产品或解决方案,来收集业务和/或市场需求
  
  --编写市场需求文档,把上述干系人的需求综合起来
  
  --以市场需求文档为基础,创建产品需求文档,作为软件工程小组创建产品的输入。通常,产品需求文档是UML用例、UML活动图等的集合,也可以有其它的详细说明,如软件开发环境、软件部署环境等
  
  --将产品需求文档递交给软件工程小组,管理业务单位、销售团队、工程小组之间的冲突
  
  --一旦软件开发进入编译/发布阶段,要进行接受测试
  
  --处理产品的打包事宜,使用基于WEB的会议工具来演示产品给客户、创建动画演示并部署到企业的网站上或其它地方
  
  --一旦产品部署在客户那里,请求客户的反馈,报告BUGS,把这些递交给工程小组进行后续的创建/发布过程,随后产品开始稳定,然后成熟
  
  --进行竞争性分析,指出产品的市场行为(其它产品在同一或类似客户区间)
  
  --从软件产品使用人员、竞争产品的使用人员、分析人员中请求更多的特性和优点,为后续产品的创建/发布编写/综合这些需求,将他们传递给软件工程小组。