本文主要结合作者本人早期在产品开发部门管理以及产品研发管理等具体工作中的一些教训,对面向产品的需求开发在实际操作过程中应注意的问题进行了讨论。
序:关于软件产品的开发VS软件工程理论
面向产品的需求开发,顾名思义讨论的是产品需求开发,产品研发不仅仅是一种工程项目行为过程,或者软件产品生产过程;更是一种充满创新、创造和创意的,不可复制但可不断提升的一种软件产品发明过程。为此,个人认为传统的软件工程理论,在软件产品生产过程中发挥的巨大作用,在产品研发过程中并不是同样的完全适用,甚至还很有可能由于过于机械,而使新软件产品的研发最有价值的创意得不到最大体现。
然而,软件产品开发过程也并非可以抛开软件工程理论,而肆意的天马行空;在这里,仅仅是建议大家能够更具创造性的再软件产品研发过程中应用软件工程理论。
其创造性体现在:
1、过程不拘泥于制式,但务求讲究方法;
2、文档不受累于形式,但务求体现核心要素;
3、产品不求必须标新立异,但务求有彰显其应用价值和并拥有广阔的市场空间。
面向产品的需求开发在实际操作过程中经常遇到的问题
(1)”搭积木“的思想固然是好的,但要循序渐进
在9年前,笔者曾负责开发一“新”业务领域的大型企业级业务应用,作为该产品项目以及开发部门的负责人,向公司领导和团队成员大谈了一通软件也要“搭积木”、要“即插即用”的“光辉”思想后,开始从队伍建设、产品规划、技术研究等各方面全力实现理想产品开发之梦。当时计划把也用应用从架构上分为DO、adapter、BO和UI四个主要层次,也做了详细计划并且后来也确实积累了部分所谓的“组件”,但这个理想产品开发之梦最终的结果是“无果而终”,梦依然是一场梦。梦的破灭甚至极大的挫败了当时的信心和勇气,以至于后来更换工作时改弦更张,几乎没用应用上任何之前的积累和优势,一切都开始从新来过......。
多年之后,回想起来,最大的失误在于犯了急于求成的错误,是理想的完全规划好再去具体做,还是一般做一边规划,步步为营,一步步前进,在产品研发策略上却是需要仔细的斟酌。
(2)有好创意的产品未必就是好产品,但没有好创意的产品注定平庸。
产品=ideas,这里并不仅仅是软件产品。
(3)重视架构,更要注重细节
关注架构的软件从业大军还是在逐渐壮大的。然后在产品开发过程中“细节”却往往真的决定着成败。不难理解:设计再”优良“的产品,在处理人机交互中的系统提示并不友好,甚至牛唇不对马嘴;充分考虑的共性如适用于所有中间件、所有数据库....等等,却往往缺乏在具体环境中进行最优适配的设计;功能强大,界面混乱等。上边的这一切任何一个小细节的疏漏都会使产品的档次大打折扣。
(4)好思想,不能只停留在思想,也要好的实现
产品之所以能称之为产品,在于它已经不再仅仅停留在'IDEA',要思考,更要实践。没有好的实现,再好的设计思想也无法真正发挥出价值来。
(5)产品需求开发也是一种不断迭代的开发过程,不是简单的需求整理和规格说明的编写
产品需求的开发体现在对其应用场景的充分分析与设计、对系统的输入、输出和处理从界面到逻辑的系统性梳理和规范化、规格化,这也将是系统设计时最重要的参考。和其他开发过程一样,产品需求开发也不是静态的,而是要随着产品的各个生命周期不断改进和改变。不是文字本身,而在于对目标产品需求规格的系统性思考和规划。
(6)产品需求开发要“民主”,也要“集权”
广泛征询意见,采集需求很重要,但产品的系统分析人员有主心骨直接绝对产品的成败。所以民主很重要,集权也很关键。
总的讲,面向产品的需求开发与面向项目的需求开发既相互有差别,又紧密有联系。产品的核心在'开箱即用',项目产品的核心在'DIY'.
以上简陋见解,仅为具体工作中有感而发,欢迎同行师友共同讨论,如有宝贵意见,望能不吝赐教,在此STRCLD深表感谢!