文档章节

对于做项目的体会--思维要换调调

威哥
 威哥
发布于 2014/01/24 10:42
字数 2343
阅读 177
收藏 13
点赞 0
评论 0

              我告诉自己,系统与做普通网站还是有区别的,因为系统的复杂度会随着运行远远超出前期的设象,有人说我想多了,我承认我想多了,可这是一个问题,项目实践有一句话:“有可能发生但是没有发生的问题叫风险,如果问题已经发生,那就是真的问题”。我认为对项目本身的控制在于对潜在各种风险的规避。如果处理不好,那就失败,真是这样。

             很多时候,我们都会做一件事情,就是系统调研,用户群体,功能分块,权限角色、产品优势,未来市场等等乱起八糟,可能这不是一个程序员关心的事情,但是这是一个思维方式转换的尝试

            我相信会有哥们对项目任务专注与本身,而没想过以后或者改动怎么办,或者换来的只是先前的代码彻底推翻,甚至重写功能,多加下班,再把功能代码书写一遍,换来的只是费力不讨好,要这样改要那样改,甚至 ‘改尼妹’的想法都有。

            我遇见过两个我最佩服的产品经理,不知是不是因为他们都是技术出身还是其他,他们给我的影响特别大,给我很多很好的建议和编程习惯的转变


           ================================================
            ########  别人的总结很精彩,与我共鸣,与你共勉,以下真的写的挺好,小手摘录
            #######   http://club.techtarget.com.cn/spaceindex.aspx 
           =========================================================

              前期思维能力,未做之前先想透彻,再征求大家意见,再对比


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


        用数据证明观点,而不是简单描述观点


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

        本质是要提高自己认识问题、分析问题、解决问题的思想高度


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

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

参考

http://blog.sina.com.cn/s/blog_493a8455010003dp.html  

http://news.cnblogs.com/n/84788/

http://club.techtarget.com.cn/spaceindex.aspx

-------------

© 著作权归作者所有

共有 人打赏支持
威哥
粉丝 18
博文 21
码字总数 14506
作品 0
大兴
程序员
自考总结--爱恨交加的计算机网络

第五次自考,这次是最后一科,计算机网络。接下来,可能是一大篇励志鸡汤。不喜欢喝的可以看其他博客,需要的继续读下去下面有惊喜。 由于项目和个人问题,计算机网络在考试一周之前并没有好...

weienjun
04/15
0
0
技术变成客户才值钱

什么事与钱关联都显得有些俗,但没有钱又觉得这个世界这样的苦逼。作为一个技术人员,绝大多数人都在“苦逼”的生活中仰望“土豪”的生活,而唯一能够让我们达到这一目标的唯一途径就是将技术...

雪源梅香
2014/09/04
0
0
五款神奇的思维导图工具

2016-10-27 你是你的大学 万门 如果你要问我思维导图工具有什么用,那么我想告诉你它就像你手边的稿纸和铅笔一样,是帮助你快速将脑中一堆杂乱的关键字和逻辑关系顺序整理出来的利器,而且还...

Betty__
2016/10/28
120
0
工作那些事儿(8)- 废旧立新

上文说到的卡片式定制化门户,其实有一个参考物,就是iGoogle。现在 iGoogle已经被砍掉,因为google要社交化,现在甚至把 google reader砍掉,事实证明, GR这类应用其实还很有市场的,看现在...

fengwenjie
2013/06/30
0
2
RxSwift之路 2#如何开始

第一步当然是把项目clone到本地,github地址:https://github.com/ReactiveX/RxSwift。 官方文档 学习的第一手资源当然是项目提供的文档。在项目的Document目录下放着项目的一些概念说明。看...

没故事的卓同学
2017/07/12
0
0
技术商业思维,助力企业做大做强

技术商业思维,助力企业做大做强 很多人认为,技术只是一种工具。这种思想在互联网时代,特别是人工智能时代已经落伍了。 优方案holison认为,技术是一种思想,一种战略,一种核心竞争力的体...

holison
2017/05/04
0
0
10 多年代码经验腾讯管理谈职业规划

此人是我眼中的大神,曾经任职EA高级技术,腾讯技术管理,在级别提升后因为厌恶政治斗争,毅然离开腾讯开始创业。 CTO眼中的牛人是什么? 有多种解决方案; 有架构思维; 一专多通; 有预判能...

quanke_
2016/04/15
1K
13
私活,永远解救不了自己的屌丝人生

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 今天逛CSDN看到一个投票的议题: 作为程序员的我,接私活有错么? 我艹,“我没错”以碾压性的票数94%获胜,...

csdnsevenn
03/10
0
0
目前月薪3600左右的朋友,2018年你就等着吧

很多朋友面对自己的工作,没几个说得上是真正喜欢的。很多人都是为了生活,为了家庭和孩子而工作。再苦再累也要坚持下去,特别是现在物价上涨工资不涨的状况。说白了上班就是为了钱,而根本不...

浪花两朵
2017/11/21
0
0
为什么开发者需要拥有运维技能?

开发和运维可以说是一体两面,正如对于一个司机而言,如果只会开车而不具备车的维修保养知识,那这样的司机在市场上是吃不开的。即使是为自己开车,这样的私家车主也会因此而付出额外的经济代...

胡键
05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
20分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
41分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部