分享

最好的软件开发方法

 快读书馆 2018-03-16

21世纪技术官导读:从最初的想法到实施开发的解决方案,最好的整体软件方法的答案却很少是一刀切的。



我在软件项目管理方面工作了近二十年。作为一名顾问,我有机会与使用各种方法开发产品的公司沟通,人们经常问我为什么,以我看来什么是最好的软件开发方法。 这是我平常答案的快速版本。


银弹并不存在


我们要知道的第一件事是,没有适合所有可能项目的银弹方法。


想一想:每个项目都是一个复杂的问题,要解决这个问题,任何不同的变量都可能需要采用不同的方法来达到预期的结果,即使在比较非常相似的问题时也是如此。


比如,我们可以让两个竞争对手独立地尝试构建完全相同的产品,但由于这些公司具有不同的特性(例如不同的价值观,不同的预算,不同的产品指标,不同的IT基础架构,不同的团队规模,不同的能力水平和分配模式等),每个公司都可能需要一种不同的方法来更好地适应自己的现实,即使两方都在实现相同的产出。


也就是说,如果一个公司,有时甚至是一个团队,在处理包含多个不同变量的项目时,应该采取多种方法。这需要项目负人做一些计划性工作,如果我们想用最好的软件开发方法工作,那么伟大的计划是必须有的关键内容之一。


最近,我接触了一家开发大型区块链产品的公司。该公司拥有3个开发团队:亚洲1个,欧洲1个,美国1个。每个团队在研发同一产品的不同部分,但他们每个开发人员都有着不同的背景。


此外,每个团队都有不同的优先级:第一个团队需要经常发布,第二个需要稍长的测试和验证,第三个则专注于研发。


有一段时间,他们试图找到一个能够支持3个团队的单一流程。他们意识到应该让每个团队的工作方会更加高效和高效,即使他们正在使用相同的产品,使用相同的产品IT基础架构,甚至是协调所有工作的项目经理。


框架/方法


我们还需要意识到的第二件事情是'框架解决方案'(Scrum,XP,DevOps等)本身并不是最佳解决方案。


换句话说,我们不仅要寻找并检查每个问题(每个项目)的变量,然后从一组预定义选项(框架型解决方案)中选择一个答案。


为了获得最好的软件开发方法,我们需要检查软件项目的特征,然后设计属于自己的个性化方法。


我当然不是说,你该忽略任何现存的模型和参考。相反,要为特定项目设计最佳方法,我们应该尽可能多地了解现有流程,框架与实践。


在一种理想情况下,我们应该深入理解所有方法背后的历史和规则,而不应仅仅了解他们应该如何工作,他们的原则比实践更重要,特别是现在我们正在设计一个全新的做法。


接着,我们可以使用这些现有模型作为方法创建的基准,根据需要混合元素,挑选那些在现实中有意义的元素,删除那些不需要的元素。


协调和持续改进


如同在设计新产品时所做的那样,一定不要在设计完美的开发方法上浪费太多时间。 设计一个简单的,嗯,尽可能简单。


接着就开始用它来收集实际的反馈。有专人负责协调与您的全新方法相关的任何事情,在大多数情况下,没有任何方法可以自动工作。必须有人持续协调流程和活动,无论如何称呼此人:项目经理,流程经理或技术经理。


在所有常规的项目管理活动中,这个人也必须要注意持续改进,这是保持你设计的方法长期健康和有价值的最关键因素 - 尽管长久以来也是如此。可悲的是,第一支球队一旦达到足够好的状态可能就会退出。 


公司,优先事项,技术,产品范围等都在不断变化,因此我们的方法也需要随时改进以跟上所有存在的变量。


小结


银弹不存在。每个项目都有独特的特点,因此需要一个与之匹配的定制的开发方法。


每个项目都是独特的,因此框架型解决方案很少是最适合的。所以,为了找寻最好的软件开发方法,您必须根据自己的项目的特点设计自己的方法。


要设计自己的方法,请深度学习所有现有的方法,流程,框架,方法和实践。


首先保持简单,尽快用它并根据实际反馈对其进行改进。有专门的人为计划负责,并与您的全新开发方法对应,持续不断的改进至关重要。


作者:安德森.Q

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多