敏捷开发方法scrum
“蛇油推销员”这个词使人联想起闷闷不乐的老人的形象,这些老人戴着圆顶礼帽,浓密的胡须和量身定做的细条纹西服,兜售充满“治愈所有”液体的瓶子。 尽管在几个世纪前盛行,但蛇油行业现在已被历史记载所取代。 如今, 蛇油的描述已经超出了人类的保健范围。 例如,在科技界,蛇油解决方案可用于描述防病毒软件或常用的软件开发过程。
当今,向业务开发团队介绍的最“超额出售”方法是Scrum ,它是软件开发的几种敏捷方法之一,并且是简化流程的一种方法。 Scrum已经成为一种棘手的方法,并附有其自己的圣经, 《敏捷软件开发宣言》以及日常工作(又名Scrum会议)。
尽管Scrum在90年代初开发时可能更有意义,但多年来发生了许多变化。 初创企业和企业的劳动力分布在许多国家和时区,这使得员工共享办公室变得更加困难。 随着我们的劳动力世界的发展,我们的软件开发方法也应发展。
当今的开放技术
新兴企业和企业都建立在开放技术的理想之上,甚至包括微软在内的更成熟的公司实体也正在拥抱所有开放的事物 。 马特·阿赛(Matt Asay)在描述当前事务方面做得很好:
十年前,一个新的开源公司或项目成为新闻。 不再。 开源主导了移动设备,Android取代了智能手机和平板电脑上看似无与伦比的iOS。 开源还主导着云,除了使用开源构建的Azure以外,每个重要的云平台都可以使用。 甚至Azure都将开源技术视为其平台上的一流公民。 开源主导着大数据,而Hadoop和NoSQL技术则是管理全球数据爆炸的主要力量。
2015年开源无处不在。 潜在地每个受益于现代技术的人也都会以某种方式受益于开源解决方案。 当您考虑为世界上最受欢迎的开源项目做出贡献的国际开发人员时,您会想知道他们如何在没有经理,会议和代码冲刺的情况下获得成功。 当我开始研究开放源代码项目如何成功时,我意识到它们共享一套可以被视为开放开发方法原则的原则。
开放式开发方法的宗旨
代码质量
作为开放式开发方法的一部分,代码质量为王。 每次编写代码时,您都应该询问关键问题:
- 该代码清晰易读吗?
- 此代码可测试吗?
- 该代码是模块化的吗?
- 这段代码经济吗?
提出的每个问题不仅对您有益,而且对您的团队也有利。 当您以这样的方式编写代码时,另一半世界的开发人员可以坐下来立即开始工作,而无需提出任何问题,这将有助于提高团队的效率。 同样,当您确保代码可测试时,您将大大减少团队可能遇到的障碍。 通过模块化,您可以将易于维护的代码呈现给您的团队,并且可以为另一个项目回收。 最后,经济的代码可以节省时间和金钱,从您的团队和未来的贡献者到客户和最终用户。
文献资料
开发人员不一定喜欢编写代码,这不是秘密。 而且,当他们受到诸如Scrum之类的系统的急诊室处理时,即使他们想记录自己的代码,也有可能他们没有时间,因为通常由企业确定优先级。 您将要编写的最重要的文档是高质量的代码,但这还不够。 考虑一下那些不懂代码的人,以及那些既没有时间也不想阅读全部代码的人。 当您的团队专注于适当地记录您的项目时,您正在为代码做与流行电视节目《 如何制作》为观众做的相同的事情,方法是解释项目的复杂性并以更轻松的方式将其带给更广泛的受众,消化时尚。
测试中
在您可能无法实时获得帮助的地域多样化的团队中,采用测试优先的代码方法可使您以更大的独立性和更少的障碍来工作。 使用可测试的代码,需要考虑很多好处。 让我们看一下Perl商店中Tim King的 12条提示 :
- 单元测试证明您的代码确实有效。
- 您将获得一个低级的回归测试套件。
- 您可以改进设计而不破坏它。
- 与它们一起编码比没有编码更有趣。
- 他们显示出具体的进展。
- 单元测试是示例代码的一种形式。
- 它迫使您在编码之前进行计划。
- 它减少了错误的成本。
- 它甚至比代码检查更好。
- 它实际上消除了编码器的障碍。
- 单元测试可以进行更好的设计。
- 这比编写没有测试的代码要快。
讨论区
在讨论您的项目和方向时,每个人都应该有发言权。 永远不要打折营销协调员,客户经理和非编码设计师。 一切都可以进行讨论,当每个人都可以互相访问而无需经过一连串的命令时,就会发现一些最巧妙的想法和解决方案。
尽管经验丰富的开发人员可能会因他们的专业知识而主导讨论,但切勿忽视具有不同新鲜想法的新开发人员。 TODO Group开源行为准则概述了项目社区的总体期望,我们在参加团队讨论时也可以考虑以下方面:
- 要友好和耐心。
- 热情好客。
- 体贴。
- 尊重。
- 请谨慎选择我们要使用的字词。
- 尝试理解为什么我们不同意。
透明度
传统上,提高用户信任度,促进与社区的互动以及提高项目的安全性和稳定性是项目成功路线图上的单独目标。 但是,当您的团队采用透明的开放式开发方法时,这三个目标可以同时实现。
从发布项目的源代码到公开问题跟踪器以及提供对内部流程和沟通的见解,与项目接触的任何人都可以看到项目背后的热情。 当用户和开发人员可以使用这些资源时,您的团队不仅会找到许多愿意的贡献者,而且会得到社区的更大尊重和接受。 透明度是强大的营销和工作工具。
异步性
随着初创公司,企业和开放源代码项目将工作量分配给世界各地的开发人员,保持了一定程度的同步性,如Scrum所期望的那样,软件开发过程将变得困难。 对于某些小组而言,召开每日Scrum会议是不现实的,并且当您在五个不同国家/地区拥有五个开发人员时,您可以不考虑配对编程的可能性。 当今的软件世界在异步方面蓬勃发展,采用开放式开发方法的团队也可以做到这一点。
如果有人有问题,他或她可以发送电子邮件或在开发板上发布以期望他们的消息在一段时间内不会得到响应。 那个受到质疑的开发人员会停止他们的工作吗? 不必要。 由于需要自力更生和适应能力强,开发人员可以修改他们的期望,专注于代码质量,增强他们的文档并提高他们的技能。
民主
除了在项目社区内进行公开讨论和分享想法外,社区成员还应参与决策过程。 当闭门董事会会议,高管或经理(我称之为单点故障)做出决定时,通常只有狭usually而有限的观点。 当每个人都参与决策过程时,包括最终用户或客户,原本无法识别的潜在问题在成为问题之前就更有可能得到解决。
共同构建开放式开发方法
我相信不仅要让我自己或少数人来开发这种方法,我相信过程应该像任何其他开源项目一样开放和包容。
我可能错过了几个优先事项或需要解决的问题,所以请加入GitHub , 在GitHub上 ,我将继续讨论并努力制定一套漂亮的准则,以使所有规模的所有开发团队都能成功。
翻译自: https://opensource.com/business/15/11/open-development-method
敏捷开发方法scrum