小企业轻团队大项目: IT经理的困扰(二):计划困扰
困扰二:很难制定长期计划,老板的想法变了,IT项目的方向也会发生变化
?
小企业小团队的软件开发项目,经常会遇到需求变化的情况,这也是让IT经理很头疼的问题。
如果我们沿用最传统的,也就是瀑布开发模式,流程按照需求分析,设计,实现,测试 (确认), 集成,和维护线性执行。这要求在开发过程需有完整的规划、分析、设计、测试及文件等管理与控制,的确能有效的确保系统品质。但从另一个角度而言,这对需求分析提出了很高的要求,一旦需求在开发过程中产生变化,会造成巨大的资源浪费。
?
要解决这个问题,建议采用敏捷软件开发模式。
敏捷开发模式的简单定义:不苛求完美,尽快推出可满足基本使用的软件版本或演示版本,让用户在使用过程中测试并调整需求,程序员根据需求不断推出微调后的新版本,最后臻于完善。
敏捷开发有如下几个特点:
- 要尽快的开发出可供使用的软件,而不是一个完美的软件;
- 经常推出可供使用的新版本,周期越短越好
- 欢迎需求的变动,随时调整,保持客户的竞争优势
- 业务人员和开发人员要始终在一起配合工作,而不仅仅是需求阶段
- 各路人马之间最有效的沟通方法是面谈,而不是邮件、电话、远程、文档等拖沓的方式
- 提倡可持续开发,保持不变的开发节奏。而不是一会通宵加班,一会又无所事事的开发方式
- 提倡简单、简化的思路——用各种手段减少开发工作量
- 追求卓越技术和良好设计,将有助于敏捷
- 团队定期总结经验,商讨提升效率的方法并实施
?
根据笔者的实际经验,对于小企业小团队开发,敏捷开发是最适合的。
因为企业小,在竞争中需要不断变化以保持优势,所以需求也在不断变化中;
因为团队小,无法在系统最开始提供完备的规划、需求分析、质量控制文档等;
因为企业小团队小,所以没有那么多职位的层级架构,经常是在老板和IT经理的带领下,各团队之间可以快速沟通,面对面沟通。
?
笔者有一个例子:
项目是开发一款以邮件营销为主的saas系统,系统的目标客户是机械及模具企业。
1. 项目到来之后,经过简单需求分析,确定了大致方向。
2. 刚好这个时候有一个客户找上门,刚好要做一款类似的但简单得多的单机版软件,供每个销售员人手一套。
3. 于是我们答应用很低的费用帮客户设计软件,前提是开发完成后,软件可以重复销售给其他用户。客户答应了。
4. 协议签订后,软件团队迅速行动起来,在一周后提供了第一套可供使用的单机软件,交付客户使用。
5. 客户使用过程中,顺便帮我们做了测试工作,并提出一些新要求。
6. 软件团队持续改进,以每周一个新版本的速度提供给客户。
7. 客户提出了颠覆性的需求,单机版不再满足需求,需要一个网络版可以管理全公司所有业务员的邮件营销行为。
8. 2周后,网络版推出。客户满意。
9. 我们继续完善软件,将软件修改为部分Saas结构,并添加了搜索信息、传真营销、短信营销以及安装了一些营销实用工具。
10. 在网上发布免费试用版,在试用版中,添加了用户论坛,得到大量试用用户的反馈。
11. 持续完善。同时销售部门已经售出多套收费版本。
12. 在软件中绑定自动升级功能,持续完善。
?
当我们把最新的软件版本和之前的需求分析做比较,就会发现已是云泥之别。整个开发过程推出了不下50个版本,接受过超过上百个用户提出的意见,并且现在还在不断调整中。软件是成功的,年销售过百万的业绩也说明了这一点。
?
结语:采用敏捷开发;尽快推出版本;持续推出小版本;随时保持面对面的沟通。
?
?
作者:?谭砚耘@用户体验与可用性设计-科研笔记
版权属于:?谭砚耘 (TOTHETOP至尚国际?)
版权所有。转载时必须以链接形式注明作者和原始出处
如果你希望与作者交流,请发送邮件到?tanyanyun/at/163.com?别忘了修改小老鼠