隐变量(Hidden Variables)

本文探讨了软件开发过程中人的因素所带来的不确定性,指出传统的确定性思维难以应对日益复杂的软件项目,并提出了考虑人的因素对于项目成功至关重要。
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

在软件开发的过程中的确存在另外的变量,但是他们并不是隐变量的<wbr></wbr>,我们只是忽略了它们,这些被称为"人"的变量很多人都有可能成为<wbr></wbr>,它具有不可预知性除非你在寻找一种方法论来排除他们<wbr></wbr>。应用方法论的目的是什么呢?我认为就是得到一个可以忽略掉任何相<wbr></wbr>关的独立因素而仍然可用的公式。管理者最大的心愿就是程序员可以被看作是<wbr></wbr>可以互换通用的部分,因为否则的话公司看来对于一个工程的成功与否<wbr></wbr>就完全有偶然性来支配了。


我认为这个问题或者很多有关于计算的细节就是确定性的思想<wbr></wbr>。它看起来似乎就是逻辑推理,毕竟我们研究的是的是一个 YES或者 No的二元领域。但是在工作中似乎存在着一些不确定原理<wbr></wbr>。当系统变得更大更复杂的时候我就走出了 YesNo 的领域,而进入了存在可能性的世界。


但是希望似乎就在哪里,我们却依然不能得到:应该存在一个神奇的公<wbr></wbr>式,它将让我们确定性的控制工程的结果。而在我们寻找一个确定性答<wbr></wbr>案的时候,我们不能考虑到没有的可能性或者至少这不是最多产的方式。而且我们当然不能承认通向成功的路可能主要的在于人类的相互作用<wbr></wbr>,或者成功的项目正如它们喜欢的是通过雇佣可能存在的最好的组的可<wbr></wbr>能性堆积而成的,这里的"最好"的意义随着多的无法控制的变量而变<wbr></wbr>化,因此在不同的环境里有不同的答案。


我认为最难承认的事情是,软件的发展是和装配线路完全相反<wbr></wbr>,但是却远非写小说或者演话剧甚至是画画之类的艺术创作<wbr></wbr>。似乎我们完全忽略了行为的重要细节。谚语曰:"画画就是把颜料涂<wbr></wbr>在表面。所以我可以像莫奈特用他的画画工具把颜料涂到一个表面一样<wbr></wbr>用喷漆枪在谷仓上达到一样的效果 ."。而且毕竟我们只是在操作比特,所以这似乎就是推出一个逻辑的结<wbr></wbr>论,除了它好像会不好用。


在我们坚持确定论思想的时候,我们对可能存在的更好的方法熟视无睹<wbr></wbr>。依然很难放开这种思想反问一下:如果没有可能控制所有的事物怎么<wbr></wbr>办?我们究竟如何依靠我们的喜好来推动事物并且在那些约束范围之内<wbr></wbr>工作?




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值