软件项目和其他项目的区别

软件项目的独特性在于需求定义困难,常常因客户需求模糊、多变而产生挑战。它们依赖于智力密集型团队,管理技术人才需要特殊技能。技术复杂度高,实现相同功能有多种设计和实现方式。此外,软件开发有特有的过程和方法,如需求分析、架构设计和编码实践,这些都增加了项目的复杂性。
摘要由CSDN通过智能技术生成


  软件项目和其他项目不一样,是因为它产出的东西是软件系统。软件有自身的特性,它是虚拟的但也有自己的“模样”,它包含了很多计算机相关的技术,里面也很复杂,它有自己的“生产”方法。
  主要体现在以下几个区别:

1.软件需求定义相对困难

  需求不清:特别是To B的定制化项目,因为业务的复杂性,需求会比较朦胧模糊,多数情况客户自己也不十分清晰或者只能形容个大概。又或者自己内心有清晰的想法,但无法用准确的方式描述清楚,说不明白。

  “我希望要有这个功能,那个功能”–可能功能之间是矛盾的,或者没有逻辑性组合不起来。
  “我希望这个功能又炫又酷”,“我希望这个界面是简洁大气的”。–这个时候需求设计人员就哭晕在卫生间了。

  需求多变:很多时候是项目开始的时候并没有没有圈定项目的范围、指定基线。前期的规划可能也没有完整的结构,为了实现目标不得不变。即使项目开始的时候定义清楚,需求也会因为各种原因经常变动,甚至会出现同一个功能反复变。

  需求多变是永远不变的,我们要接受这个事实。如果变更的成本过低,那么变化就会更频繁,所以我们要学会怎么去控制和处理多变。

  分析不明:同样的一个软件系统的要求,不同的客户描述会不一样,不同的需求分析人员理解会不一样。我们做需求分析的过程中,还经常会有理解错误的情况,各说各话的情况。需求分析人员,把系统定义得复杂或简单它也会差别特别大。

  需求分析人员要理清楚需求,最终定义清楚产出的软件是什么样子,有哪些功能,需要怎么操作,边界在哪里,接口又有哪些确实不容易。

  在软件项目中,需求的定义准确,是软件项目成功的关键因素。

2.智力密集型团队

  参与软件开发过程的是一群有各种专业知识的技术型工程师,技术型人才的性格差异也比较大。之前我们有一位从玛氏公司跳槽过来的研发助理就感叹:“知识分子比较难管,软件的项目管理过程也比玛氏的项目管理难多了”。

  软件项目的产出,也主要是靠这些技术人员的大量高强度脑力劳动。对于这样的团队管理很依赖项目经理对内容的理解。特别是项目经理或其他管理人员并不是非清楚技术的情况下,管理会更加困难。

  因此,项目经理要了解一定的技术知识,才能融入到这样的团队中去有效地沟通,让项目成员发挥自己出自己的智力、才能和创造精神,也才能更有利的做出准确的决策。

3.技术复杂程度高

  以开发技术举例:实现同样的功能,可以有各种不同的设计,不同的层次结构。比如三层架构,MVC,MVVM,前后端分离,领域模型等等。同样的结构设计,可以用各种不同的开发语言,不同的框架和组件。比如SSM、.NET Core等。以及有各种不同的编码结构(设计模式)和代码的写法。
同样的一个功能,有的人一个类文件写到底,有的人有比较好的面向对象结构,面向切面结构。同样的一个方法有的人写1000行有的人写50行就行了。

  技术的强弱,差别是非常大的。可能有的工程师2天能完成的工作,换一个人2个星期都完成不了。

4.开发软件有不一样的过程和方法

  一些工程管理方法上,和其他的项目是类似的。比如都涉及项目计划、进度管理、风险管理、资源管理、质量管理和沟通管理等多个方面。但是因为软件的特征,又显得和其他的项目不太一样。它有自己的整套独特的开发过程和方法。

  软件是虚拟化的产出,它有自己的结构特性,比如应该更多的考虑复用等等。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢明Ryda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值