文档章节

【进击的CMMI】程序员不仅仅是打代码的!软件工程过程,码农其实做了啥?

吉妮薇尔
 吉妮薇尔
发布于 2017/01/16 15:09
字数 2122
阅读 141
收藏 0

1新年倒计时le......年味浓之随处可感知。

又周一了,也是农历新年前倒数第二周,这样想着好像一周工作日也没有辣么漫长了呢。年底了,看到很多小伙伴们说最后一周了,没什么工作,就在公司看看书,拉住要飞的心,哈哈。呀,好巧,我也是众多小伙伴们中的一个,是时候总结一下2016于我而言十分重要的一年了。当然,紧扣主题,我自然是会主要focus到软件开发这一部分。

当还是一枚前端开发的时候,起初单纯认为我们最重要的就是打代码,多么肤浅啊(作为一枚电商专业的曾被说不就是开淘宝店的?这种伤害类似吧,只是变成了自我伤害~以为技术牛逼就好了,但码农确实码代码,却绝不是单纯的搬砖!!!)~现在回过头来想一想,代码固然重要,但最重要的实际在于沟通-从弄清需求,确认需求,编程,测试到最终交付,28定律亦适用于此。

说了半天,程序员们在工程过程中该如何有效的让自己少rework呢?相信很多码农的痛苦也在于此。

无论是Agile还是Stage或Waterfall项目,回归本源还是基于Waterfall的SDLC,以最基本的Waterfall开发项目来说,项目有了,说明项目前期research和可行性分析都已做好,小板凳也已准备好,接下来就到程序员们施展拳脚了!

对于不同的项目来说,项目的配置也不同,程序员们扮演的角色自然也相同,相信大家都有类似的体会。现假设项目组人员配置也齐全了,项目经理带领着UI射击狮,开发人员(前端&后台),DBA,BA,测试人员进入到咱们伟大的创造之路。

作为一枚普通的搬砖工人,从BA那里拿到需求文档之后,肯定不是直接按照文档开始开发,而是首先读需求文档,标识与自己理解有差异的点,再和BA(这个时候BA即相当于开发人员的客户,但BA已经将信息过滤好)确认,这时也可能有新的疑问出现,所以一定要等BA给你确认回答(需求开发的过程是将客户的需求开发成产品需求,再将产品需求转化为模块需求,一个不断分析需求并与客户反复确认的过程),给到你自己没有疑问之后再才开始开发,因为这时你才弄清出需求是属于哪个模块,知道如何调用接口来实现对应的功能模块,减少后面因为前期需求没理解清楚而造成自己的rework。可见沟通是十分重要的。

将需求文档化也是为了可追踪客户需求,也为测试人员测试提供原材料,保证产品功能和需求的一致性。而因为需求变动造成项目延期时也有据可依,所以对于需求文档的管理也是十分重要的。开发人员在理解需求时,和BA当面沟通交流确认后,也一般在需求管理工具中留下文字性描述进行二次确认,所以需求管理不仅仅是PM和BA的工作,开发人员在开发时对于需求理解的comments也要有效记录下来,毕竟对Change Request的管理也可以有效的区分开发时导致的defects。

需求清楚了,是不是就已经花费了很多时间,当然,前期你的effort其实已经体现出来了,所以在拿到需求时leader让你预估时间时请一定不要忘记了这段时间~ 功能点*复杂度只是开发的预估,加上你分析测试确认等等交流的时间之后才能完整匹配每天工作的时间。(论如何保证管理工具中的时间和公司工作时间的一致。)

功能点*复杂度,程序员们是不是要来装逼了,那些技术难题总有资深技术大牛能分分钟给你答案。炫酷的功能,技术帮你来实现,无论是拿项目时架构师给出客户满意的技术解决方案,让一切成为可能,还是后期功能模块在技术上的实现,都是最佳技术方案的角逐,以及可reuse库的搭建。技术大神们实时关注的点,也是技术上更新迭代,新技术新语言的开发或使用等等,如何更简单的实现一个功能,这些本质上都是技术方案的角逐。而作为一个产品,细分到功能模块来实现,实现之后又集成为一个完整的产品,考虑到模块间的耦合性,就涉及到接口的调用问题,这也是开发团队需要在一起工作的原因,方便及时沟通。

前面也已经说过了28定律一直适用,功能实现之后是不是就不管了呢?当然不是的,在你接下来自己做单元测试的时候,也是不断的对需求进行验证确认的过程,这个时候又可能引发一些理解上的差异,页面上效果继续和设计人员与需求进行确认,这个过程也是必不可少的。review的过程是十分重要的,无论是一对一table review还是团队一起peer review!!!

