以前做B/S或C/S时,感觉自己一个人都能做完,想不明白为什么非要要需要分析师,架构师,程序员完全可以做完,只要能领会客户的意思就OK了呀!!!
直到今天,我终于弄明白了,程序员也许是最不重要的。因为:
需求分析师是直接与客户打交到的,他们经常与客户联系,分析各种各样的需求,所以会分析的很到位,有设计文档、用例图、活动图等做为保障。他们的需求又是需要架构师及程序员实现的,所以他们又经常接受这两个角色的挑战。因此一名合格的需求分析师,会兼顾多方面。
架构师拿到需求分析师的产品后,做架构设计,从程序整体把握各种技术及数据,他们会写概要设计,会画序列图等,序列图详细的会画到方法一级别,可以说他们的工作做完后,基本上就能发现整个项目风险有多大、或者说项目基本上主体内容框架已经做完了。
程序员,拿过架构师生成的直到方法一级的代码,那他们还要做什么?详细设计?(也许架构师已经做了),然后就是编码,实现一个一个的方法。这个层次所需要的人,可以说是可以随时替换。大局不变小地方,随便找个人来做。当然有高级的程序员,他们编码技术很高超,可以写出高质量的单元测试。这样的程序员基本上方向应该是向架构师了。
当然,以上是针对较大型项目,欢迎大家拍砖,发表自己对这些角色的理解。