在阅读这篇文章之前,我一直认为外国人在IT领域是领头羊,但是读完之后,我发现尽管他们实现了很多著名的项目和出色的软件,但是他们的项目管理和软件开发能力实在是有限。他们总是怀着远大的目标和宏伟的志向去开发软件,比如Chandler项目,他们希望能够提供最好的用户体验,使用最新的技术,平台化和开源,但是却没有明确的工期,也没有认识到自己的能力不足。正是因为这种缺乏对自身实力和需求的认知,以及对现实的认知不足,导致了这个耗时巨长的“伟大”项目的失败。
在软件工程的发展过程中,这样的失败案例数不胜数。这样的失败案例提醒我们,在实施软件开发之前,我们需要制定详细的开发计划,清楚地认识自身的长处和不足,明确开发的工期和目标。软件设计有两个意思,一个是我们要打造的产品,另一个是让产品得以实现的软件工程。在软件开发过程中,程序员需要扮演两个不同的角色:主题专家和工程师。程序员需要明白,代码只是软件开发的一部分,软件开发的核心是软件的设计过程和管理过程。软件开发的生命周期也是必不可少的考虑因素。在编码和设计过程中,我们需要采用分而治之的思想,同时也需要考虑模块之间的相互影响。软件开发的周期长短也是需要考虑的因素之一。Chandler项目的开发者和决策者们没有切实地认识和理解这些因素,最终导致了项目的失败。
作为程序员,我们需要清楚地认识到自己不是神,任何一段优秀的代码都需要不断地尝试、改进和锤炼。在开发软件的过程中,我们需要时刻保持严谨的态度。
在我自己开发软件的过程中,经常会出现需要进行大规模的改动或添加新功能的情况。在读完这本书之后,我重新规划了手头上的一个疫情每日登记系统APP,包括已经完成的部分和未完成部分的功能设计,开发周期规划以及每日进度规划。所有的规划都是基于我的学习能力和目前掌握的知识水平。通过这些详细的规划,我第一次感到软件开发的思路清晰明了,而今天任务的实施更让我充满了开发的激情,真正看到了开发进度的推进。
当我看到今天实现的流畅界面和功能时,我对软件工程的概念有了更深入的理解。我相信随着不断的学习和成长,我能更深入地理解软件工程的精髓。同时,我也感谢《梦断代码》这本书在软件开发过程中给我的启示。