我的团队的流程失控了吗?


16

我是软件开发团队的负责人(最近我控制了一个新团队),并最终负责维持高生产率,高质量和有组织的优先事项。

我的团队中有6位高级开发人员,但是这里的情况简直一团糟。情况是,我必须处理来自公司约10个不同联系点的JIRA请求,它们都代表不同的业务部门或客户。

我的问题是我的工作主要包括整天灭火,并确保每个人的问题都得到解决。不幸的是,我们公司的文化一直是高生产率(快速发布)但质量低下(生产错误),并且我们的客户不会接受结果的突然延迟。

有什么好的方法可以解决这个问题?我有很多理论,但是我正在寻找一个真正有像我这样的工作经验的人的答案。

以下是有关工作原理的一小部分清单:

  • 每个开发人员负责与之交互的特定应用程序和服务;
  • 发行版本通常由客户端在模拟生产服务器中进行测试,然后部署到实时服务器中。
  • 每个应用程序平均使用50-80人,总共8个应用程序。

谢谢


4
企业文化是很难改变的。这就像试图绕过很长的货运火车。
罗伯特·哈维,

@drminnaar您能否简要介绍一下它们之间的步骤,即从提出JIRA请求直到将代码部署到生产环境开始的过程。您是否觉得人手不足(6个开发人员到8个应用程序)?
Ocaj Nires

@Ocaj Nires请求已记录,我确认了优先级(现在我该牺牲什么来为您解决这个问题?),将其分配给开发人员,传达ETA,测试更改并发布。我确实觉得我在工作板上的人手不足,但是要证明这是否是我的流程不够可靠是有点困难的……
Daniel Minnaar 2011年

1
您能澄清谁负责测试吗?听起来有些反应。
temptar,2011年

Answers:


17

我们的客户不会接受结果的突然延迟

好吧,那么他们必须接受他们得到的劣质产品。

必须为了改变这种做的就是让你的客户接受软件开发的现实(或任何其他生产!):即冲的东西会影响质量。

创建一大堆出错的事情-损坏的事情,他们有理由抱怨的时间。向他们解释这些问题的原因,并告诉他们您想做些什么来改变它。确保向他们解释团队花费在支持和修复实时应用程序上的时间百分比。如果您不收集有关此方面的数据,现在是时候开始了(收集一个月后再将信息提供给客户)。

让一个关键的涉众在一个房间里说:“您要固定X,还是要交货Y?我们只有时间来做这两个之一。” 让他们负责设置优先级,并明确您的能力有限。如果他们要求新的东西,请问他们愿意为实现该目标而牺牲什么。

询问您的团队他们需要什么时间和资源来“正确处理”(既解决基本错误,又解决代码质量/体系结构等方面的更大问题)。将这些项目包括在利益相关者必须优先考虑的事情列表中。

在当前工作中,我做过的最好的事情是同时让一个会议室中的前8个利益相关者,并布置了一堆16张索引卡,这些索引卡代表了所要求的新功能。我从桌子上退后一步说:“我们一次可以提供其中之一。您要它们以什么顺序?” 让他们就业务优先级彼此辩论,而不是让您陷入中间。


如果您可以让每个人都在一个听起来像个好主意的房间里(我必须记住这种策略)。但是,这可能是不可能的。
2011年

@jhocking:也许您不能让每个人都聚集在一个房间里,但是您可以将电子邮件发送给“所有相关方” ...;)
IAbstract

5

停止,拖放和滚动。火灾需要燃料,通常以恐慌的形式出现。留出时间来管理自己和团队。评估您的开发人员,看看您是否有没有足够熟练的技能和/或没有足够努力来产生所需结果的人员。确定谁留下(并努力保留它们),谁需要一点推动力,其余的就得走了。评估程序员要获得的支持和工具,以确保他们能够完成自己的工作。确保遵循了声音测试,检查,源代码控制和文档的规定。拥有好的工具的好人需要负责做良好的工作。

