和许多其他开发人员一样,我在不确切知道自己要进入什么领域的情况下迈出了软件开发的第一步。第一个小型实验项目惨遭失败,完全无法使用且不稳定。但所有这些问题似乎都可以通过更好的代码来解决,我的目标已经确定:构建人们需要并喜欢使用的程序和功能。在路上我才慢慢意识到,仅仅写代码可能是不够的。这个旅程一直持续到今天。在此期间,我对软件开发的看法发生了多次深刻的变化。我想与您分享重要的见解和想法的改变,从而为您在软件开发领域提供方向。
从瀑布到大海
我进入软件开发的前两个步骤是一个 Hello World 和一个计算器,该计算器基于一种名为 Windows Forms 的过时技术,该技术允许您为 Windows 桌面 PC 编写程序。顺便说一句,“Hello World”是一个显示文本“Hello World!”的小程序。它通常是学习编程语言时构建的第一件事,以了解它是如何工作的。
我的“Hello World”并不漂亮,计算器也很笨重——但这是我 列表构建mlm 的第一个程序,我认为编写好的程序只是需要练习。
大约三年后 - 我的专业培训完成 - 我现在正在研究机器控制程序,并关注编程功能以及如何将该程序从我们的计算机传输到客户的计算机。到目前为止,我所有任务的流程都是相同的:首先,我准确定义了开发应该产生的内容,制定了如何实现这一目标的计划,然后开始编程。这种方法称为瀑布模型。
瀑布模型乍一看似乎明智且简单得令人着迷:你精确地定义目标,详细地计划到达目的地的旅程,然后沿着你所规划的路径前进。这种方法的问题在于,它与我们世界的本质和软件开发的本质并不一致。世界正在不断变化且速度越来越快,这导致需求、优先事项和目标不断变化。就软件开发而言,它是一个创造性的过程,在这个过程中,在实现目标的过程中,您必须找到解决方案来解决沿途才变得明显的问题。
简而言之:我花了很长时间开发大型功能,很少按计划完成它们,最终的结果很少是真正需要的。这对我和用户来说都是令人沮丧的,并且离我的目标还很远。
在这种情况下,我了解了开发优秀软件的第一个重要要素:敏捷性。