每次做出体系结构/设计决策时,您都会关闭设计中的选项,并限制程序的更改选项。设计是平衡当前需求(需求)和未来可能的更改请求。
您的主要目标是满足当前需求,并保留尽可能多的开放选项以适应未来的更改。如果您预感到将来会收到X功能的请求并进行相应的设计,则可能会发生两种情况:
2-请求从来没有来过,你最终得到了一个与你目前的需求无关的不合标准的设计,这是你的耻辱。
因为第二件事更有可能发生,所以你避免犯新手错误,即为你不确定的事情进行设计。
设计是关于平衡两件事:满足当前的需求和保留尽可能多的选择。您希望保持灵活性,而针对预感进行设计会给您的程序带来不必要的约束。
因此,选择易于扩展的设计,而不是构建一个可能永远不会实现的功能。
在本系列的前一篇文章中,我们讨论了我们作为软件开发人员的角色。除了编写代码,我们的工作是提供价值。
能够提供价值的最重要前提是了解我们的用户需要什么。与最终用户的沟通很重要,因为作为软件的创建者,我们往往对我们制造的产品有不正确的想法。
有许多功能和可用性方面对我们来说是显而易见的,但对用户来说却并非如此。对我们来说看起来清晰直观的事情,对那些……。嗯,谁不是这个产品的创造者呢?与用户沟通并了解他们对我们产品的喜恶之处是制定正确解决方案的重要部分。
诚然,我们没有那么多机会这样做,但如果有可以与用户交谈的情况,那就去争取吧。如果这根本不可能,那就和你的产品所有者成为最好的朋友,并定期得到反馈。
请记住,很少有比构建一个解决了错误问题的伟大产品更令人难过的事情了。
我知道这可能不适用于你,但我们的职业中有很多人都在加班。在软件开发人员中,为了提供额外的功能而忽略家人、朋友和个人生活是相当普遍的。
我知道在特殊场合你可能需要在办公室多呆几个小时,每个人都会这样。但是,长期持续忽视你生活的其他方面是不可能的。
我们都是人,培养人际关系和爱好的需要是我们自身不可或缺的一部分。在我们周围有一个健康的人际关系网络不仅让我们更快乐,而且还能帮助我们生产出更高质量的工作。从长远来看,一个快乐、休息良好、有其他爱好的人往往会过得更好。
并不是说极端的牺牲就能让你永远成为明星员工。迟早你会筋疲力尽,你的人际关系也会恶化,如果这是唯一重要的事情,这最终会影响你的工作效率。
所以,花时间滋养重要的东西吧。你的工作稍后还会在那里,在接下来的几十年里,你可能会换几次工作。押注于可持续增长,滋养你生活的方方面面。
谢谢你的阅读,我希望你学到了一两个新东西,或者至少有了新的想法。
与朋友和同事分享这篇文章。感谢您帮助我联系到可能会觉得此信息有用的人。
您可以在推荐书单中找到有用的书籍来继续投资您的承运人。
给我发一封有问题、评论或建议的电子邮件(它在关于我的页面上)。来吧,别害羞!