对于开发者来说,满足用户需求和坚持自己的产品理念是不是冲突的?微博上关于乔布斯“去你麻痹,滚你麻痹,爱买不买!”的段子流传甚广。本文提出了自己的观点:听取用户意见,但要自己掌控整个工作的节奏、目标和流程。
作为一个软件开发者,你的工作内容远远不止写代码。还有一些是你职责范围内的事:
- 预估工作周期
- 理解你没写过的软件的功能
- 把复杂的问题简单化
- 把复杂的问题分解成若干个小问题
- 调整代码,为迭代预留空间
- 发现并修复漏洞
- 上述问题与其他成员协作完成
如果你直接和你的用户交互,还有更多的建议:
- 把用户需求翻译成改进计划;
- 深入浅出,把复杂的意思用简单的方式向用户传达;
- 明晰每一个尚待解决的问题。
但是在这些职责之上,最重要的是在了解目标用户的基础上设定目标。
设定目标的意思是对工作的节奏和流程保持始终的掌控力,保证你的工作可以进行下去。这意味着要做风险预计,并让用户知晓潜在风险,不至于风险降临时措手不及,这就需要设定一系列的规则和流程。
如果方法得当,有没有设定目标在某些情况下可以造成煎熬和享受工作两种截然不同的结果。
作为一个开发者,你就是一个工匠,可以使用任何的工具区创造,不能让别人的期望凌驾于你的创作自由之上。你必须自主把控这个创造的流程。
如果你让用户的意志凌驾于你的创造之上,很可能会有以下结果:
- 你的用户会“认为”应该什么时候可以完成工作,那时候你可能只能拿出半成品,无法满足用户预期;
- 如果你的工作没有按照用户预期的时间节点走,他们就会觉得沮丧,丧失信心;
- 用户的预期会迫使你做一些你自己并不认同的东西 。
当然,最理想的情况是用户会尊重你每一次设定的目标,但这种情况可遇不可求。总之无论何时记住:在软件开发的过程中,你才是那个决定什么时候达到什么目标的人。