在交付出去之前,通过测试人员的测试来保证开发人员需保证自己是正确的做事情(Verification-You build it right),而整个项目软件开发生命周期之中,项目经理就需要不断保证项目组做了正确的事情,也就是在客户验证时接受通过(Validation- You build the right thing),所以交流review反复确认在开发过程中是十分重要的。

 

--番外

过程管理中cover了6个过程域,Requirement Development,Requirement Management,Technical Solution,Product Integration,Validation,Verification. 相信大家都很熟悉这些,也就是开发人员的工作范畴,但很少开发人员能够在平时这样细分出来这些工作吧。要知道程序员不仅仅是打代码这么简单的!

你有没有同样的感受,大多时间你不是在打代码而是在和BA弄清出客户的需求,和测试撕逼这是需求,不是bug,和BA撕逼这是CR,不是bug,一直到客户接受为止,而这些都是一个不断更新迭代的过程,因为客户起初给你需求的时候基本不知道Ta真正想要的是什么!只要你实现出来给客户看到Demo之后,Ta会告诉你其实Ta想要的是那样(需求变动为十大项目风险之一),这又涉及到合同初期定义的工作Scope和项目管理时PM对整个项目的控制方式和方法,多方沟通合作才能保证项目及时高质的交付出去。

篇幅有限,本章也是大轮廓的说了一下工程过程域中几个PA的concepts,具体就PA展开来讲,其实码农实际和应该做的事情更多,等之后我也会分开来总结学习之路,希望这篇文章对开发人员的实际工作有一个清楚的大纲阐述。总的来说,开发的最终目的是实现客户需求,无论多炫酷的效果和功能,最重要的弄清客户需求,做正确的事情,并高效的正确执行,需要开发人员,BA,DBA,UI设计,PM整个项目之间内部不断沟通review确认和整个项目组与客户的有效沟通确认!!!

欢迎交流沟通。邮箱:guineverelemon@gmail.com

 

© 著作权归作者所有

吉妮薇尔
粉丝 6
博文 19
码字总数 19848
作品 0
程序员
私信 提问
码农和程序员之间的5个关键差异

如果一个企业老板大声嚷嚷说,“我要招个程序员”,那么十之八九指的是“码农”——一种纯粹为了钱而写代码的技术人员。这其实是一种非常狭隘和错误的做法。  1.码农写的是代码,程序员写的...

egefcxzo3ha1x4
2017/11/08
0
0
为什么中国的程序员总被称为码农?而不是架构师?(大牛分享)

前言: 实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 之前,研发频道曾...

原来是泽镜啊
2018/05/30
0
0
工程师、程序员、码农有什么区别?

正常来讲工程师范围更加广泛,包括程序员,现在有硬件工程师,实施工程师,安装工程师等等都属于工程师的范畴,一般称呼程序员高大上的称呼软件工程师。 程序员这个称呼目前来讲最贴切,但是...

技术小能手
2018/08/20
0
0
如果iOS程序员转行,选择的方向有哪些?

曾经在BAT公司遇到一些30岁的程序员,问他们为什么还做码农?他们都苦笑! 有人说30岁还做码农不是管理能力不够,就是太执着于代码!真的是这样的吗?我们来分析一下,在BAT做程序员薪资比一...

原来是泽镜啊
2018/05/05
0
0
为什么大部分码农做不了软件架构师?

1:码农分为真的能写代码的,以及自认为能写代码的。 2:真的能写代码的码农又分为自认为写的不错的,以及真的还不错的。 3:真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状...

JAVA高级架构开发
2018/08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

win mysql 安装笔记

官方下载zip的mysql包,解压即可 目录: D:\mysql_file\mysql-5.7.26-winx64 在该目录下新建一个文件夹data (如果操作过程中失败,要把data中的所有文件删掉) 新建一个文件,命名为my.ini,内容...

_大侠__
22分钟前
2
0
第八届“中国软件杯”初赛评审完美收官,课工场赛题备受关注

日前,由工业和信息部、教育部、江苏省人民政府共同创办第八届“中国软件杯”大学生软件设计大赛初赛评审历时两天,于 6 月 23 日圆满结束。由中国科学院软件研究所专家、各高校软件学院相关...

IFTNews
35分钟前
0
0
日期居然用字符串保存?我笑了

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 老司机倾囊相授,带你一路进阶,来不及解释了快上车! 我发现数据库有些日期居然用字符串...

后端进阶
37分钟前
2
0
c 基础教程四:c 输入输出(二)

在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是: puts():只能输出字符串,并且输出结束后会自动换行 putchar():只能输出单个字符 printf():可以输出各种类型的数据 prin...

故城以南丶思念不安
39分钟前
1
0
SSO简单实现与理解

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机...

如同相见恨晚
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部