一、银弹
如果把软件中出现的各种问题比作狼人,那么银弹就是可以解决所有这些问题的通用方法。所以对于软件开发来说,能够解决所有问题的银弹到底是否存在呢?
我认为银弹应该是不存在的,因为软件开发是一个十分复杂的过程,我们难以预料软件中会出现什么样的错误,而且对于不同类型的错误,我们往往需要用不同的方法区解决。因此,我认为不存在可以解决所有问题的“银弹”。
二、大泥球
大泥球指的是软件中结构杂乱的系统。造成大泥球的原因是软件开发过程中没有经过合理的设计,就开始编写代码,导致代码结构混乱,可维护性和可扩展性差,这样就形成了泥球,而在这个泥球的基础上继续进行开发会导致这个泥球越滚越大,最终整个软件就会变成一个大泥球。
为了避免产生大泥球,我们需要在软件开发初期进行详细的设计,设计出合理的代码结构,之后再进行代码编写。
三、大教堂和集市
大教堂模式指的是软件开发中源代码随每一个版本的发布一起公开,集市模式指的是软件开发过程中源代码一直处于公开状态。
我和我的团队采用的模式是集市模式,我们对代码的每一次修改都会push到GitHub上。
我认为集市模式的好处是可以随时获取一些有价值的意见和建议,让软件开发的过程少走一些弯路。
四、敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷开发的原则是通过尽早的、持续的交付有价值的软件来使客户满意。敏捷开发的好处是满足用户不断变化的需求。