如何开始建模Web应用程序?

时间:2009-01-27 11:53:06

标签: web-applications modeling

我问这个,因为明天是我第一次与客户会面,她告诉我,她现在正在做什么(手工)以及它是什么,新的网络应用程序到底应该做些什么。

我想知道,我在做什么期间向我展示了这个过程的步骤。我是否识别用例并直接对其进行建模?我是否在prosa中描述过程?如何描述/转录从现实世界到模式的过程,然后模型是代码的基础?

为您开始新开发的最佳做法是什么?有什么提示吗?

6 个答案:

答案 0 :(得分:7)

所有这些都与流程管理期望有关,而与技术无关。大多数客户犯的错误(imho) - 特别是较小的咨询公司 - 是他们寻求固定价格合同(可能是支持T& M:时间和材料)。他们这样做是为了进行风险管理,所以这是可以理解的。

问题在于他们以三种方式为这种低风险付出代价:

  • 您为降低风险支付额外费用。这是软件开发中与金融市场一样的基本原则;
  • 开发人员可能面临很大的风险,即成本上升到了天文数字,这恰好没有人受益(好吧,它会让开发人员受益,直到事情发生灾难性的错误,他们最终总是这样做);和
  • 你花了很多时间来制定规范并正式确定你忘记这样做的可交付成果和验收标准,你花了30万美元写了300页的Word文档,而不是,你知道,编写一些东西。

所有这些都会使最终结果对于客户来说更加昂贵,对于开发人员(想要编写300页Word文档而感到失望?严重!)并且它会延迟客户实际获得任何东西(从而增加了范围的风险)蠕变,与项目的长度成正比。)

通过采用T& M方法结合某种形式的快速原型制作方法,定期交付或演示给客户不超过4-6周,双方通常会得到更好的服务。这是为了管理期望。如果客户能够看到正在发生的事情,那么就会让他们放心,让你继续工作(而不是在GANTT图表的会议中等待时间)。

所以你应该做的就是尝试和你的客户一起采取分级方法(婴儿步骤),在那里他们可以看到他们正在获得什么,如何发展和参与这个过程。它可以更快地获得结果并且最终更便宜(双方分担风险负担)。

许多开发者似乎也忘记了一件事,就是他们就像15世纪法国的皇室主题一样。他们可能有特权,甚至是财富,还有许多perqs,但是他们可以在国王(或女王)的喜悦中服务,他们可以随心所欲地斩首。通过这种方式,我的意思是客户最终掌握权力,作为开发人员,你的存在是为了让他们的生活更轻松而不是相反。

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

太多的开发者陷入了向人们提供他们认为应该拥有的东西的陷阱,而不是他们要求的东西。大错。部分过程是与客户保持沟通渠道畅通,这样当他们期待完全不同的东西时,你就不会想到他们想要的东西(或者决定他们应该有什么东西)。

即使是一个小型软件开发项目也很容易达到6个数字。对于付钱的人来说,这通常是一项巨大的投资。他们有权利紧张,你有责任让他们快乐。

答案 1 :(得分:1)

大多数开发人员没有花时间去做这件事,而是直接进入建模类图和系统架构,但我要说的是写下她提到的每一个功能。不要担心分组,或者它们如何组合在一起。当时,您只需要从她的每一项功能中获取。当您离开并开始考虑应用程序时,您将开始在功能部分之间绘制相关性,最终将最终分组为具有属性和方法的对象。

答案 2 :(得分:1)

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

此外,看看您是否可以找到适合您的目标平台的快速开发工具,以便您可以快速获得客户面前的某些内容以获得早期反馈。例如,如果您使用的是Java EE,请查看支持往返的Spring Roo

答案 3 :(得分:0)

我认为你的客户不想和你讨论任何这些事情......我打赌她会向你展示一些关于如何组织页面以及她希望事情如何发挥作用的图纸。

您应该按照她的演讲提问(总是以用户的观点为准),这样您就可以按照自己的预期完成工作。为自己留下技术资料;)

答案 4 :(得分:0)

用户对其工作方式不感兴趣。对他们来说,这完全是关于界面的组织和执行操作的必要步骤。我同意上述建议,记下功能和接口要求,并了解它们是如何以及是否可以建模。

分析后再次与她谈谈你能做什么和不能做什么,并提出解决方案或改进。

答案 5 :(得分:0)

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