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

程序员工作法

最佳实践四原则

一、以终为始

在做事之前,先考虑结果,根据结果来确定要做的事情。

在动手做一件事之前,先推演一番。

这个思想并不难理解,我们可以很容易地将它运用在工作中的很多方面。比如:

  • 在做一个产品之前,先来推演一下这个产品如何推广,通过什么途径推广给什么样的人;
  • 在做技术改进之前,先来考虑一下上线是怎样一个过程,为可能出现的问题准备预案;
  • 在设计一个产品特性之前,先来考虑数据由谁提供,完整的流程是什么样的。

“以终为始”的思维可以帮助我们更好地规划我们手头任务,也可以帮助我们发现过程中的问题。

那么什么为终呢?这就需要定义完成的标准。

人与人协作,总会有这样或那样的理解差异。开始协作之前,我们最好先同步一下彼此的理解,确保之后不会因为理解不一致,而让协作方措手不及。

怎样解决大家的理解偏差呢,可以先定好验收标准。在实际的开发过程中,大量的分歧来自于对“需求完成”的定义。一旦事先定义好验收标准,大量的扯皮工作就随之烟消云散了。

 

持续集成

尽早把代码和已有代码集成到一起,而不应该等着所有代码都开发完了,再去做提交。

 

产品经理不靠谱,怎么办:

比较早成型的面向不确定创造新事物的方法论是精益创业,它提出了“开发(build)- 测量(measure)- 认知(learn)”这样一个反馈循环和最小可行产品的概念。

许多软件团队都会陷入一个非常典型的误区,不管什么需求都想做出来看看,殊不知,把软件完整地做出来是最大的浪费。

当产品经理让我们做一个新的产品特性时,我们可以从精益创业这个实践上得到启发,向产品经理们问一些问题,帮助我们确定产品经理提出的需求确实是经过严格思考的。

比如,你要做这个产品特性,你要验证的东西是什么呢?他要验证的目标是否有数据可以度量呢?要解决的这个问题是不是当前最重要的事情,是否还有其他更重要的问题呢?

如果上面的问题都得到肯定的答复,那么验证这个目标是否有更简单的解决方案,是不是一定要通过开发一个产品特性来实现呢?

默认所有需求都不做,直到弄清楚为什么要做这件事。

 

工作心态:

想把工作做好,就需要不断扩大自己工作的上下文,多了解一下别人的工作逻辑是什么样的,认识软件开发的全生命周期,别把自己局限在一个“程序员”的角色上。

扩大自己的上下文,除了能对自己当前的工作效率提高有帮助,对自己的职业生涯也是有好处的。随着你看到的世界越来越宽广,得到的机会也就越来越多。

另外,想要到达什么位置,就先像坐在个位置的人那样做事、思考。

 

2、任务分解

 

3、沟通反馈

 

4、自动化

 

未完待续

转载于:https://www.cnblogs.com/lamp01/p/10278289.html

相关文章:

  • 三分钟了解实时流式大数据分析
  • 韩国企业入驻沈阳跨境电商产业园区
  • Windows 10 的 October 2018 更新开启自动推送
  • git commit的信息如何修改,如何退出修改
  • 驰骋工作流-实验室管理系统cclims
  • 译自由幺半群
  • rabbitmq远程消费者生产者发送端接收端实例
  • Vuex and Typescript
  • shell日志搜索命令
  • 毕玄:我在阿里的十年技术感悟
  • NLPIR智能语义技术让大数据挖掘更简单
  • 开源Pravega架构解析:如何通过分层解决流存储的三大挑战?
  • Android AutoCompleteTextView和MultiAutocompleteTextView实现动态自动匹配输入的内容
  • socketserver
  • Python Revisited Day 04 (控制结构与函数)
  • C++类的相互关联
  • CSS 提示工具(Tooltip)
  • java多线程
  • js中的正则表达式入门
  • mongo索引构建
  • MySQL-事务管理(基础)
  • nodejs调试方法
  • Vue实战(四)登录/注册页的实现
  • 订阅Forge Viewer所有的事件
  • 分享一份非常强势的Android面试题
  • 记一次删除Git记录中的大文件的过程
  • Semaphore
  • ​ArcGIS Pro 如何批量删除字段
  • (6)STL算法之转换
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (黑马C++)L06 重载与继承
  • (三)uboot源码分析
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (实战篇)如何缓存数据
  • *Django中的Ajax 纯js的书写样式1
  • .net core控制台应用程序初识
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET MVC第三章、三种传值方式
  • .stream().map与.stream().flatMap的使用
  • ::前边啥也没有
  • @Resource和@Autowired的区别
  • [1] 平面(Plane)图形的生成算法
  • [AIGC codze] Kafka 的 rebalance 机制
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [DL]深度学习_Feature Pyramid Network
  • [echarts] y轴不显示0
  • [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager失败
  • [IDF]聪明的小羊