我们都是客户

客户被认为是软件开发的越来重要。软件团队必须提供解决客户需求的产品和服务。但了解客户想要的东西并不总是那么容易。 

在“旧日”中,这是关于要求的。确保您在纸上获得所有要求,并让他们签署他们以确定它是他们所需要的。我们现在都知道这不起作用;你根本无法在纸上得到一切,写下来的是常见的,并且在时间里,需要改变。所以需要一种新的方法。

较新的开发方法关注与客户的互动。喜欢在敏捷方法中,在哪里 客户合作更有价值更合同谈判。这些团队使用迭代开发来经常提供解决方案。通过给出解决方案的演示,并要求反馈,他们试图更好地了解客户所需的内容。

许多团队将其客户视为购买软件或使用该系统的部门,另一家公司或者某人。但客户是人,就像你和我一样。他们起床,去上班,喝咖啡,和人谈谈,并希望让他们的客户(和老板)开心。所以即使你不认识它们(通常仍然是这种情况),它们也是人类的,具有良好和坏的习惯,就像你和我一样。

对我来说,客户是一个角色,而不是一个人。一个人使用我们已经交付的产品和服务的角色。类似于我如何使用其他人提供的产品和服务,然后我作为客户。在思考我的客户时,我把自己放在他/她的位置,问自己:我可以用我不能做的新产品做什么?这项新服务如何帮助我?为什么我会用它,对我来说是什么?我试着在我的顾客鞋中走一英里,了解他们希望从我的产品和服务中获得的价值。

我记得我要求管理的第一个项目,该项目必须为数控机器提供嵌入式软件。以前试图开发该软件的项目未能提供稳定的工作产品,或者由于无法提供任何信息而停止。因此,客户在产品中失去了信任。我把自己放在了客户角色,并在想:“我想要什么”?答案很容易:我不想要计划或规划,或者复杂的文件会描述问题如何解决?我只是想要工作软件,这至少是多年前所承诺的一部分的东西,这是产品的第一版!它没有多大努力,但它所做的就是没有问题的工作。这将帮助我作为客户重新获得信任,并开始相信我的供应商能够对我的问题提供解决方案。

所以回到我作为项目经理的角色。我做了最低规划,只有几个增量,我们将开始提供产品的部件。第一个交付不会在目标硬件上,但在PC上。它只会执行一些基本(但仍然重要的)函数,并且具有小型用户界面shell,其替代最终产品所需的广泛的图形用户界面。我们向客户展示了第一次迭代,因为它在PC上运行,他把它带回家并尝试过。同时我们开发了第二次迭代,其中包含额外的功能,我们还解决了顾客在第一次迭代中找到的几个问题。我们再次向他展示了这一迭代,他看到新的功能效果很好,现在已经解决了他报告的问题。我们每隔几周都保持迭代,直到软件具有足够的功能来将其集成到嵌入式产品中,并将其释放到目标硬件上。

通过扮演客户的角色,我了解他想要的东西,以及我们设法在短期下交付的团队。根据与客户的联系,我们对所需要的更好理解,而不是。事实证明,前一项项目试图解决的一些问题不会在实践中发生;最终客户将永远不会使用该产品,以便我们的软件不需要。我们通过不开发它来节省时间和金钱。我们工作的方式非常赞赏我们的客户,以及团队和我的经理(非常重要的是,因为这是我的第一个项目,九十年代早期)。这是每个人的双赢。

这一切都回到了 了解您的客户。如果客户想要一个大的详细计划(如果他需要对待我们自己的工作),那么这可能是一个非常有效的问题),那么我会详细制作一个详细的计划。如果他只需要知道我要做的主要物品,我会发一名候选名单。但我总是与客户保持密切联系,经常要求反馈,以确保我理解他所需要的,以及为什么。

为什么不像客户那样思考?尝试查看您从客户的角度开发的产品。如何帮助客户更好地完成他/她的工作,或节省金钱或时间?当您想了解更多关于您的客户想要的内容时,那就暂时 假设你 客户,并思考您需要什么。您将获得对您的产品的不同视图,它将帮助您了解客户真正需要的内容。因为实质上,我们都是客户!

分享这种经历
  • 31
    分享

本林德林

我帮助组织具有有效的软件开发和管理实践。有关敏捷,精益和质量的多个网络的活跃成员,以及常见的演讲者和作家。

发表评论

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.