跳转到主要内容

保存的文章

关于软件产品开发经济学的几点思考

Mike Cottmeyer |领导敏捷
Mike Cottmeyer
阅读: 关于软件产品开发经济学的几点思考

你们中的一些人可能已经明白了……有些人甚至可能不同意……但是,除非你把构建软件作为一种爱好……很有可能,你构建软件是为了赚钱。换句话说,有人付钱让你为他们编写软件。

为什么会有人付钱让你去写软件呢?他们付钱让你写软件,因为他们希望把软件卖出去,然后获得更多的回报。这是一种投资。

理想情况下,我们应该希望我们的投资者从投资中获得良好的回报,这样他们就会继续投资。作为软件专业人士,我们的工作是帮助我们的赞助商尽快将好的、有效的软件送到付费客户手中。这就是我们赚钱的方式。

销售软件的行为为我们开发更多软件提供了资金。

相反,我们不能销售软件会让投资者生气,他们也不太可能继续付钱让你写软件。除非我们出售软件,否则我们没有钱付钱给人们去开发软件。

对许多人来说,为了钱而编写软件的想法贬低了我们的技艺,贬低了我们的艺术。我们想要纯洁。我们想要打造完美的产品。我们想要完善我们的工艺,成为工匠。

不要误解我,我完全赞成创造伟大的产品。也就是说,在某种程度上,我们必须在完美和将产品推向市场之间取得平衡,使产品能够销售并开始产生收入。

我为什么要写这篇文章?

在过去的几年里,我和一群人一起工作,他们似乎已经失去了与软件开发经济学的这种基本联系。在某些地方,软件变成并结束于它自己。

在这个过程中,成为伟大的工程师变得越来越重要。

在这一过程中,成为优秀的测试员变得更加重要。

在这个过程中,设计变得比交付更重要。

在某些情况下,一次交付所有内容比尽快将某样东西送到客户手中更重要。我认为这种心态正在扼杀我们的许多公司。

如果您正在花费自己的钱来构建软件,您会希望尽快看到投资的回报。作为软件专业人员,我们必须开始考虑软件交付的经济性,并相应地采取行动。如果我们自己的钱处于风险中,失败是不可能的,那么我们如何构建软件呢?

下一个;Agile2012会谈

作为敏捷的首席执行官和创始人,Mike Cottmeyer热衷于在更大、更复杂的企业中解决与敏捷相关的挑战。为此,他和他的团队致力于提供大规模的敏捷转换服务,以实际地、增量地、安全地引入敏捷方法。

