我正在为企业市场开发一个新的革命性Web应用程序.当然,很多人在我之前认为他们的网络应用程序将是革命性的,只是发现它不是.(或者它是,但无论如何业务都不好).
所以我在想,为了找出我的想法是否有最低成本的牵引力,遵循一个极端的YAGNI:
没有安全功能(即没有用户等).对于任何新客户,我安装了一个新的数据库实例和一个新的webapp实例.每个webapp实例都受http服务器密码(摘要或基本授权,可能通过https)保护.
没有国际化.只是嵌入在源代码中的英文字符串.
没有脱钩.只是与数据库通信的网页.
没有表演技巧.没有队列,缓存,计时器,后台作业,异步调用等.
没有可扩展性.没有数据库分区,没有分片,没有群集或复制.
另外,只要合适,就可以在微观层面使用YAGNI.
我只是想开始这个项目并尽可能快地达到一个点,我可以通过一个简单而引人入胜的用户界面来销售(或试图销售)我的创新功能.
如果计划失败,我会尽早知道.如果成功,我会看到客户想要的东西.他们想要法语版吗?或者他们是否想要组织内的用户和角色?
这是人们对YAGNI的意思,还是YAGNI的一个病态和夸张的例子?
project-management design-patterns product-management product yagni
我们在软件中应该做很多积压的事情,包括很多不同的类别,例如:
以合理的方式管理所有这些是产品管理的一项工作,但由于很多原因它很棘手.首先,我们有许多不同的系统,包含不同的东西(文件中的市场需求文档,错误数据库中的错误,我们的帮助台系统中的客户需求,内联网上的引擎环境愿望清单等).其次,许多项目的大小,范围,复杂性和当然价值都大不相同,这意味着选择并不像按优先级排序列表那么简单.
因为我们现在相当庞大,拥有复杂的产品和许多客户,所以基本的解决方案(电子表格,谷歌文档,大本营待办事项列表)仅仅不足以解决这个问题.我们需要一种方法,以各种方式将事物组合在一起,持续地对它们进行优先排序,明确我们正在做什么以及将要发生什么 - 没有它需要所有人的时间来管理一些工具.
您如何以一种允许企业始终对现有客户做最有价值的事情,帮助获得新客户并使软件内心保持理智的方式来管理这一点?
请注意,这与开发方面不同,我认为我们已经相当不错了.我们以迭代,敏捷的方式开发所有东西,一旦选择了设计和实现的东西,我们就可以做到.这是我们需要弄清楚下一步该做什么最困难的部分!
您找到了有效的方法或工具吗?如果是这样,请分享!(如果您也想知道答案,请加快问题,使其保持可见:)
附录:当然,首先修复所有错误是很好的,但在实际安装在客户机器上的实际系统中,这并不总是实用的.例如,我们可能有一个很少发生的错误,并且需要花费大量时间和架构动荡才能修复 - 我们可能暂时搁置一段时间.或者我们可能有一个人认为难以使用的错误,我们认为修复它应该等待对该区域进行更大的改造.所以,有很多理由说明为什么我们不能立即修复它们,而是让它们保持开放,这样我们就不会忘记.此外,最困难的是非缺陷的优先次序; 想象我们没有任何:)
项目经理和产品经理有什么区别?实际上是角色/责任的差异还是我们主要使用的术语可以互换.
几乎在我的职业生涯中,我一直致力于构建解决方案(为单个客户定制应用程序).现在我的公司正在为大众开发软件,很多包装都在等着我们.
我想问一下许可软件.如何生成序列号和激活号.一般来说,我对许可软件有什么选择.
我意识到这是一个普遍的问题,但它是一个对话启动器.
我的公司曾尝试采用 Scrum 方法,但结果喜忧参半。这些是我们遇到问题的一些领域。你如何处理这些?
在我们的主要产品中,我们已经有一个功能请求已经存在了几年,现在已经被要求了很多次.它在技术上易于实现,问题在于它将从根本上改变工具的概念,并且可能会导致更多错误报告,因为人们误用新功能来匹配新概念(我们将无法做到)解决方法).我们有一个单独的功能可以很好地解决这个问题,但我们仍然需要实现新的功能.
我们应该吗
我们的团队如何以尽可能低的摩擦力从我们的"产品负责人"那里收集需求?
现在这里是指导方针 - 没有任何帖子无法完成,或者企业需要做出关心质量的决定,yada yada.我工作的产品是一个多年来一直成功的小团体.我只是想帮助他们提升一个档次.
基本上,我是一个拥有一个产品负责人的6人或7人团队.她做得很好,但是却扮演着一些不同的角色(我相信在极小的团队中很常见).通常需要在零星的时间(电子邮件集合,面对面讨论,会议等)提出要求.它们永远不会进入系统,有时这会导致功能缺少某个版本,或者由于每个人都忘记了必要的功能而导致版本被推迟.
如果你处于类似情况但是你找到了解决这个问题的方法,我很乐意听到它.我很乐意编写代码来帮助缓解这种情况,但它不能成为产品负责人必须去的网站才能完成任务.她非常忙碌,我们需要一些团队合作的方式来收集这些要求.
我目前正在考虑这样的事情:开发人员和团队成员收集面对面会议中讨论的要求,并写一些关于维基页面上讨论的功能的快速说明.每当这些页面更新时,产品所有者都会收到通知,然后她就有责任确保准确性.
优点:我们会有一些功能记录.缺点:开发人员对他们通常不会做的事负责.我在这里很好.我认为在这种情况下它是团队合作.
当然,一旦我们这样做,那么我们将看到产品所有者可能没有足够的时间来确保功能准确性.最终她负担过重,我认为这将有助于展示这一事实,但我只需要能够首先引起注意.
那有什么建议吗?
PS她的时间非常有限,因此在讨论后期望她需要输入要求被认为是不合理的.她只有时间讨论一次并继续前进.