必须有一个系统来了解您的团队需要做什么,当前正在做什么以及何时完成。许多方法论,理论,软件,干擦板,便利贴,文档和电子邮件都可以完成此任务。让每个人都坚持做一些事情。如果每个人都对该系统有一些投入,那么就有更多的动力去遵循它。

更好地了解客户的期望。这可能不是您工作的一部分。可能还有其他一些人假装自己的头发着火,他们的顾客不高兴,天空塌下来。他们就是这样做的,有些人真的很擅长。如果一切都是紧急情况,那么什么也不是紧急情况,因为它不会全部完成。欢迎偶尔参加与客户的讨论。您会发现,许多“精打细算”到了开发团队时就变成了“交易破坏者”。成为技术联络员或其他借口来帮助您。做出无法兑现的承诺比告诉他们一开始他们不想听的内容更糟糕。我们要做好,所以我们需要8周而不是5周。从长远来看,他们会更快乐。


+1表示“了解...客户的期望”。那是关键。如果您不能让他们了解更高质量的发行版的好处,请习惯于头顶从墙上弹起的声音。
DaveE 2011年

4

最终,您需要对客户进行软件开发方面的教育,并使他们尽可能多地参与该过程。他们现在看到的是快速交付新功能,以及软件中的错误。尽管他们会对前者感到满意,但他们不会(也不应该)对后者感到满意。

您需要向他们解释,通过更好的流程,尽管新软件的交付将延迟一小段时间,但错误会更少(永远不会为零)。如果您同意这是前进的道路,则可以开始介绍重新获得对开发的控制权所需的流程。

在他们建议(以及在某些实施任务中)将客户包括在团队中时,使用敏捷流程可能会有所帮助。如果您与客户紧密联系,他们将看到有效的方法以及可以直接产生的结果。


0

我的(有限经验)意见:我认为有两个问题需要解决。一是质量过程。您是否使用scrum /瀑布/介于两者之间?在Scrum中,您可以为每个故事添加其他任务:1提出一个测试脚本/计划,另一个要运行它,另一个要进行代码审查,等等。在Waterfall中,您可以简单地添加这些步骤吗?

另一个问题是软件中无处不在的大量主要问题。管理期望。也就是说,从喊叫他们需要X的按钮到交付X的时间增加了。

如果您可以在流程中添加额外的步骤,并对此大声宣布,则[我们正在实施此质量流程:这将意味着更少的时间来修复错误!和更好的质量结果!大型电子邮件/会议等,以使他们知道),并定期交付结果(ala scrum),其想法是,您要交付的那些人将了解并看到额外流程中的价值,他们会予以认可。减少错误修复时间=花费更多时间实施和测试功能。

客户不会接受结果的突然延迟吗?他们几乎必须这样做。很显然,它不能按原样继续。也许您可以添加额外的质量检查步骤,然后在需要时添加更多团队成员?但是质量步骤是绝对必要的。

同样,如果您使用Scrum或类似工具,则可以争取一个星期的冲刺,以便定期交付结果。这将使人们安心,就像快速周转。

希望能在某种程度上有所帮助。希望我没有错过重点。


-1

您所描述的内容听起来很正常,一点也不令人担忧。

  • 客户通常对工程师的重要性有不同的看法。我们喜欢做对的事情,但是客户面对的现实是,按时而不是纯粹。他们需要迅速解决问题以提高竞争力,而这正是他们为您付出的代价。
  • 设置优先级太大而又不容易让一个人独自管理,积压了重要问题(因此您正在使用JIRA),由中尉来管理每个感兴趣的领域是我们将举足轻重的工作放在最前面的最佳选择。日程安排。

不用担心。就是说,您可以通过将尽可能多的管理任务移交给付费客户,让他们参与设置优先级的开发过程,再到技术,使尽可能多的例行程序自动化,来减轻自己的痛苦。可能。


“正常”与“无后顾之忧”不同。
Dan Puzey 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.