软件开发的总结与展望
1. 软件开发的特点与挑战
1.1 乐观的程序员
所有程序员都是乐观主义者。或许这种现代魔法尤其吸引那些相信美好结局和仙女教母的人。又或许是数百个琐碎的挫折赶走了那些不能始终专注于最终目标的人。也有可能仅仅是因为计算机还年轻,程序员更年轻,而年轻人总是乐观的。
1.2 创造性与挑战性并存
软件开发是人类所能从事的最具创造性的活动之一。从无到有,开发者要面对问题,与之斗争、探索、剖析、拆解,再以不同的形式重新组合,获得灵感找到解决方案,最后将其转化为他人可以轻松使用的程序。然而,软件开发也非常困难,很难把软件做对,却很容易做错。在编写软件的过程中,要学会接受失败,因为失败是这个过程中令人兴奋又沮丧的一部分。从失败中,开发者可以了解自己解决问题的方式、容易犯的错误类型,并学会如何避免。失败还能教会开发者坚持不懈,直到程序正常运行。
1.3 小团队的优势
大多数软件是由小团队开发的,而且小团队开发的软件通常是最好的。小型、积极性高且有自主权的团队最具生产力。小团队倾向于使用简化的开发流程,除非在迫切希望达到 SEI 能力成熟度模型 5 级的大公司工作,否则开发流程可以非常精简。详细的问题描述(如用户故事)、头脑风暴式的设计会议、简单的配置管理、同行代码审查以及独立的测试团队,这些足以创建几乎无缺陷的代码。流程的灵活性、沟通和共同所有权是项目成功的关键。
1.4 计划驱动与敏捷开发
每年都有大量优秀的软件被编写、测试和发布,数量远超所谓的“失败”数据所显示的。计划驱动开发和敏捷开发的关键区别在于对需求不断变化的认识,以及始终以可运行的软件为最终目标。敏
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



