软件开发需要使用项目管理吗?

项目管理,已经逐渐渗透到各个领域。软件开发,也运用了项目管理的经验。特别对于大型项目,项目管理是不可或缺的。

但对于这个问题,有人是有不同的看法的。

软件开发的项目管理抑制软件的发展

ThoughtWorks 的首席顾问兼开发人员 Steven A. Lowe 发表了一篇文章来阐述自己对于“项目管理”的看法,他在文中说到:

“对于软件开发来说,没有一个重要的开发者活动是可预见或重复进行的,如果有,那么开发人员已经自动化了。而且,学习本质上就是一个非线性的过程,只有去接触故障,才能找出消除故障的方法。
当然,你也会取得一段时间的直线进步,但你无法意识到自己不懂的还有哪些。所以,这时候障碍的出现是非常必要的。只有通过这些障碍,开发者才能真正了解系统,了解需要为系统工作、系统使用,以及为用户和业务的改进做些什么。
换句话说,软件开发的秘诀就是不存在项目,它会抑制产品、团队和软件的发展。”

软件开发的项目就是试图对“事物”进行管理,作者认为这会给开发带来不必要的复杂性和阻力,不利于软件开发的进行。因为开发者会将关注点放在项目管理的条条框框上,而非产品或软件本身。

因此而产生的一些误导会是:

  • 按照时间表进行工作就能成功
  • 估计精准度应该就足以对产品进行测量和优化
  • 只要计划完美无缺,项目就能成功
  • 成立越和解散团队不需要成本
  • 功能库转换不需要成本
  • 规划越详细,综合性就越强,效果就越好
  • 可预测性和效率至关重要

真的是这样的吗?

开发是不可预测的,这是在项目开始阶段无法估量的。同时严格按照软件的开发发展,也会抑制团队的创新和学习能力。
现阶段的软件开发,强调的是敏捷,快速。应该是更多的调动团队成员的力量。
所以针对不同的项目,我们要反思,我们的项目,需要项目管理吗?