2008年7月5日星期六

软件开发复杂度的构成

第一次从宏观地看待软件开发,还是在研究生毕业论文中对“软件危机/OO/CBD”的研究。当时主要是从代码重用,代码可维护性等软件实现技术的角度来探讨,在现在看来是“盲人摸象”。

软件开发是“脑力制造业”,属于服务业,服务的对象是其他不同行业,帮助他们降低成本改善运营和扩展business。

既然是服务性质的辅助行业,那么来自不同行业和领域的软件需求,固然会随着整个经济形态的不断变化,客户需要的是软件系统能支持和适应市场的瞬息万变,所以需求复杂度的提高、需求可变化成为必然。

软件开发是一个群体合作的过程,人怎么组织和规范他们的行为从而使得软件开发更有效率,关于软件开发流程和管理的方法论也不断演进。人的参与带来了软件开发的不确定性,这其中还包括组织架构,多团队合作对软件开发的影响。

能够让软件开发在技术实现、团队组织、客户需求等方面有好的表现,才能减低复杂度。

我突然想到,在Scrum中的ScrumMaster就要从这三方面均衡掌控。

没有评论: