我问这个,因为明天是我第一次与客户会面,她告诉我,她现在正在做什么(手工)以及它是什么,新的网络应用程序到底应该做些什么.
我想知道,在她向我展示这个过程的步骤时我做了什么.我是否识别用例并直接对其进行建模?我是否在prosa中描述过程?如何描述/转录从现实世界到模型的过程,然后模型是代码的基础?
为您开发新开发项目的最佳实践是什么?有小费吗?
这一切都与流程和管理期望有关,与技术无关.大多数客户所犯的错误(尤其是较小的咨询公司)是他们寻求固定价格合同(可能需要支持T&M:时间和材料).他们这样做是为了进行风险管理,所以这是可以理解的.
问题在于他们通过三种方式为这种低风险付出了代价:
您为降低风险支付溢价.这是软件开发中与金融市场一样的基本原则;
如此大的风险可以放在开发人员身上,成本会上升到天文数字,这恰好使得没有人受益(好吧,它会使开发人员受益,直到事情发生灾难性错误,他们最终总是这样做); 和
你花了很多时间来制定规范并规范你忘记的可交付成果和验收标准,你花了30万美元写了300页的Word文档而不是编码.
所有这些都会使最终结果对于客户来说更加昂贵,对开发人员来说是一种动摇(想要写300页的Word文档?说真的!)并且它会延迟客户实际得到任何东西(从而增加了范围蔓延的风险,与项目的长度成正比).
通过采用T&M方法结合某种形式的快速原型制作方法,定期交付或演示给客户不超过4-6周,双方通常会得到更好的服务.这是为了管理期望.如果客户可以看到正在发生的事情,那么就可以让他们放心,让你继续工作(而不是在GANTT图表的会议中等待时间).
所以你应该做的就是尝试和你的客户一起采取分级方法(婴儿步骤),在那里他们可以看到他们正在获得什么,如何发展和参与这个过程.它可以更快地获得结果并且最终更便宜(双方分担风险负担).
许多开发人员似乎也忘记了一件事,就是它们就像15世纪法国的皇室主题一样.他们可能有特权,甚至是财富,还有许多perqs,但是他们可以在国王(或女王)的喜悦中服务,他们可以随心所欲地斩首.通过这个我的意思是客户最终掌握权力,作为一个开发人员,你的存在是为了让他们的生活更轻松而不是相反.
如果客户想要在Cobol on Rails上开发的粉红色和绿色网站在老板的iPhone上的虚拟Vax/VMS服务器上运行,那就是他们得到的.现在你可以利用你的专业知识和经验来试图说服他们这不是一个好主意,但最终如果他们想要你有两个选择:给他们或走路.
太多的开发人员陷入了向人们提供他们认为应该拥有的东西的陷阱,而不是他们要求的东西.大错.部分过程是与客户保持沟通渠道畅通,这样当他们期待完全不同的东西时,你就不会想到他们想要的东西(或者决定他们应该有什么东西).
即使是一个小型的软件开发项目也很容易达到6个数字.对于付钱的人来说,这通常是一项巨大的投资.他们有权利紧张,你有责任让他们快乐.