团队的稳定性往往是由两个方面决定的:团队中个体的物质收益和成长收益。现实情况是很难同时满足两种收益的同步发展,稳定性更多的是指两种收益的平衡。下面从成长收益的角度探索团队建设,如何依据有限的资源打造尖刀团队文化。
下面就以软件开发为例,带你一起打造尖刀团队,先来一起了解一下何为软件开发吧!
一
“软件项目开发的目的是要把客户模糊不清的想法转换为可工作的软件代码,即客户满意的代码。同时需要在预订的时间和预算内交付满足需求的软件产品。"
大霹雳式的软件开发法通常指开发工作量大,但直到开发工作完成时,还没能充分体现客户的需求的软件开发。这种软件开发的风险是:你认为你正在构建客户想要的系统,因为没有实时的客户反馈意见,直到你认为你已经完成,最终我们开发的产品可能偏离客户心理预期目标 —— 瀑布式开发模型。
(图:虚线表示实际开发过程,实线表示理想开发过程)
(图:最终开发结果差异较大)
如何解决呢?
在开发过程中,我们不能置客户于度外,而开发循环为我们提供了一个手段,在开发的每一个步骤,都需要问这个问题,“我做的如何?”。在每次项目有重大进展时都需要与客户确认,并重新确认下一步要做什么。开发循环就像对你的软件做经常性检查一样,你始终都懂得你怎样进行开发工作 —— 敏捷开发思想。
(图:增加与客户沟通环节)
(图:生产刚刚好的软件)
那什么是开发循环呢?
二
“每个开发循环就是一个微型项目,都有自己的需求、设计、编码、测试等阶段,每个开发循环都是在向客户演示最终软件系统中的某一段开发好的程序代码。"
传统软件开发过程包括哪些过程呢?
收集需求:客户想要的是什么 —— R
设计方案:为整个项目构建设计方案 —— D
编码:长时间地编写代码 —— C
测试:功能测试 —— T
(图:传统软件开发过程)
(图:一旦需求变动便无法交付产品)
如何将传统大型软件开发融入开发循环呢?
(图:开发循环)
(图:开发客户最想要的产品)
了解了开发循环,那么与打造团队有什么关系呢?
三
“开发循环遵循RDCT原则,即每一个小循环都会让开发人员经历一个小的项目周期,也是不断强化团队成员产品思维的过程。”
每一个小的开发循环都会收集大量的用户需求 —— 使用情节,在实际的开发过程中,开发人员需要将使用情节分解为开发任务。在渐进式完成开发任务的同时,团队成员的成长需求将不断得到满足。
(图:成长收益和物质收益)
同时在开发过程中,我们也会积累大量的实践案例 —— 样本。在完整项目周期结束的一个月内,需要进一步反思流程,优化开发过程。
下面以小犊君实际经历为例,在某手机厂商(简称ABC公司)的开发过程中我们是怎么做的呢?
四
“成熟的产品开发,会积累足够的案例,找到关键点,优化流程设计。项目与项目之间都存在很多的相似性和最佳的实践,当然,项目还存在独特的地方,你应该为这些独特的地方做好准备。”
前面几节属于新产品案例的积累过程,而ABC已经拥有了成熟的产品开发积累,但存在开发效率低下,重复开发等问题,需要建立开发流程。同时,没有一种流程,能奇迹般地使软件开发获得成功。我们需要遵循以下原则:反复式开发、不断评估和核定、整合最佳实践。
流程化的目的就是解放人力,实现高效开发,促进团队成员更好地发展。
在ABC的开发过程中,我们积累了一套完整数据:
基本开发需求:产品的最基础开发
功能开发需求:产品特定需求
问题引入:开发过程引入大量人为BUG
根据数据,找到耗时点、风险点,优化流程点,做到精准开发,时效开发。
详细内容可以参考笔者之前的文章:《攻城狮 + 大数据 + 商管思维 = 实现工作自由》
结 语
对一个流程的最终评判是由此流程所开发的软件好坏决定的,因此,你需要与你的团队成员根据需要适时调整一些东西。