2009-01-27 36 views
7

我问这个,因为明天是我与客户,其中她告诉我,她是正确的,现在做的(用手),并且它是什么,有什么新的Web应用程序到底应该做的第一次会议。如何开始建模一个Web应用程序?

我弄不明白,她在我做我显示了该过程的步骤。我是否识别用例并直接对其进行建模?我在prosa中描述过程吗?我如何描述/转录从现实世界到模型的过程,然后才是代码的基础?

什么是最好的做法,开始与你一个新的发展?有小费吗?

回答

7

这全是关于流程管理期望和技术很少有关。大多数客户犯的错误(特别是对于小型咨询公司而言)是因为他们采用固定价格合同(可能需要支付账单T & M:时间和材料)。他们将此作为风险管理练习,这是可以理解的。

的问题是,他们有三种方式支付较低的风险:

  • 付您较低的风险溢价。这是软件开发和金融市场一样的基本原则;
  • 开发人员可以承受的风险是成本上升到天文数字,这对任何人都没有好处(当然,这对开发人员有利,直到事情发生灾难性的错误,他们几乎总是这样做);和
  • 你花了这么多时间来制定一个规范,并正式确定你忘记的交付成果和接受标准,你只花了30万美元编写一个300页的Word文档,而不是编码。

所有这些服务,使最终结果为客户更加昂贵,士气低落的开发者(谁愿意写300个Word文档?认真!),并延迟客户端实际得到任何东西(从而增加了范围蔓延的风险,这与项目的长度成正比)。

通过采用T & M方法结合某种形式的快速原型开发方法,定期向客户提供不超过4-6周的交付成果或演示,通常可以更好地服务双方。这符合管理期望。如果客户可以看到正在发生的事情,它可以让他们放心,并让您继续工作(而不是在通过甘特图表进行会议的等待时间)。

所以你应该做的就是尝试并让你的客户去采取毕业方法(婴儿步骤),在那里他们可以看到他们得到什么,它是如何演变和参与过程。它得到的结果更快,并且最终更便宜(双方共担风险负担)。

许多开发者似乎也忘记的一件事是,他们就像在15世纪的法国皇室主题。他们可能有特权,甚至是财富,还有很多额外的东西,但是他们为国王(或女王)的乐趣服务,他们可以随心所欲地引导他们。我的意思是客户最终掌握了权力,作为一名开发人员,您的存在让他们的生活变得更加轻松,而不是相反。

如果客户想要一个在Cobol on Rails上开发的粉红色和绿色网站,并在老板的iphone上的虚拟Vax/VMS服务器上运行,那就是他们得到的。现在,您可以利用自己的专业知识和经验来尝试说服他们,这不是一个好主意,但最终如果他们想要这样做,您有两种选择:给他们或走路。

太多开发者陷入给人们他们认为他们应该拥有的东西,而不是他们要求的东西。大错。这一过程的一部分是与客户保持沟通渠道畅通,以便在他们期待完全不同的事情时,不要认为他们想要某些东西(或决定他们应该有什么)。

即使是一个小型的软件开发项目也可以轻松运行成6位数字。对于付费的人来说,这通常是一项巨大的投资。他们有权利紧张,你有责任让他们开心。

0

我不认为你的客户想和你谈谈,这些事情......我敢打赌,她是要告诉你的事情怎么样的页面要组织以及如何她希望工作的一些图纸。

你应该只需按照她的介绍,询问的问题(总是站在用户角度),所以你可以为她希望做你的工作。离开自己的技术的东西;)

1

大多数开发者不会花时间来做到这一点,并直接跳转至建模类图和系统架构,但比什么,我会说要记下每一个功能,她提及。不要担心分组,或者他们如何融合在一起。当时,你只需要从她那里获得可能的每一项功能。当你离开时,开始考虑应用程序,那么你将开始绘制各个功能块之间的相关性,最终将最终分组为具有属性和方法的对象。

0

用户对如何工作并不感兴趣。向他们介绍接口的组织和执行操作的必要步骤。我同意上述建议,写下功能和界面要求,并看看它们是如何以及是否可以建模。

分析结束后,再次询问她可以做什么,不能做什么,并提出解决方案或改进。

0

客户最有可能告诉你他们在与他们谈话的前5分钟内想要什么。之后的任何事情只是枕头说话。

+1

枕头说...我希望我有这样的客户 – inspite 2009-01-27 12:34:34

+0

哈哈哈 - 我的源代码是(我认为它的第200页)重构你的wetware关闭实用书架 – 2009-01-27 12:45:14

1

我可以衷心推荐Eric Evans的“Domain Driven Design”。它解释了如何对问题域进行建模,并在此过程中建立一种无处不在的语言,通过它,您和客户可以清楚地了解应用程序的功能。

此外,请参阅您是否可以为您的目标平台找到快速开发工具,以便您可以快速在客户面前获得某些信息以获得及早反馈。例如,如果您使用的是Java EE,请检查支持往返的Spring Roo

相关问题