17611538698
webmaster@21cto.com

实用软件工程的核心原则

领导力 0 961 2022-08-29 09:45:22

图片

导读:


在正确的时间,使用正确的技术选型,是如何影响开发和业务选择的?Shift.com的工程副总裁与CTO Karan Gupta 详细解释了实践“实用工程”如何对软件产品和业务效率产生的巨大影响。


实用软件工程指的是所构建技术对业务产生比较大的影响。


本文阐述关于在正确的时间以正确的成本,使用正确的技术解决方案。关于考虑实际问题优先级的策略方法。


如果你是CTO或是软件工程领导者,我知道你一定是在严格的资源限制和竞争中开展工作的。


幸运的是,运用以下原则将节省你和团队的时间、金钱和精力,增加组织成功的可能性。


它们按重要性降序排列。我们可以在它们之间运用常识,找到更好的平衡:


四个 F: 快速(Fast) > 功能(Function) > 形式(Form) > 构造(Fabrication)


  1. 快速

    对于大多数团队来说,最重要的是速度文化。它能够激发主人翁意识、果断与创造力。

    A、快速完成你的工作,快速思考,果断行动并有结果。

    尽快让我得到想要的东西。客户体验应该比其它任何人都快,包括购买与客户服务。

    B、网站和应用程序保持高性能

    C、用户体验(UX)应该感觉快速且没有障碍


  2. 构建有影响力的功能

    A、建立真正重要的功能,无它。

    B、冗长会扼杀参与度。在与客户以及内部沟通时,平衡文字和图片。


  3. 使用愉悦

    A、让界面更好看很重要,但不必要。勿以牺牲上面讲的为代价。

    B、少即是多。减少认知负荷,减少冗长。


  4. 内在美好

    A、过程很重要。摆脱阻碍自己的功能。

    B、编写整洁的代码。需求文档(Project Requirements )应该是可描述性的,要尊重审稿人的时间。较小的 PR 可以更快地审查、测试与推动产品执行。

    C、快速突破完全没有问题,但它们仍应该保持优雅。在待办事项列表中包含一个完整故事,其中包含推理和步骤,以获得更好的长期解决方案。

    D、牢记基础设施的成本

    E、为每个人提供改进工具


现在,我们已经厘清了要点,以下来做详细介绍。


原则 #1:快速


快速比添加一堆功能更重要。


即便你的网站或应用程序不具备市场所需的全部功能,但如果它具备的速度很快,你将拥有不断回来的满意用户。


在两个方面建议,可以让快速成为团队核心价值观的一部分:

  1. 应用程序/网页的性能

  2. 软件的交付速度


你决定开发的功能,首先确保其性能达到所需标准。接着研究用户期望的性能水平,并在合理的努力范围内尽可能接近。然后检查不同的浏览器和设备兼容性。模拟用户的不同网络带宽。如果 75% 的用户使用移动网络,那么这应该是团队的主测试平台,而不是自己的 28 核 Macbook Pro。


如果用户必须等待一些需要时间的东西,不要无限投入。用户也很聪明,他们知道延迟加载是一个事实。如果你让用户了解应用程序在幕后所做的事情,他们也会愿意与你建立并创造更多的参与度。


足够好并推出,比几乎完美但仍然没有做完要好


交付速度,是整个团队的核心原则。其中成员角色包括工程师、PM、UX 和 DevOps。如果做到了,就可以让团队生出更多创新想法,从而更快地推出解决方案。


管理者应该能让大家能够探索可以匹配或集成的解决方案,而不是重新发明轮子。


习惯于快速启动的团队,享受不断推出影响底线东西的满足感。它使客户满意,发展业务并发展更多的自豪感。


原则#2:功能


这是对用户说“我希望你的应用也这样做”的回答。一旦掌握了性能和交付速度,然后思考想要为客户群解决以及不想解决哪些问题 。


正确的功能大于酷炫的用户界面。


如果提供给了用户需要的关键功能,他们宁愿接受界面中的缺点。提供正确的工具并确保它们运行良好(快速),比它们看起来有点原始更为重要。


我们来对比 Github,你知道它为什么如此成功吗?


图片


GitHub 网站设计精良,但功能却是第一位的。它带有对比度的基本调色板、有意义的图标、看起来像按钮的按钮、没有花哨的背景、没有年龄超过30岁以上无法阅读的华丽字体。它的设计具有完成工作所需的正确功能,并且目标是支持它们。


你添加的任何功能都是自己和继任者永远要使用的东西。你可能只需要几天时间就可以放入新的功能,但它需要你更多的关怀。


在短短几年内,预计它将成为只有少数人理解的技术债务、传奇或者遗留代码的一部分,没有人愿意碰它(因为人们不知道还有什么可能会破坏)。


需要大家仔细选择,什么该做,什么不该做。


原则#3:形式


只有当我们提供了正确的功能并且速度很快时,我们才需要考虑提升它的样式和感觉。我和下一个人都一样欣赏一个漂亮的应用程序,但在设计时考虑这些:


  • 每一页都美观吗?持续的?

  • 我们正在分散眼睛的注意力吗?

  • 如何减少认知负荷?

  • CTA 和表单域是否放置在用户期望的位置?

  • 表单字段是否具有正确的输入类型,手机上显示键盘合适吗?

  • 应用程序是否可以扩展到不同尺寸的设备?

  • 对于不同能力的人,设计是否按预期工作?

  • 当我们的产品在非洲推出时,它会起作用吗?


人们喜欢外观漂亮、体验良好的产品。设计最重要的作用是增强能够使用产品提供的所有超快速功能的体验。一个重要方面是确保界面可用,不应该为了美观而牺牲可用性。如果大多数人希望“设置”图标位于右上角,那就不要将其放在左上角或者子菜单下、用户个人资料图像等等。


举个功能与设计权衡的实例:

假设你的桌面用户需要从几个选项中选择,下拉菜单是不错的选择,并且每个设备上的浏览器都支持它。


一个团队虽然非常关心其用户,在选项旁边放置了一个非常漂亮的 JavaScript 下拉菜单。与默认的

评论