向微软大佬学习,嵌入式项目求生法则

哈喽,我是老吴。

一个成功的软件项目,应该尽可能满足成本与时间的需求,并以追求高质量的产品为目标。

最低层次也要做到:完成项目,这样才能满足程序员的生存需求 (不被解雇)。。。

微软建议

软件项目要存活下来,需要定义良好的开发流程 ( Well-defined development processes )。

另一种相反的看法

开发流程纯粹浪费精力。

最好的项目执行方式是聘请你能找到最佳人才,给予他们要求的所有资源, 然后放手让这些你找来的人处理他们最专精的东西。不受任何程序约束的项目最有效率。

51e5ac349de0beb994695283a73f99bb.png

没有 process 输出爆炸?

747eb4332f3bd39faccd883e822c0a4b.png

process 纯粹浪费输出?

Thrashing 是指开会讨论等非软件开发的杂事。

Process 是预先定义好的开发流程。

Productive Work 是开发者的输出。

上面两张图对比一下, 似乎没有开发流程的管理时软件开发的效率最高,开发流程纯粹是浪费精力。

十分抱歉,上面的想法是不正确的

在大多数没有良好开发流程的真实软件项目中,Thrashing (开会讨论等) 和 Processing (开发流程) 的工作量是随着项目的发展而逐渐增多的,如下:

77df1f4ff7a776b7a0f3aceb832b967a.png

普遍情况

这些软件项目临近开发截止时间时,会暴露出大量地问题,最终导致软件的质量低下,甚至项目失败。

如何活下来?

在项目早期多投入点精力在开发流程上。

f0d85325d7a7cec9f089f8ce41aaa6ab.png

让输出最大化

在项目的早期,面向流程的团队效率不高,团队会将花费较多的时间设计开发流程上,输出波动较大。

到了项目中期,开发流程逐渐得到优化,并越来越稳定。团队将更多的精力稳定地投入到实际的软件工程开发中,且输出会持续稳定。

到项目尾声,面向过程的团队将高速运行,输出几乎没有波动,并且将在花费少有意识的努力下执行惯性地执行开发流程,最终平稳地完成软件开发。

总结

在项目早期时,在开发流程上的投资,会在项目中后期产生可观的回报。

那么,好的开发流程是怎么样的?请听下回分解。

—— The End ——

推荐阅读:

专辑 | Linux 系统编程

专辑 | Linux 驱动开发

专辑 | Linux 内核品读

专辑 | 每天一点 C

专辑 | 开源软件

专辑 | Qt 入门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值