“墨菲定律”是一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出的。
主要内容:
一、任何事都没有表面看起来那么简单;
二、所有的事都会比你预计的时间长;
三、会出错的事总会出错;
四、如果你担心某种情况发生,那么它就更有可能发生。
基于以上,我们来做项目排期。
1.基于一,可以分两个角度来看,
a,项目外部看,即外行人看,我相信每一个从业者都有过这样的经历,帮我做一个类似于xxx一样的系统吧 我相信每个从业者都很难回答,因为,如果说这是一个需求的话,恐怕能够让他提出要被抄袭的软件应该是数百人,甚至于上千人迭代开发的产品,如果按照工时算的话,数千数万人月的产品吧。
b,项目内部看,所做的功能无外乎增删改查,然而在落地的时候,可能会有设计缺陷,产品逻辑缺陷,技术实现方案具化后需要考虑的性能问题,安全性问题等等都是在落地过程中逐一暴露的
2,其实基于一很容易理解,墨菲二其实就是一的现象,一是二的本质,
3,会出错的总会出错,这个其实就是极限思想,因为太简单就不做过多说明。举个栗子就好,当某事件发生的概率是亿分之一,当实验次数取+∞的时候,该事件就是必然事件。
4,这个请教过一位心理咨询师,四现象被认可其实属于一种心理暗示,放大了因果关系,例如在中国文化传统里,行善乐施长寿的老人,大家都会认为是福报,然后相互宣扬,之后会认为是关键因素,就像我担心明天股市会跌,然后10次担心中,有1次中了,就会觉得自己的担心的真的发生了,说到这里大概持有反对意见属于理性思维较弱的人还会质疑,那么持有疑惑的读者继续,接下来的例子,你就中了,你翻看一下星座性格描述,
怎么样,准不准,至少有一条及其符合你自己吧
这个准其实来自于,每个星座描述的性格并非特征话的性格,相反,更多的是人性,是一些共性,在随机添加了一些特征,也就是说,只要你觉得它准,那么你总能证明它是准的
废话聊到这里,那么作为技术人员,我们应该理性看待,毕竟我相信你至少是一位工科类学士,那么完全可以用数学去证明定律的准确性。
而项目工程中,我们要做的就是尊重定律中的问题,规避风险,那么,要做的事情有以下几点
1.首先就是工程排期,大项目拆解,分阶段完成,让不可控风险落在了不同周期,
2.每个周期里,进行进度评估要在清晰的工作量上乘百分比来尽可能持平定律一的现象,百分比的值取决于工作人员对项目的认知,技术的把控,学习能力及沟通能力的综合评估。
3.提高质量检测的覆盖率,软件中,提高的是单元测试的覆盖率测试用例的全面性
4.不做防御性编程,我曾见识过防御性编程,代码中就是一种恶臭,我们既然是软件工程师,我们要有工程师的设计导向能力,不做额外异常情况处理,因为如果我们做了太多的干涉将会将一个本身很小的风险隐藏埋没成为后患,这里提及是合理使用try catch。当你不确定异常要不要catch时,请大胆的参考你所欣赏的开源项目的写法。
再升华
定律本身就是自然现象,公理的归纳于描述,当相应事情发生的时候,要理性沟通解决,举个栗子,当某task依赖同事task时,可能出现同事task对接你的信息异常,此时,设计上,我们要考虑到这种情况发生,当没有考虑到的发生时,并非一味指责甩锅,解决问题,关于定责,我相信大多时候,裁决人并非真能断的清楚。换句话说,如果事发前问,定责人的答案很大可能上和定责中的时候,答案本身不一致,因为,现在你想想与你交接的事宜中,其实出现了问题,你理性中有一个很清晰的边界定出责任线,but,真的出了问题,大多时候,鉴定结果为双方责任,主次而已,
当然,作为一个优秀的工程师,帮别人摊一下锅,也算一种优秀。如果真的环境恶劣,我相信,你只要优秀,完全不用与他们纠缠,去更优秀的环境里吧,毕竟,当你和傻瓜吵架时,别人很难分清谁是傻瓜了
网友评论