软件开发之我剑!----软件开发,生命的转折点
软件开始开发了,终于进入了大家期盼已久的阶段了,程序员期盼着进入开发,通常会认为前面的工作并不能对程序员的工作显示出他的作用,经理期盼着进入开发,这样项目就会进入一个新的阶段,这样任务转移了一部分,自己也可以松口气,老板盼望着进入开发阶段,因为看到了进入挣钱的曙光。所有的人都盼望着进入开发,开发了才能显示出我们大家都工作了。
但是,开发有个前提就是你的准备工作做好了。
你的设计准备充分了,你的人员配备到位了,你的技术方案确定了。
ok,那么我们一起来努力吧。
在开发过程中,其实也会有很多不同的困难和陷阱。
开发人员的配置和进入推进。所有的项目经理都想要有丰富经验的程序员来做,但是,这种条件往往不能满足,尤其是规模稍微小点的公司,往往是几个主程下面带着好几个初程,主程是公司的财富,他们往往是公司工作时间较长,工作经验丰富,对公司的开发流程及规则较为熟悉,懂得在必需的时候加紧,懂得在宽松的时候放松,他们都是能够独挡一面的老将,但是,从客观上来说,这样的将军是不可能一直放在一个项目上的,也不可能一直放在一个项目上纠缠不清的。因为公司往往不只一个项目,如果只有一个项目,一个主程,公司早就挂了。在多个项目的情况下,这些主程就要担负起程序开发的主要责任,往往是由这些人编号模块,分配好工作,让下面的初程来做。所以,如何分配主程在各个项目中的工作,如何组织分配初程的资源,是首先要考虑的问题。
控制程序开发进度,有很多项目工程书籍来告诉你如何管理项目开发,比如项目模型,比如里程碑,比如狗食版程序,比如冻结期,这些都是项目开发中要严格把控的东西,公司是要人性化管理,但是项目要严格控制,留给你足够的时间进行开发,到了一定的时间必需进行提交,必需进行项目冻结期,不然一个项目今天拖到明天,明天拖到后天,永远都没有一个阶段的标志。
开发过程中,check是很重要的,如何check,各有各的说法,我认为,每周一次的项目总结会是非常必要的,这是进行沟通和总结的一个好时期,开会的议题可以是多样的,发言人也可以是多样的,程序员可主讲,经理可主讲,老板也可主讲,可从项目代码讲到管理意见,可从难点突破讲到云计算,可从最近学习讲到3Q大战,只要不是嗑瓜子闲扯淡,都可以。主要是提供这样一个技术讨论的氛围,让大家有个说话和共同沟通的地方。
代码的review过程,是大家共同学习,共同进步的一个过程,平时都是各自忙自己的模块,对整体构架认识不够或者没有时间来进行认知,ok,那么有这么个时间来一同进行review,不同的模块开发人员可以进行沟通,可以对技术,模块等提出问题和讨论。同时review也是项目经理对项目开发进度一个审查和控制的手段。
再者,程序员最难的就是沟通,你说让他在网上写个日志,发个微博,聊个QQ,是再拿手不过,但是你让他在大家面前说出来,往往没有这种劲头,在网上碰到小女孩,恨不得能调戏别人两三分钟,但是在现实生活中,却像刚进幼儿园的小朋友,谁都不认识,也不敢说话,也不敢和别人玩。这样,我们大家一同来进行技术讨论,说起技术,那是程序员的专行,你不让他说,他还心里痒痒,从技术可以聊到学习,从学习可以聊到生活,从生活可以聊到人生,这样就能促进一种技术学习氛围,也可能在这其中形成一个健康向上的公司文化,让员工在这里得到一种归属感。
所以,在开发过程中,主程和项目经理一定要主动积极的组织这样的讨论和会议,你不问程序员,程序员永远不会主动告诉我,我这周完成了几个功能,有几个做的特别顺,我还从网上找到了一种新方法,他也不会你,我本来可以提前一周做完这个模块。
还有一个很重要的问题,就是团队合作,这里的合作,不只是技术上一个简单的代码管理,还有更重要的沟通和合作。几个水平很高的程序员,在一起不能能写出正常运行的程序,因为每个人都认为自己很厉害,每个人都有自己的技术特点,每个人都桀骜不驯,对对方不服,我写的代码比你好,为什么要听的,或者为什么要按照你的代码要求写,所以,最后的结果是,等大家都写完了,往一起拼凑的时候,不是头重就是脚轻,不是左宽就是右窄。什么是团队很做,团队合作就是teamwork,作为一个小team,大家有劲一处使,有力一起发。不是为了挣谁能在team里面当老大,而是为了集体和团队的荣誉,共同为一个目标而努力。作为主程,负责更多的责任,作为程序员,负有更多的义务。大家都是最终能按时按质按量的完成任务。这才是我们大家都需要的,所有人都会在这个过程中成长,获取自己所需的知识和能力。
开发中还有其它的问题,我会将想到的继续写下来,大家一起讨论。