领导者权衡了Titus包含质量和安全性的新DevOps文化。

当谈到Titus的软件开发优先事项时,质量和安全不仅仅是流行语。它们是公司如何发展自己的动力 数据分类 软件并将其推向市场。

安娜·林奇,工程副总裁和高级企业软件架构师Connie McFarland以及工程经理一起领导了创建包容性DevOps文化的工作。

该公司在渥太华和多伦多的55名开发人员和软件架构师现在拥有一套共同的价值观,包括在开发和测试的每个阶段进行常规体系结构和质量审查。

该计划得到了高级管理人员的支持,这些高级管理人员也在社区中开展了安全性和质量培训。

由于这种文化转变,Titus继续提高了其软件产品发布的质量,包括该公司最近基于云的软件即服务(SaaS)的分阶段推出。

Titus产品成功副总裁Kosta Hatzis说:“归根结底,这是赢得客户的原因,因为他们获得了更高质量的产品,我们能够更好地为他们提供支持。

借助SaaS模型和Titus的DevOps功能,Hatzis的团队可以比以往任何时候更快地进行开发,以解决优先级问题。

Kosta说:“在过去三个月中,解决案件的时间减少了29%。” “客户看到我们的产品取得了更大的成功,因此,我们看不到太多入门级的问题。”

下面,Anna和Connie分享了使他们的方法独特的地方,并重点介绍了创建质量驱动的软件开发组织的最佳实践,这将导致更高效率的团队,最终带来更好的产品。

问:质量和安全性如何与Titus的软件开发过程结合在一起?

安娜 :由于Titus是安全产品的一部分,因此我们必须确保在交付软件时,我们在构建软件时就牢记安全性。从我们的编码方式到打包方式,再到测试方式,这一切都应包括在内。

如果仅从质量来看,可能发生的最糟糕的事情就是我们交付产品并且客户发现错误。

我们在开发过程中发现错误的次数越多,越好,因为这意味着我们的客户会发现的越少,越重要,体验到的部署和产品无缝使用就越重要。因此,我们会竭尽所能确保产品质量。

在产品周期开始时,我们会制定质量计划,并为从错误数量到性能数量再到功能本身以及测试功能的所有方面设定目标。

小组每两周检查一次他们的成就,包括检查质量仪。如果它们达到大量错误的阈值,则只有在解决问题后我们才能继续进行。

您进入开发周期的时间越多,您添加的错误就越多。如果您在构建时不修复它们,只会变得更糟。

而且在周期结束时比在开始时更难修复。

我们真正要解决的是“您如何管理缺陷?”在两周的时间内,我们实际上实施了一个错误日。一切都是为了建立测试环境,以确保该代码强大。

在发布结束时,团队需要填写质量证明,在其中将质量目标与实际实现的目标进行比较。如果错误计数或性能不如我们所愿,我们可以拒绝发布。

我们必须确保在交付软件时,在构建软件时考虑到安全性。从我们的编码方式到打包方式,再到测试方式,这一切都有。– Titus工程部副总裁Anna Lynch

康妮 :在甚至开始编码之前,我们都会进行体系结构审查,以确保体系结构结合在一起。

我们有一个建筑委员会来确保不是一个人来决定一段代码,而是一个团队的建筑师说,“这才有意义”或“这才没有意义”,只有在开发过程完成之后,团队开始编码。

Titus DevOps图

问:这种方法产生了什么影响?如何为客户提供更好的软件产品?

安娜 :召集该委员会审查所有选项确实有所作为,因为我们现在做出正确的业务决策,而不是根据开发人员对工具或功能的偏好而做出的个人决策。

问:预先获得体系结构的支持是否与产品发布有所不同?

安娜 :我们的SaaS产品-包含订阅模型以在云中提供我们的数据服务-从建筑委员会中受益。

这是迄今为止我们组合在一起的最大的Titus产品,因为我们同时拥有分类和 鉴定 以及整个基础架构。它需要强有力的协调-我们必须选择正确的工具,因为一种产品必须与另一种产品对话。

我们在第一年就采用了分阶段的方法,但这是我们今后如何交付软件的模型。

问:您是否过于接近软件工程师而无法验证质量检查?您如何与客户互动以确保软件质量?

康妮 :我们全力以赴进行验证–我们拥有一个产品成功团队,该团队与客户讨论我们的产品路线图,我们将获得他们的反馈。

