为什么软件总是很糟糕?


软件开发很难,真的很难,实际上,它不止一门学科,涉及工程,团队合作,设计,复杂的问题解决,领域专业知识等等。
要成为一名优秀的软件开发人员,您需要许多技能,其中一些技能只能通过经验来磨练。您需要不断学习并在工作中应用这些新课程,逐步迭代并尝试更好地通过自己和团队共同创建软件。
软件非常复杂:每个应用程序,网站,嵌入式系统或专家系统都以其自己的方式复杂,并且复杂性因域而异。最重要的是,开发人员都是人类,他们根据不完整的信息做出决策,以解决所涉及的每个人都有不同理解的问题。

多年来,无需开发人员从工具或教育中获得更多帮助,提供高质量软件所需的技能就显着增加。我们仍然使用纯文本和过去的改进语言编写我们的程序。1996年的开发人员会理解我们编写的代码,但不了解上下文。上下文背景是王道

我们现在有iPhone。和云。和物联网。用户期望获得良好的用户体验,数据隐私,安全应用程序,同时呼吁更智能的软件预测用户的行为和需求。因此,一个完整的跨职能软件团队需要更多的专家,同时作为一个整体一起工作。在世界上每个公司都在向基于软件的存在过渡的世界中,经过验证的技能是昂贵的。随着软件开发人员数量的不断增加,知识差距正在扩大。

软件开发部分借鉴了建筑师和建筑商的工作语言,但这是我们做过的最糟糕的错误。语言本身使每个人都低估了我们所做的每件事的难度。考虑一个不幸的建筑师,一个真正的建筑师,在现实中设计一个未经测试的材料的房子,其中重力常数不像地球一样稳定,而是在没有警告的情况下改变幅度和方向。听起来像是一个需要解决的复杂问题。

这是软件开发的现实。