软件项目和其他项目的区别
软件项目和其他项目不一样,是因为它产出的东西是软件系统。软件有自身的特性,它是虚拟的但也有自己的“模样”,它包含了很多计算机相关的技术,里面也很复杂,它有自己的“生产”方法。
主要体现在以下几个区别:
1.软件需求定义相对困难
需求不清:特别是To B的定制化项目,因为业务的复杂性,需求会比较朦胧模糊,多数情况客户自己也不十分清晰或者只能形容个大概。又或者自己内心有清晰的想法,但无法用准确的方式描述清楚,说不明白。
“我希望要有这个功能,那个功能”–可能功能之间是矛盾的,或者没有逻辑性组合不起来。
“我希望这个功能又炫又酷”,“我希望这个界面是简洁大气的”。–这个时候需求设计人员就哭晕在卫生间了。
需求多变:很多时候是项目开始的时候并没有没有圈定项目的范围、指定基线。前期的规划可能也没有完整的结构,为了实现目标不得不变。即使项目开始的时候定义清楚,需求也会因为各种原因经常变动,甚至会出现同一个功能反复变。
需求多变是永远不变的,我们要接受这个事实。如果变更的成本过低,那么变化就会更频繁,所以我们要学会怎么去控制和处理多变。
分析不明:同样的一个软件系统的要求,不同的客户描述会不一样,不同的需求分析人员理解会不一样。我们做需求分析的过程中,还经常会有理解错误的情况,各说各话的情况。需求分析人员,把系统定义得复杂或简单它也会差别特别大。
需求分析人员要理清楚需求,最终定义清楚产出的软件是什么样子,有哪些功能,需要怎么操作,边界在哪里,接口又有哪些确实不容易。