团队是什么?团队就是(1)有一致的集体目标,要一起完成这目标,(2)团队成员有着各自的分工,互相依赖合作,共同完成任务。在软件开发的过程中存在着很多的团队模式,各种模式都有自己的优缺点,可以应用于不同的场景,比如社区模式-众人拾柴火焰高,社区有很多人志愿参与,每个人只参与自己感兴趣的项目,贡献力量,比如swift语言出新版本的时候,很多大神就会主动申请翻译某一部分,然后大家共同合作,最终完成整个翻译。这个模式的优点是众人拾柴火焰高,人多力量大,但缺点是如果大家都只烤火而不去拾柴,或者捡到的火柴质量太差,最后火就熄灭了,所以社区不意味着随意,也可以有严格的代码复审和签人的质量控制。还有特工敢死队模式,软件行业的一些团队由一些有特殊技能的专业人士组成,负责一些棘手而有紧迫性的问题,比如2000年前,很多公司都需要专业的人士去解决y2k问题,这些团队成员必须了解传统语言和老式系统,才能胜任这样的任务。
开发流程就是开发过程中做事的先后顺序。软件开发模式就是在开发运营维护软件过程中的技术和做法。它的目的就是为了提高软件开发运营维护的效率,还有提高用户满意度、软件的可靠性和可维护度。同样软件开发模式也有很多种,比较有名的瀑布模式,系统需求-软件需求-分析-程序设计-编码-测试-运行,虽然它有很大局限性:各步骤之间是分离的,回溯修改很困难最终产品到最后才出现,这些都和软件开发有些冲突。但如果产品的定义非常稳定,产品的正确性非常重要,需要每一步验证的时候;产品模块之间的接口、输入输出能很好的用形式化的方法定义和验证的时候;使用的技术非常成熟,团队成员都很熟悉这些技术的时候;就可以用瀑布模型。