客户应该知道的软件开发八个原则(转)

简介:
1. 好的软件一定不便宜  我常常遇到的一个问题是,客户想要花不到500欧元建立一个全功能的企业网站。这个价钱你可以找我隔壁的12岁小男孩,用Joomla帮你搭一个,但是专业的软件开发者,懂得软件架构,懂得如何开发安全,稳定,能良好运行的软件的一点比这个价格要贵很多。软件开发和别的职业是一样的,需要花大量的时间学习。
除此以外,很多客户往往在合同以外要求添加一些功能,免费的。你的医生不会免费工作,你的扫地阿姨不会免费工作,你也不会免费,为什么要求软件工程师免费工作?
我有见到很多客户雇佣了一些便宜的、自称专业的开发者,或者外包开发到印度,越南,结果往往很失望。这些渠道看上去是便宜了一些,但是后期的软件维护成本非常昂贵。所以很多客户尝试了一次以后,还是回头来找我开发。
2. 需求要明确  我们知道一开始就能列出所有详细的需求是很困难的。这也是为什么我们发明了敏捷开发这样的技术。但是如果你给我们错误的需求,我们也只能交付错误的软件。你可以因为软件不好用而责怪我们,但是你给了我们不对的需求在先。最终浪费了双方大量的时间,也浪费了很多钱。软件开发者也许很聪明,但是只有你了解你的业务需求!
3. 好的软件需要配合完成  为了交付一个好的软件,开发者应该在项目中全力以赴。但是客户也不能坐在一边对这个项目不闻不问。如果你想要你的软件按时、正确的交付,你应该和开发者保持联系,所以我们能及时发现问题并修正。这并不需要你无时无刻的盯着我们工作,你只要及时的回复我们的email就可以了,比如说24个小时之内。我有遇到过一些客户,在合同签完以后彻底消失,然后到软件交付的时候,跟我讲为什么没有开发完成?你说呢?!
4. 并不是所有的功能都是可见的  没有绚丽的界面和大量的新功能并不意味着我们没有努力工作。事实上,大量的工作都是和前台无关的。这也是为什么我们应该投入资源来改进后台的代码。根据 Pareto Principle http://en.wikipedia.org/wiki/Pareto_principle ,20% 的代码 解决了80% 的问题。这些问题有可能是服务器性能瓶颈或者数据损坏。虽然你花钱在这些方面你看不到软件的界面变化,但是它是值得的。
5. 提前给出准确的时间预测很困难  在任何一个领域,给出项目的时间预测是一件困难的事情。在IT领域更是如此,因为客户往往不知道他们到底想要什么。告诉我们你的想法,我们会给你一个时间估算,仅仅是估算。需求往往在开发过程中变化,所以不要老拿预估的时间来说事。
6. 程序员也是人  我们也许工作起来,思维方式像是机器人,我们也许长时间在办公室里不出来,但这并不意味着我们不是人类。当你在餐馆吃晚饭,或者做飞机安全着陆的时候,你会对厨师和飞行员表示感激,当你的家人在医院治愈的时候,你会对医生表示感激。那么请也把这份感激、尊重带给我们。
7. 告诉我要做什么,不要指挥我怎么做  你描述你的问题,让专业的人来提出解决方案。请让开发者做他擅长的事情:解决你的问题。在IT领域,开发者懂的往往远远比客户多。也就是说开发者知道不同的方案的优点与缺点,他会选择正确的解决方案。请不要把简单的问题复杂化,不要告诉我们如何解决问题,专业的问题由专业的人来解决,可以节省你的很多时间和金钱。
8. 听听我们的建议  正如上一段提到的那样,开发者在技术领域也许比你(客户)懂的多。如果你想要在你的网站放一个自动播放的视频,而开发者建议你不要这么做,那么听他的。因为他已经做过类似的案例,并且知道自动播放让很多人很厌烦。你喜欢这个视频,但是其他人不一定。如果你的开发者建议你不要使用Flash,那么相信他。他知道使用Flash的不好的地方,也许你不知道。

结论 软件开发者需要做所有的努力来完成一个好的软件。有很多书籍讲述了关于如果控制软件质量,怎么做需求分析,敏捷开发等等。但是作为客户,你也应该遵循一些基本的原则。最大的问题往往是客户希望项目的预算越低越好,却不断的更改需求,还没有很好的沟通。



本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2012/03/13/8-Things-clients-need-to-learn-about-software-development.html,如需转载请自行联系原作者

相关文章
|
6月前
|
敏捷开发 安全 JavaScript
敏捷测试的8大原则和7大挑战
敏捷测试的8大原则和7大挑战
221 0
敏捷测试的8大原则和7大挑战
|
编解码 运维 监控
总结|工作中常见的沟通协作原则与方法
作者抛砖引玉总结了工作中常见的一些问题,包括如何让表达更高效的办法和目标制定的方法。
5131 9
|
搜索推荐 安全 数据安全/隐私保护
产品设计方法与原则
产品设计方法与原则
275 0
产品设计方法与原则
|
程序员
产品设计的几个原则
我认为产品经理最重要的工作是在有限的资源里,做出一个可交付的产品,然后不断打磨产品的价值。而产品是否具有价值,需要放到市场上去验证。
135 0
产品设计的几个原则
|
机器学习/深度学习 Go 持续交付
精益软件开发的七大原则
主要介绍精益软件开发的七大原则
2478 0
|
设计模式 XML 安全
|
存储 开发者
软件研发中的N条原则
软件研发中的N条原则
215 0
软件研发中的N条原则
|
安全 程序员 开发者
软件开发中的80:20原则
Jim Bird是一位经验丰富的软件开发经理、项目经理与CTO,专注于软件开发与维护中疑难问题的解决、软件质量管理与安全领域。在过去的15年间,Jim曾管理过团队建设与高性能的财务系统。他的主要兴趣在于如何帮助小团队更有效地构建真正的软件:高质量、安全、高性能且易使用。近日,Jim撰文谈到了如何在软件开发中应用流行的80:20原则,颇具代表意义。
376 0
下一篇
无影云桌面