我经历的几种开发模式和心理

 
前言:
做了三年多的项目开发,总共经历了几种不同的项目开发模式:
  1. 只有开头和结尾;
  2. 反反复复论证;
  3. 全文档的开发;
  4. 带着需求去设计、开发,最后交接;
刚开始做项目的时候就跟着项目组走,让干啥就干啥,等到后来回想起来每一次的经历都不同,每次都有原因。实习时候经历的项目其实自己还没有感觉出开发模式,因为那时候一直在学习开发、学习技术,无心关心其它。

主要开发模式
 
第一种:只要开头和结尾
这个比较好理解,公司做实体业务或者公司内容开发软件,老板又不懂技术。这时候,他会详细描述他想要的。然后自己去开发(数据库、后台、前端一人干、没有需求文档、没有原型),曾经自学了android和ionice 去做混合开发一款移动端app。最后展示给他结果,最后修改完善。
 
第二种:反复论证
1:需求本身并不明确,2:在技术性的老大手下干活。
获取需求(可能是口头、笔记、或者是会议上)。
去开发,开发出来后项目组同事会议审查,自己技术当时也不好,经常会有bug暴露出来,这样就边改bug、边改实现方式、边改样式。
中间可能需求改了,就要推到重新开发。
最后直到自己满意、项目组同事满意、老大满意就交工了。
 
第三种:全文档开发
类似于外包公司或者职业项目经理带领团队。
项目经理会给出需求文档、设计文档、原型图、数据库结构、数据字段,程序员只是一个coder。
 
第四种:带着需求去设计、开发,最后交接
基于某些原因,只给出比较完整的需求文档,让程序员自己去设计原型、数据库、数据字段,完成编码实现功能,最后功能审查、交接。
以上是我经历过的四种开发模式,各有利弊、都能生存下来。
 

总结
自己总结了一个比较完善的功能开发流程:
1:接到需求去思考
2:需求文档:需求方提出的口头、书面等各种样式的需求
3:设计文档:根据需求,设计出流程、功能、页面等程序表现出来的东西,甚至包括数据库的结构
4:原型图:可点击跑流程的页面
5:数据字典:数据库表、字段等的解释和意义
6:建立数据库
7:开发程序
8:提交测试并审查
 
程序员只是一份工作,但是路是自己走出来的,人还是得去思考。
但是不要想得多,做得少!
 

附:IT开发者的几个阶段
 
第一阶梯:Typer,打字员
 
每一位开发者在正式踏上开发道路之前,都需要经过毫无编程经验的“第一阶段”。
这时他们对于程序的理解仅限于照着书本或记忆进行有规律的字符录入,甚至不清楚自己所输入的字符代表什么指令,因此每当错误出现时常常显得手足无措,怀疑软件、怀疑系统,甚至开始怀疑人生,到头来却发现只是少输入了个分号。
该阶段虽然看起来简单,但确实也是最容易将门外汉拦在开发者殿堂之外的门槛。
对于位于该层的小白而言,切记不要迷恋《30天从入门到精通》等武林秘籍,对没有入门的人来说很容易变成《两周从入门到放弃》。其实也并非没有入门捷径,找个真人师傅带进门就好了。
 
第二阶梯:Developer,开发工程师
 
作为拥有0-3年编程经验的第二层,可以正式的称呼自己为“编码菜鸟”了。
这时的他们对编程概念已经有了初步的理解,知道了变量、逻辑与函数的意义。同时也可以熟练的使用CV大法(Control+C、Control+V)来模仿前辈的案例或网络实例进行功能实现了,但也仅仅只能实现需求逻辑而已。同时因为并不理解这段代码的真实含义,所以实现的这坨代码通常让人头痛不已,是BUG的高发地。
对于位于该层的菜鸟而言,切记不要迷恋《Thinking In XX》系列的书刊,最好的修炼方式还是多阅读开源工程代码,多参与项目实践,完成一个由量到质的蜕变,从而进入下一个等级。
 
第三阶梯:Research&Developer(R&D) ,研发工程师
 
作为拥有3-5年编程经验的中间层,进入该层的“攻城狮”们已经开始被委以重任,负责攻城拔寨,调研新型武器,属于团队里面的攻坚小能手、小白与菜鸟所仰望的大牛了。
与此同时,这一层级也是所有层级里面最危险、最容易迷失的一层,其危险在于因为沉迷于舒适区与盲目自信而停滞不前,最终因精力的衰退而被小鲜肉所替代;其迷失在于仅善于解决项目中曾负责或以前接触过的某一块的问题,对于系统架构欠缺整体的意识,不具备建立一个全新系统的能力。
对位于该层的“攻城狮”们而言,切记不要沉迷于代码的表面,也不要局限于API或源码库的收集,最好的修炼方式是不断地思考与锤炼自身对最佳实践方式的理解感悟,从而为进入下一阶段打下坚实的基础。
 
第四阶梯:Architect,架构师
 
作为拥有5-8年编程经验的开发者顶层,进入该层的大师们对于某一领域的系统研究已经“摸得门清”,通常他们是使系统“拔地而起”、“耸入云霄”的设计师。
他们更喜欢形容自己为“艺术家”而不是架构师,他们即使喝上一斤“关公坊+酸梅汤”都能准确的给你画出其设计过的系统架构图、功能结构图、数据库模型,并能基于系统实际使用情况进行基于架构的系统结构优化、性能优化等。
进入此阶段的工程师已经脱离了对招式的执念,步入了对于设计与编程之道的艺术修行道路。
 
第五阶梯:Consultant,咨询师
 
咨询师是一个特殊的存在,如果说架构师是追求于设计之道与艺术之道的苦行僧,那咨询师就是这条道路上的布道家。
他们一般有着广阔的见识与丰富的实战经验,也许他并未开发过多么经典的架构,但经过短暂的观察即可指出对于当前架构的优化意见;也许他并不能写出多么高深复杂的源码,但通常可以用最简单的办法解决技术上的难题;也许它并不了解你所遇问题的业务背景与专业技术,但可以通过跨领域知识启迪你解决问题。
 
posted @ 2017-08-29 16:11  赵坤坤  阅读(325)  评论(0编辑  收藏  举报