`
zccst
  • 浏览: 3290404 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

做项目体会

 
阅读更多
别人的总结很精彩,说出了我的心声,我最近并没有写文章的意识,今天看到了,就顺便摘录


先抛出一个观点:技术能力不等同于工作能力,只能说技术能力是工作能力的一部分,在公司里会发现有些技术不错的程序员并不得志,有些技术不如他的反而得到晋升。



1,前期思维能力,未做之前先想透彻,再征求大家意见,再对比
        这是一个项目中的一个案例,在提测的过程中竟然发现主功能有严重的bug。这样的bug被测试发现确实非常惭愧,我把自己骂了好几遍。可能每个人都会为自己辩解,谁写代码没有问题。但是我在这里说一下我自己的体会:一般来讲写代码“一遍率(PS:整个逻辑盲写,不做测试)”比较高的同学往往自信心比较高,因为他对自己的代码有信心。而经常写出来代码有问题的程序员可能会心虚,即使你后面不管是自测还是靠测试把问题测出来,测出的bug越多,对于自己的打击越大。特别是一些严重依赖于开发质量的项目,这样会承受比较大的心理压力。后果是什么?有一点小的改动就会畏首畏尾,不敢改。但是真正要做到细致,以我个人的体会来看,确实很难。
        另外一个就是千万在写代码之前把整个的逻辑细细的想清楚,磨刀不误砍柴工,真理。因为前期没做好的后果就是后面一直在改代码。这样浪费了更多的时间。其实这是一种思维的转变,很多人也包括我也认同一种观点:代码是写出来的,即使前期想的再清楚,也会有遗漏。但是在工作中这是一种不太好的实践。要慢慢的学会在前期做更多的工作,后期少的改动。这是一种功力,真的很考验人。对于已经习惯这种思维的人可能不太难。但是如果习惯了在写代码中思考的程序员来说一定要力求改变,在这里也是在警告我自己。
        这里简单的说一下为什么?道理很简单,如果你是在写代码的时候进行思考说明是你喜欢发现问题解决问题的方式,这是一种被动的思维方式。这种思维方式可能做一个程序员不会犯太大的错误,至多自己多加一些班。但是如果是一个项目的owner,这样极有可能犯重大错误,整个项目到后期发现方案不可行,这是要命的。千万不要觉得这仅仅是一种工作方式的问题,这是思维方式的问题。要慢慢的锻炼自己在前期思维能力,就是主动思考,主动发现问题,这样才可能把项目风险掌握在自己的手中。项目实践有一句话:“有可能发生但是没有发生的问题叫风险,如果问题已经发生,那就是真的问题”。
       改变思维方式真的很难,要打破重来很痛苦,绝不会在我这里写出来这么简单,所以为什么我觉得成功学看的热血沸腾,发现自己一去做完全是两回事。一个简单的习惯都很难改变,何况是对于一种已经几十年的思维习惯。这里我举一种思维实践,仅供参考。脑子里想一个问题,反复的想,把它想的非常透彻,然后把这个问题抛出来,看看大家都对这个问题的看法,再比对自己有哪些遗漏。这一方面是思维的过程,另一方面也算是经验积累的过程。因为很多问题想多了考虑的面自然就会丰富起来。



2,用数据证明观点,而不是简单描述观点
事件的背景是我在一个小组周会上进行了一个项目经验的分享,准备上也有些仓促,大概两三个小时写了一个简单的PPT。讲完后就被主管批。他说:“在用语言描述项目的时候一定要用技术性的语言进行分析:你为什么做这个项目”。对于这句话我想很多人都不明白什么意思。这里的关键词是"技术性的语言"这六个字。这里我举一个我在PPT中描述的语言大家就会明白问题出在哪里:"之前大部分依赖于数据库,对于数据库的压力相对较大。目前在DB前面用缓存挡了一层,对数据库的压力减少许多。"这里注意一下我在上面一句话中标红的那几个词。这种词是严禁在项目总结中出现,什么叫相对较大,什么叫减少许多,一切都要以具体的数据说话。相对较大之前的数据性能情况是多少,数据拿出来。你做了改动之后具体的数据是多少,拿出来。这前前后做一个对比,很容易就得出你做这件事的意义是什么。在这个项目中你具体做了哪些改进,而不是简简的说加了一层缓存,这样谁也不明白,你的缓存加在哪里了,是怎么实现的没有说。我刚才的问题一说出来大家都明白,具体实施的时候很多人都会犯这样的毛病。



3,本质是要提高自己认识问题、分析问题、解决问题的思想高度
提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。

工程师的内涵是:以工程师的眼光观察、分析事物和世界。一个合格的软件工程师,是真正理解了软件产品的本质及软件产品研发的思 想精髓的人(个人观点、欢迎探讨)。掌握软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是软件工程师的主要工作,但从软件工程师这个角度 来看,这只是外在的东西,并非重要的、本质的工作。学习、掌握软件产品开发理论知识、软件开发方法论,并在实践中理解、应用软件产品的分析、设计、实现思 想来解决具体的软件产品研发问题,才是真正的软件工程师的工作。站在成熟理论与可靠方法论的高度思考、分析、解决问题,并在具体实践中验证和修正这些思想 与方式,最终形成自己的理论体系和实用方法论。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics