不完善软件开发的利弊
- 2/1/2011
- Categorized in: 其它特邀作家
我在去年的文章中,我把我自己的错误与自嘲的幽默用来描述软件开发商的不完善软件开发模式。导致很多人都认为我失去了理智并且嘲笑我,这期我想我需要回到这个问题上来讨论下不完善软件的开发利弊。
优点:用户和卖家皆大欢喜
尽管我自我抨击,并且也抨击了和我一起工作的人,我还是试图弥补一下说一下这么做的好处。首先也是最重要的,分步的软件开发过程可以使我们能够尽快地提供给我们的用户一个有效的解决方案。虽然其他装饰的东西会来得晚点,但至少你能够很早就用上它开始干活了。同时这种做法使我们有更多的机会,将我们更多的用户带到软件最终的开发中来。
当我们把第一阶段(即不完善软件)解决方案放到客户手中的时候,我们邀请他们到我们的办公室坐在我们的工程师旁边。我们现在有了完美的媒介,使我们能有一个供应商和用户之间共同对话的机会。我们不能保证的解决方案是完美的,但我们随时随地准备接受客户们发现的错误。
这是一个我们从一个简单的“电话”中学到的(见图1)从客户到客户代表到产品经理到软件开发人员,整个事件的传递会变得迟缓。一次又一次,双方都想协商出一个客户满意的解决方案,但结果是与客户所想要的相反。 
图1。传统的软件开发流程。发展进程的每个方面,必须依靠彼此之间的沟通技巧,从而保证客户的理念正确传达给开发人员。这样的过程肯定是有缺陷的。
因此,与其在未知的有缺陷的系统上瞎摸索下去,我们宁愿选择把我们的第一阶段软件交到的客户手中,这样使我们都可以在一个平面上进行交流。(见图2)在这里的一条金科玉律:图片总是比文字有利。尤其是当这些照片真的动起来,同时演示也可以通过互联网开展,从而深入研究软件,以及暴露出其不足的一面面。

图2 不完善软件模型的第一阶段。通过沟通,已知缺陷后,在软件开发的间隙期间,因为大家手里的软件版本都是相同的。所以可以让各方在一个平面上沟通。
但与一个分段开发模式的主要区别是,我们将软件的第一版本列入了当前的软件发布列表中。这意味着客户可以在一个实际的项目中使用这个软件,从而我们可以获得更多的实质性反馈。我愿意打赌你们中的大多数都同意这个思路,只是看到您的软件供应商的演示相比实际应用来说还是远远不够的。
最后一个此方法的好处是80/20规则。当我们与客户合作开发一些产品的时候,这样会增加我们的更新换代,而不是他们要求什么我们做什么,其他80%的用户群也会对此较为满意。因此,就像是我们有一小部分的外包人员来帮助我们完善我们的初步解决方案,然后我们我们的工作是解析这些客户反馈来的信息。
有时一个客户会提出一些其他客户有可能用不到的功能,我们仍然将他们的意见结合到我们日后的开发中,这算是给他们热心参与的奖励吧。。
缺点:开发者的不完善软件难以预测
以下是这个开发方式的负面 - 我们的开发人员看起来像懒虫。对于A型性格的用户,反应往往是觉得我们是无组织的傻瓜,做着很差的工作。(这是五年前的我,每次我们做一个软件项目几乎面临精神崩溃的痛苦,因为它从来没有完美过)但即使是B型性格偶尔会感到沮丧,说:“你为什么总要我干?为什么你不能管好你自己的工作呢?“
我们鼓励我们的客户尽可能多的参与到软件工具的开发中来,没有听到他们是怎么说的,我们就不能真正触及业界的需求。当然有时候会浪费我们大量的时间,因为收到很多客户毫无建设性价值的抱怨,也不告诉我们他们究竟是需要什么东西。
或者,涉及与新的“伙伴”客户合作的时候,我们过了一段时间才发现他们并没有意识到是怎么回事,使得我们双方都很尴尬,同时我们也意识到他们并不是业内真正的专家。有时候,你试着去交朋往往会让你失去朋友。
真正的答案
最好的答案是选择你的道路,坚持下去。如果你喜欢向您的供应商提供反馈,那么请保持下去。如果没有这样的习惯,那么不做也罢。
经过了一些教训和苦果,我开始有点老道了,我可以诚实地说,任何软件开发方法的最大缺点你不能简单得取悦所有人。这样就没办法赢得所有客户,因为客户有权决定是否购买。他们有权利抱怨,有权对希望看到更多的 - 尤其是在这个行业,软件的需求在一夜之间改变。
如果你向我们投诉,我们可能会做出一些对工具的改变有利于每个人使用。
那么你是哪一方呢?
1。我喜欢帮助发展自己使用的软件。
2。别烦我!
3。我很高兴能看到软件有一些新功能。
请给我一封电子邮件,告诉我你在这个问题上选择。
Abby Monaco是Intercept Technology的产品技术经理。联系方式:abby_monaco@intercept.com。
