Doc 下载: https://download.csdn.net/download/qccz123456/10567658
时间:2018年3月22日星期四
作者:清村常争
一、伟大的软件开发——让客户满意
除开宏大的想法外,大多数项目都有两个焦点:要花多少钱?要花多长时间?
大霹雳式(Big Bang)开发法:集中时间一口气开发完成。通常以一团糟结束,因为没有得到客户心目中的结果。软件开发工作不是玩猜猜看游戏,你必须让客户融入进来,确保你的开发工作在正确的轨道上,明白需求的细节。
伟大的软件开发会交付(1)What is needed客户需求, (2)On Time何时完成, (3)On Budget合同额。
通过开发循环达到目标:你决定每次有重大进展时,你都会与你客户进行确认,并重新确认你下一步要做什么,并且,在没有获得客户的反馈前,你不会做任何重大的决定。如果没有开发循环就会偏离客户的需求。只要你有一段可运行的代码时,就可以和客户进行讨论,尽快产生一个可运行的程序,即使很拙劣,建议的开发循环的时间是20个工作日或一二周。
每个开发循环都是一个微型项目,每个开发循环都会产生有品质的软件:从需求、设计、编码、测试等步骤,到具体每个步骤中完成的各个子阶段,都是一个开发循环。
构建每个开发循环中的每项功能,需要添加一个时间估计值、一个功能优先级。若需求变更,根据新提出的、及剩下的优先级和时间重新安排计划,但在截止日期之前。若具有高优先级功能被提出,最好的选择是将新需求加入到下一个开发循环,并延长软件交付期。但增加开发人员或增加现有开发人员工作时间常常将消耗预算,极少产生所期望的结果。
开发循环步骤:①评估新的功能;②要你的客户对新功能做优先排序;③重新修订你的开发循环计划;④检查项目的截止时间。
开发技术:开发循环有助于你保持在正确的开发轨道上,当需求发生变更时,更新规划和均衡开发循环。每个开发循环都产生有效的软件,并且能从客户那里收集到反馈意见。
开发原则:交付客户需求的软件;按时地交付软件;符合预算地交付软件。
二、收集需求——知道客户想要什么
了解客户需求,并得到使用情节:
(1)倾听客户需求,罗列需求的标题及其细节描述;
(2)分析理解需求后,提出自身所能想到的问题,并与客户讨论;
(3)第一次会议后,和团队一起进行头脑风暴,听取他人想法;如果让大家共聚一堂时,没有什么效果,可以与他们分别地进行头脑风暴,然后再集中起来,把众人想法写在白板上,再进行头脑风暴,有时候,可以先散会,思考思考,再开第二次会议。
(4)采用角色扮演和观察等方法了解客户真正需求;扮演软件、从不同场合进步观察。
(5)采用客户的语言来撰写需求,简短,易理解,并与客户讨论,最终得到清晰的、以客户为中心的使用情节。
为每个使用情节添加时间估计值,单位是天数,需要多长时间完成开发,包括设计、编码、测试、交付。
步骤:①把每个使用情节放在桌子中间;②给每人发13张牌,每张牌上有一个时间估计;③每个人都为使用情节选一个估计值,将与估计值对应的牌翻过来放在桌上;④每人在同一时间把牌翻过来;⑤发扑克牌的人记录下由每个估计值形成的分布;⑥得到一个合理的时间估计值。
过程中可能存在的问题:① 分布太散可能存在理解错误。②当你不能排除所有假设时,时间估计期间的目标是通过客户澄清假设、排除尽可能多的假设,任何残存的假设都是风险。③珍惜客户时间,客户只需要看到听到你的问题,还有建立起来的使用情节。④试着一次收集好所有假设,然后立刻与客户全部进行澄清,安排一个排除假设的会议,一旦有答案了就进行最后一轮计划扑克牌游戏。⑤当使用情节(每个具体的子任务)的估计值打破了15天的规律(一般不应该超过7天),你可以根据下述做法,择一而行:把使用情节分解为若干个更容易估计的使用情节;与客户进行交流。
得到合理的时间估计值,重复进行以下步骤:(1)与客户交流(2)进行计划扑克牌游戏(3)澄清假设(4)达成一致。直到大家都相信某个估计值,并且你并不怀疑所做的假设时,就可以在使用情节卡片上记录这个估计值。
总计总的时间估计值,得到总的交付时间。当时间太长,第三章进行项目计划,得到解决。
开发技术:共筑愿望,观察和角色扮演使用情节;以计划扑克牌游戏得到估计值。
开发原则:客户知道他们想要什么,但有时候,你需要帮助他们确定下来;需求总是面向客户;与客户一起