我们也有客户报告的缺陷。这些可能是要解决的优先级较高的缺陷。我们一直在努力,以减少我们发现的客户发现的缺陷。我们的目标是确保为每个版本修复一定数量的客户缺陷。

我们对测试也非常严格-我们同时进行白盒测试和黑盒测试。

开发人员进行白盒测试。每次我们在系统中添加新代码时,对系统的每个附加内容都必须进行代码审查。进入系统后,系统会通知您是否引入了错误代码,因为这些工具可以告诉您这种情况。您可以设置门限,说如果它降到某个特定水平以下,就不能放置该代码。

我们全力以赴进行验证–我们有产品成功团队与客户讨论我们的产品路线图,我们将获得他们的反馈。– Titus高级企业软件架构师Connie McFarland

问:Titus在软件开发质量方面是否领先于业界?有什么影响?

安娜 :我们是DevOps文化的早期采用者。对于流程的每个步骤,我们都有自动化工具来帮助我们了解产品的质量。

Titus领导产品成功的Kosta Hatzis称我们的DevOps流程对我们的客户来说是“巨大的胜利”。他报告说,由于DevOps功能,呼叫解决时间缩短了近三分之一。

Kosta说,转向SaaS模式已经改变了Titus与客户互动的方式,因为“我们采用了大量方法来解决优先问题,并且使软件开发人员的联系更加紧密和快捷。”

他说,传统的分层支持模型不再适用:“整个SaaS环境将每个人带到与客户互动的最前沿,这对整个组织产生了非常积极的影响。”

康妮 :另外,由于这个过程,我们收到了第一笔测试报告,其中没有严重的缺陷。进行分析的是第三方公司。

问:开发新软件时使用哪些关键安全工具?

安娜 :我们有执行静态扫描的工具来告诉我们是否存在任何漏洞。这是针对代码本身运行的,如果扫描不干净,我们可以停止构建。在执行静态扫描,单元测试和产品构建之后,然后对正在开发的任何网页运行动态扫描。

最后,我们使用白帽黑客进行渗透测试。 Titus雇用了一家第三方公司进入并试图破解我们的代码。

静态和动态扫描会在构建发生时运行。在开发周期中和发布之前进行一次渗透测试。

问:培训有多重要?

安娜 :我们为整个团队投入了在线安全培训。我们根据其功能(软件开发,质量保证,体系结构等)构建模块,并在完成整套设置时给他们徽章,并自豪地展示它们。

问:开发人员在进行质量编码时会出错吗?

康妮 :阻碍开发人员编写良好代码的通常是两件事:自我和乐观。自我使您认为您不会编写错误的代码。甚至最好的编码器有时也会编写错误的代码。然后,然后乐观,因为您认为,“哦,我想到了一切。”没人能想到所有事情。

这就是为什么我们的建筑委员会如此有效。当代码是社区事务时,它将创建问责制。当有人查看您的代码时,您将无法使用这些快捷方式。通常,它可以帮助您成为更好的程序员。

安娜 :另一个障碍是公司不会投资。愿意投资很重要,因为这样一来,您就可以拥有合适的工具以及内在的透明度。这就是为什么从高级管理层那里购买股份如此重要的原因。

您必须获得高层的支持。如果高级管理层不支持它,并确保全体人员跟随,那么向团队销售将变得更加困难。

问:还有什么最后的想法吗?

安娜 :我们非常重视质量和安全性。因为如果您不这样做,您的客户就会。它将为您的客户提供他们所需的信心,以确保我们的产品在其环境中安全运行。

最好的客户反馈不是好评如潮,而是他们已经在自己的环境中实施了我们的软件并且正在使用它。

康妮 : 我同意。用类似的服装做一个比喻:您知道,如果您将其内翻,并且接缝也很好,那就是我们必须满足的安全标准。

同样,如果您购买便宜的服装并拉线,则东西会散落。我们需要那些接缝在压力下保持一致。开发人员需要组织的工具和支持。公司需要珍惜这件衣服的内部以及它的构造程度。

如果我要为另一个组织购买Titus,请放心,该软件是为质量而构建的。

我们如何处理它们的内容,这确实很敏感?

我们是否担心所有正确的事情?

如果我知道其中涉及的众多人员,以及他们制作软件所采用的详细质量流程,那么我对提出建议会感觉更好。

资源: //titus.com/blog/data-security/tituss-inclusive-software-development-process