当前位置: 首页 > article >正文

【软件开发】做出技术决策

文章目录

    • 专注于核心业务
    • 除非绝对必要,不要重写代码
    • 保持技术栈简单
    • 尽量减少依赖
    • 避免范围蔓延
    • 按照业务实际情况确定优先级
    • 在做出高风险决策前构建原型
    • 跨职能团队协作
    • 信任你的团队

在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己的公司)。在这个过程中,我积累了一些用于重大技术决策的原则。这些原则大多是通过实践中的教训得来的。虽然你可能并不完全认同所有原则,但我希望其中的一些能对那些在艰难技术决策中挣扎的人有所帮助。

专注于核心业务

在实现一个新功能之前,首先要问自己,这个功能是否属于公司核心业务的一部分。如果答案是否定的,那么你应该寻找第三方库或工具,最好是开源的。如果市面上可用的选项无法完全满足需求,可以考虑自行开发,但前提是要进行仔细的成本收益分析。尽可能避免写新代码——最好的代码就是不需要写的代码。

举个例子,当我加入 Faradai 时,公司已经拥有第一版能源管理软件平台,并成功服务了客户。虽然平台总体运行良好,但其自定义的 Web 前端框架 AML 使用和扩展起来非常困难。

由于 AML 是公司内部定制的框架,外界开发者对其完全不了解,因此我们必须对新开发者进行培训,才能让他们具备生产力。更糟糕的是,一些开发者抱怨学习的 AML 技能在其他地方完全用不上,他们的抱怨是有道理的!

对于初创公司而言,市场响应时间至关重要,而培训新开发者的过程让我们放慢了脚步。如果我们使用的是流行的前端框架,比如 React 或 V


http://www.kler.cn/a/445233.html

相关文章:

  • 将4G太阳能无线监控的视频接入电子监控大屏,要考虑哪些方面?
  • 华为云计算HCIE笔记01
  • 纯前端实现更新检测
  • flask before_request 请求拦截器返回无值则放行,有值则拦截
  • git 删除鉴权缓存及账号信息
  • 二进制分析的新兴趋势:塑造安全的移动应用
  • 2024.2 ACM Explainability for Large Language Models: A Survey
  • 基于springboot的银行账目账户管理系统
  • maven项目运行时NoSuchMethodError问题排查记录(依赖冲突解决)
  • 使用yolo v5 识别月球极小撞击坑
  • 卫星综合电子软件系统
  • docling:PDF解析
  • DALL-M:基于大语言模型的上下文感知临床数据增强方法 ,补充
  • Ansible基本用法
  • 14:00面试,14:10就出来了,问的问题过于变态了。。。
  • Visio——导出的PDF文件缺乏嵌入字体的解决办法 / 设置导出的PDF文件添加嵌入字体的方法
  • 【HTML+CSS】深入理解HTML中的<div>标签:布局与样式的基石
  • verge下最节省gas的智能合约写法
  • 师生交流系统|Java|SSM|JSP|
  • OnOn-WebSsh (昂~昂~轻量级WebSSH) 可实现 网页 中的 ssh 客户端操作,支持多用户多线程操作 ssh 持久化
  • 【漫话机器学习系列】011.Bagging方法 VS Dropout方法
  • 【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?
  • JSP企业快信系统的设计与实现【源码+文档】
  • Android 音视频编解码器 MediaCodec
  • SparkSQL案例
  • SQL或ORM获取随机一行数据