首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析开发方法的成本效益有哪些方法?

分析开发方法的成本效益有哪些方法?
EN

Software Engineering用户
提问于 2012-04-02 20:40:35
回答 2查看 239关注 0票数 5

有许多开发实践(TDD,持续集成,牛仔编码),原则(坚实的,抽象的层次,亲吻)和过程(RUP,Scrum,XP,瀑布)。我已经明白了,你不能盲目地跟随这些,但必须考虑上下文和投资回报。

我的问题是:你如何知道通过遵循特定的方法,你是否获得了良好的投资回报?度量,猜测,经验?是否存在分析方法?或者这仅仅是软件工程中一个没有答案的百万美元的问题?

为了澄清,当我说ROI时,我指的是整体业务价值。这没有必要排除开发人员的快乐--如果所有的开发人员在6个月的死亡游行后辞职(或者更糟糕的是变得冷漠),那么您就失去了在组织中的所有技术经验。如果客户不满意,您将需要更多的客户支持人员或失去业务。

EN

回答 2

Software Engineering用户

发布于 2012-04-28 08:46:52

在DACS (Data & Analysis for Software)网站上有很多案例研究。

敏捷对决的投资回报率是多少?传统的方法?对XP,TDD,对编程和Scrum (使用Real )的分析,由DavidF.Rico博士,PMP,CSM。尽管67%的项目使用敏捷方法,75本书和100多篇论文都是关于敏捷方法的,但自1999年推广以来,人们对敏捷方法的成本和效益知之甚少。本文的目的是分析与传统方法相比,在新产品开发方法(如敏捷方法)的研究中所报告的成本和收益。对300多篇关于敏捷方法的文章进行了审查;在69项研究中发现了成本、进度、生产率、质量和客户满意度数据;29项研究确定了ROI数据。敏捷方法ROI是昂贵的传统方法的四倍多,比便宜的方法少两倍,最好的敏捷方法和传统方法的ROI是相等的。但是,将为生产率和质量优化的传统方法与为客户满意、项目成功和降低风险而优化的敏捷方法进行比较可能是不恰当的。

(资料来源:http://www.thedacs.com/databases/url/key/3990/4944/7956)

票数 2
EN

Software Engineering用户

发布于 2012-04-28 10:51:31

如何定义与软件开发相关的“良好”投资回报可能是更相关的问题。

ROI可以有很多含义。在最简单的条件下,您假设实现和使用系统的成本与一旦系统到位后所产生的损益之间将有直接的关联。然而,这其中的大部分可能是相对的。您可能是指项目的生命周期或公司的生命周期的ROI,或者您可能希望对系统正在使用的几周、几个月甚至几年加以区分。

您的ROI将纯粹以财务为基础,还是会考虑将其他更短暂的值作为ROI定义的一部分。客户满意度、团队满意度、管理层满意度等。完成你的最后期限,或者错过它们,或者能够或多或少地完成项目工作,这有什么区别呢?您甚至可以考虑一种组合,在这种组合中,您假设实现一个系统会使您在财务上先入为主,但成本可能值得非财政结果。

案例研究和白皮书在试图确定采用一种新的工作体系是否值得付出代价时,很少考虑到所有这些因素,这让我们任由人们的看法决定,结果往往会给团队带来灾难,在团队中,方法论领军人物设法说服管理层,x系统是公司一直在寻找的灵丹妙药,因为这些领军者往往要么是新手,要么是非编程经理。那我们该怎么办?

没有可靠的数字或硬和快速的公式,你可以应用来确定一个特定的方法是否是解决你所有问题的方法,以及风险是否值得回报。那么,我们如何知道某些东西可以或将在没有实际尝试的情况下工作呢?为此,您需要从经验、逻辑和对项目的所有涉众(我指的是程序员、公司管理层和客户)的需要的密切理解的角度来分析情况。

任何一个已经写了10-15年软件的人都可能经历过很多的方法,并且经历过一些成功和失败的项目。这种经验可以为您提供一个很好的基础,可以形成对特定方法的价值的意见,然而,如果对受方法影响的利益相关者的需求缺乏良好的工作知识,即使有经验的开发人员也可能基于最接近开发人员自己感知的需求的预定义方法来实现系统。

关于敏捷的问题是,为了成为真正的敏捷,您需要理解没有一个特定的方法能够满足所有人的需求。因此,我们需要的是定义一个利用最符合所有利益相关者需求的实践的系统。这意味着需要对方法进行优化,以满足团队、公司、客户和项目的需要,所有这些都是一个群体,但也是单独的。就确定ROI而言,这是一个组合,使得衡量“良好回报”非常困难,因为每个涉众都将以不同的眼光看待价值和成功。

然而,就相对成功而言,只有在项目完成后才能知道是否成功。虽然这看起来有点吓人,但敏捷意味着您不会将自己锁在一个特定的系统中。您可以预先调优您的方法,然后经常进行检查,并在进行过程中对方法进行优化,直到项目结束,或者该方法不再需要进一步的调优。通过这样做,您将最大限度地利用您的方法发展到对所有涉众都有价值的程度。至于如何衡量你的方法的成功,这可以归结为几个因素。开发人员是否乐于使用该方法?管理层对过程是否有足够的控制?顾客能得到他们所付的钱吗?顾客对结果满意吗?目标和成果是否可以确定,这些目标/成果能否实现?然而,最重要的衡量标准是,所有的利益相关者是否都同意,现在的做法比以前更好。

我意识到,我已经描述了这其中的大部分是在方法的实现之后。实际上,只有这样做才能保证一种方法的证明。然而,有了经验,你可以把你以前做过的事情的知识应用到那些不太有效的事情上,如果你已经从它们中学到了宝贵的经验,你可以利用这些信息来预先确定一种特定的方法是否值得你花时间和精力。因此,您可以根据先前的学习,将其称为有教养的猜测,以便将风险降到最低。其结果是,您可以合理地确定任何给定方法的价值,如果您能够接受所选方法可能失败的风险,或者可能需要进一步的调优,您将根据实现方法的决定采取行动。如果你觉得你可以承受风险,那么你可能会相信它可能会为你的投资带来合理的回报,而实施你选择的方法--通过调整--很可能对你有好处,因为这样做对你有既得利益。这也是另一个几乎不可能客观衡量的无形项目。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/142647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档