博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我与项目的化学反应 ——读《程序员修炼之道》有感
阅读量:5010 次
发布时间:2019-06-12

本文共 2116 字,大约阅读时间需要 7 分钟。

正如书中所说,我曾经产生过自己的项目会失败的感觉,因为自己很迷茫不知道自己该如何去完成自己的团队项目,那种迷茫感在一开始的时候一直围绕着我,直到组长开始逐步把项目分块,一步步细分后,并且要求每个人需要做什么的时候,我心中的那块阴霾瞬间消失了,今天在书中巧合的遇到了自己的情况,于是自己十分好奇的想看看自己到底发生了什么?

“完美,不是在没有什么需要添加,而是在没有什么需要去掉时达到的”,这句话说得很直白,意思让我很是赞同,但也惹人深思,一样东西排放在你的面前时,你可以说出这样就可以不需要什么的时候,它自然是不完美的,因为在潜意识里对于已有的并不太满意,但如果你很满意,一切都是那么的贴切,不多不少,不需要把删掉的时候,你潜意识里已经将已有东西视作了完美的东西,自然世上没有完美的东西,都是用户的心理感觉,因为用户的满意便是我们最大的完美。一个项目开始,就需要进行“需求”的搜集,意思就是需求就在那里,我们需要去找到它们,但是需求很少存在表面上,通常,它们深深地埋藏在层层假定、误解和政治手段的下面,这就好比你询问你身边的人你现在需要什么的时候,大多数人会回答他在做事情的需求,而真正有用的却无法看到。所以需要我们的挖掘,作者总结了什么是需求,就是对需要完成的某件事情的陈述,例如只有指定人员才能查看员工档案,这个究竟是不是需求,比如是“只有员工的上级和人事部门才可以查看员工的档案”才是需求,还是“只有得到授权的用户可以访问员工档案”是需求,这两种有一丝不同的陈述带来的是巨大不同的影响,这决定了一个开发者的设计与实现。所以我们需要找出用户为何要做特定事情的原因,而不是他们目前做这种事情的方式。这个我就想到了支付宝,他们找到了掏钱的原因,而不是掏钱的动作,掏钱的原因自然是消费,所以支付宝实现了消费的时候可以直接用手机支付,如果他们找到的是用户掏钱的动作,那么支付宝可能就不会存在,现在恐怕人们上街的时候还要带着大量的现金。同样理解用户就需要与用户一同工作,像用户一样思考。作为职业人员,需要建立需求文档,把需求写下来,并发布每个人都可以用作讨论基础的文档,由于听众的范围相当广泛,所以要注重什么样程度才是合适的,不能太过具体,需要保持抽象,在涉及需求的地方,最简单的能够准确地反映商业需要的陈述是最好的。有一句话作者总结的很精辟:需求不是架构,需求不是设计,也不是用户界面,需求是需要。

很多项目的失败都归咎于项目范围的增大,也称为特性膨胀。我身边就有这个事情,软工的第一次方向确定的时候有一组同学不仅想做出上学期有的组的的软件,并且优化合并,即综合于一体,开始的时候感觉这个项目很有前途,但是冷静一想,时间与人手方面并不充裕,实现一个这么范围大的项目,最后会不会变成一个四不像。这个问题同样出现在了我们的身上,在游戏的制作中突然想到我们要不要加上一个即时聊天的模块,想法是很好,但是今天看到了这个问题,自己一想确实,我们的目标是做游戏,首要的工作是把游戏做出来,像聊天系统到最后有时间在开始,成为锦上添花,而不是成为影响进度的绊脚石。

一开始的时候便会有一些特定含义的术语,所以在系统中应该注意不能够随意使用,也就是我们需要创建并维护项目词汇表,避免到时候两个人用了不同的词却表达一个意思,然后出现分歧的错误,用同一名称指称不同事物,这样的项目很难取得成功。

“解不开的结”一个从小便听过的故事,出现的时候难免会有一丝怀念,当时的自己是多么憧憬成为亚历山大一般的人,如今我同样需要他的教导,学会在项目工程设计中解决那些看起来非常困难的“谜题”。原本自己以为“当局者迷,旁观者清”,但作者却说需要盒子外和内一起,才能解开谜题,其关键在于确定加给的各种约束,并确定自己确实拥有的自由度,因为在其中将找到解决方案,这也是有些谜题为何有效的原因,最终需要的是我们找到“盒子”,即确定约束。这个让我想到了第一次的个人作业,起初的时候是完全不知道如何下手,但在细细的读老师的要求,脑海中慢慢的产生了哈希表的方法,有一个约束的条件是真的可以提高思考的效率。

每个人都害怕空白的纸页,我也是如此。作为一个开发者,在整个职业生涯中都在做同样的事情,一直在实验各种东西,看哪些是可行,哪些不可行,期间一直在积累经验与智慧,所以面对空白时,一个有效的方法是开始构建原型,如果出错了,可以及时掉头,如果对了就可以继续进行,这样可以避免开头时的的不知所措,也能为团队节省可观的时间。在真正的工作的时候要避免成为形式方法的奴隶,而是作为形式开发方法的一种工具,这个由于自己对于开发经验的欠缺,对此没有一些很明确的体会,不过我记住了,作为一个注重实效的程序员要批判地看待方法学,并从各种方法学中提取精华,融合成每个月都在变得更好的一套工作习惯。

不仅在个人项目还是团队工作的日子里,我学到了很多,结合了书里理论部分,我逐渐明白了软件开发中身处于一个团队里或者自身需要注意每一个要点,自己仿佛看到了注重实效在向我招手,但也看到了我们之间的距离与路上的坎坷。

转载于:https://www.cnblogs.com/Whydd/p/8722020.html

你可能感兴趣的文章
mvc性能优化
查看>>
log
查看>>
663 如何做“低端”产品?(如何把低端做得高端 - 认同感)
查看>>
JDBC 第九课 —— 初次接触 JUnit
查看>>
Windows核心编程:第10章 同步设备IO与异步设备IO
查看>>
浏览器加载、解析、渲染的过程
查看>>
开放api接口签名验证
查看>>
sed 常用操作纪实
查看>>
C++复习:对C的拓展
查看>>
校外实习报告(九)
查看>>
android之android.intent.category.DEFAULT的用途和使用
查看>>
CAGradientLayer 透明渐变注意地方(原创)
查看>>
织梦DEDE多选项筛选_联动筛选功能的实现_二次开发
查看>>
iOS关于RunLoop和Timer
查看>>
SQL处理层次型数据的策略对比:Adjacency list vs. nested sets: MySQL【转载】
查看>>
已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
查看>>
MySQL的随机数函数rand()的使用技巧
查看>>
thymeleaf+bootstrap,onclick传参实现模态框中遇到的错误
查看>>
python字符串实战
查看>>
wyh的物品(二分)
查看>>