采用某些标准、完整的软件过程方法,在很多时候可以确保软件团队中所有人能在项目伊始就保持一致,以便在做项目时,所有成员都能同时用某些约定方法完成其工作,最终按照约定交付软件产品。
但是,没有规范过程的团队能够高效地完成项目吗?答案是有这样的团队。但是,这样的团队只存在于小的开发团队或小的开发项目中,并且其过程是不可重复,文档不规范、不完整。下面是这种团队的主要代表形式:
-
个别程序员或多个程序员构成的小团队对整个项目负责;他们同用户或客户直接沟通,并尝试理解他们需要将软件做成什么样子;然后,这些程序员或小型团队开始根据他们所理解的需求来完成软件,并将产品交付给用户。在这种情况下,程序员扮演“万事通”的角色,他们自己做项目中的所有事情,因为并没有更多分工。从收集和分析需求、设计建模、编码、测试一直到布置和维护这些软件,都由他们自己完成。这是一种做项目或做产品的高效手段:通过限制项目核心人员的规模,使每个万事通都对整个项目直接负责,减少不必要的交流并提供必要的文档,这样可以减少项目的开销和复杂性。
-
有的团队中,有一类程序员喜欢找麻烦,通常提出一些用户和客户并未明显提出的需求,但有时通过这咱方式提出的需求,恰恰是用户和客户真正需要的东西。这类人通过是那些经验丰富的程序员担当,他们拥有丰富的客户经验,能独立判断出用户业务的关键所在,然后通过自动化手段帮用户解决一些原来业务的瓶颈问题。
-
还有一种高效软件开发团队中,一定有个值得信赖的开发主管,他经常能用将用户和客户的需求理解得恰到好处。这位主管的工作绝不轻松,他得将大量精力投入到设计、架构以及编程的每个环节中,是整个软件项目的中心,另外,他还会将软件项目设计完成后的一些工作切割成小块,分配给不同的程序员,最后由他组装这些模块。
这种高效团队有范围的局限性、成长的不稳定性,在人员扩充或团队合并时,规范的软件过程不仅仅可以解决团队的规模问题,还能帮助你的组织或企业在领域专家、用户以及客户很难协调的时候为程序员提供帮助和参考。