评论(12)

  1. JacobM
    回复

    可能值得指出的是,事实上,许多开发人员编写的软件并不是用来赚钱的。我的猜测是,编写的大部分软件是供公司和其他组织在国际上使用的(我为一所大学编写内部软件)。

    很难理解为什么有人会不同意最好保持一种平衡。但我确实认为你遗漏了开发人员工作的一个重要部分——当我们向客户销售、部署或以其他方式交付软件时,我们的工作还远没有结束。当然还需要进行维护、增强、与新产品的集成等等。如果我们在进入市场(而不是精心制作软件)这方面做得太过平衡,那么开发过程的后市场部分对所有人来说都很糟糕。这对客户和公司都没有好处。

    回复
    • Mike Cottmeyer
      回复

      我可能会建议你实际上是在为钱写软件……赚钱的途径只是稍微间接一点。你可以从你编写的软件中获得报酬。该软件支持一些从大学获得预算的内部小组。这个预算来自于在这所大学上学的学生。你的软件对大学运营的支持程度会使他们的大学体验更好(或更差)。如果你的软件不能满足大学的需求,他们就得不到学生,他们没有钱,他们就不会资助更多的软件项目。我肯定是过于简化了,但你懂的。

      我明白这是在产品的短期和长期需求之间的平衡。我认为,产品负责人完全有理由决定他们宁愿在产品中拥有更多的功能,即使产品支持成本更高,只要这种权衡具有良好的财务意义。这个问题的答案可以是任意一种,但这个问题必须被问出来。软件的长期需求和可支持性并不总能证明延迟发布是合理的。

      我写这篇文章是为了回应我昨天在一家非常小的公司做的一个会议,这家公司追求完美的架构和完美的产品,而牺牲了产品的市场。他们冒着让投资者认为产品不值得冒险的风险,他们需要投放市场,获得反馈和收益。如果他们不开始赚钱,他们就不能写软件。在很多情况下,甚至在你的情况下,我建议我们很多人忘记这个简单的事实。因此我的帖子。谢谢你的评论!

      回复
  2. JacobM
    回复

    很好。当然,快速进入市场的一个好处是获得反馈,前提是您的软件具有足够的可塑性(即设计得足够好),能够轻松地对反馈做出回应。我们肯定会这么做;我们没有“市场”,但只要我们有了有价值的东西,我们就会尽快发布给用户。

    我肯定经历很多不同。如果我是面对一个团队不能释放,因为代码并不完美,我相信我会有你的反应,但在我自己的经验我看到对面(走捷径,代码事情草率,跳过写自动化测试,这样你就可以释放更快)远更频繁。

    回复
  3. Mike Cottmeyer
    回复

    是的,这就是写博客的挑战…经历不同,背景不同。对我来说,最终的结果是,即使是真正优秀的开发者,而不仅仅是那些草率的人,也倾向于将所有事物视为一个整体,并努力将其分解成可发布的部分。有一种观点认为,将东西一起编码比发布和重构更有效。因为不同的原因,产品负责人希望一次性发布所有产品。他们努力寻找MMF或MVP。测试人员希望每个角落都能覆盖……等等。很棒的对话,谢谢你的后续帖子。

    回复
  4. 亨利米勒
    回复

    我的公司尽其所能雇用最好的工程师,并使他们变得更好。他们尽其所能用所有可能的方法来测试我编写的软件,其中一部分就是要有最好的测试人员。他们非常担心我写的软件设计得很好。

    公司传统上一直关注优秀的工程师——我们在质量方面有175年的声誉,我们从经验中知道,优秀的工程是保持声誉的一个因素。就像明智的测试是重要的——如果我们发布垃圾信息,我们就不能维持长久的声誉。

    设计也变得越来越重要。该公司已经意识到,设计糟糕的系统,加上大量的技术债务,在增加我们的客户想要购买的功能上不再具有成本效益。我们在重新设计上花费了数百万美元,而我们一直关心的是如何在下一次大的重新开始之前尽可能长时间地进行设计。

    客户只是想在一天结束的时候完成他们的工作。他们更喜欢N个有效的特性,而不是N+1个无效的特性。即使他们想要N+1的功能,并且愿意为我们今年不会提供的额外功能支付数千美元。(可能是下一个版本——业务总是试图决定哪个功亚博vip9通道能最有价值)

    回复
    • Mike Cottmeyer
      回复

      当然,好的工程,好的测试,好的设计是必不可少的。希望你的公司已经找到了一种能够做到这一切的方法,并且能够尽早并经常发布。我猜你找到了正确的平衡,因为你的公司还在营业。亚博vip9通道

      回复
  5. 鲍勃·威廉姆斯
    回复

    在我看来,过去当软件以软盘和cd的形式发行时,制作一个单一的“包办一切”版本的心态是必要的。这只是软件发行经济的结果。但是方便的是,它也适合瀑布式SDLC和传统的软件交付思维模式。

    互联网、宽带接入和移动设备改变了游戏规则。公司现在可以以更低的发行成本灵活地发布增量特性和更新。重点应该放在客户需求上,而不是文书工作和流程上。

    回复
  6. 彼得坟墓PMP
    回复

    迈克-你也可以加上
    在这一过程中,成为修补者变得更加重要(如果我做这个或那个会发生什么)
    在这个过程中,过度设计变得更加重要

    保持伟大的帖子和书籍

    回复
  7. Dragonheart9
    回复

    雅克布,你说了那个神奇的词-价值。而且,价值在消费者眼中,金钱随之而来。作为一个产品和项目经理,我认为价值需要更多的关注。金钱只是一种量化价值的手段——谁、什么、什么时候、多少美元。只是我的想法。

    回复
  8. 6月亚当斯
    回复

    一篇写得很好的文章。谢谢分享!

    回复

留下你的评论

您的电子邮件地址将不会被公布。必填字段被标记*