摘要
iSoftBook遵循概念精简的软件第一性原理,整合并创新地实现了组织管理、知识管理、项目管理、代码管理、绩效管理、消息管理、DevOps等功能特性,构建了一个功能丰富、深度集成、特性创新和应用简单的企业级研发云平台,支持企业创建自己的敏捷方法,澎湃研发动能。
目录
9总结、
1 引言
研发是系统化、专业化的创新活动,但其资本投入高、资源浪费高、失败风险高、机会成本高。如何践行优秀的研发思想、方法和过程,打造精干强悍的研发团队,提升研发效能、降低研发浪费,成为研发面临的挑战。
同时,研发创新产业发生重大变化,人工智能、智能制造、游戏开发和虚拟现实等新型研发活动,管理数据集与大模型、3D设计模型、图像、视频、程序库等大量大文件数字化资产,带来了研发管理和研发平台的新挑战。
研发平台是践行研发思想和方法的载体。GitHub、GitLab等基于Git的研发云平台,推动了全球开源化、社区化的研发创新,价值百亿美金。GitHub、GitLab等虽支持企业项目托管,但其面向社区和开源的根本特性,难以支持企业封闭式、强力化、规模化的研发管理。
据此,iSoftBook面向企业研发,遵循概念精简的软件第一性原理,根植优秀的研发理念与实践,构建了一个功能丰富、深度集成、特性创新和应用简单的研发平台,构建企业级GitHub式创新研发平台,建设研发创新产业云。
2 研发的特性与挑战
2.1 研发的特性
研发的特性主要包括:
(1)复杂性
研发是个复杂的智力活动,系统业务逻辑错综复杂、各种状态组合爆炸,软件系统各组成元素完全不同,且以非线性递增的方式进行交互,构成了静态与动态的复杂网络而难以掌控。
(2)不可见性
研发是个复杂的逻辑活动,软件是逻辑实体,看不见、摸不着,不具有空间形体特征,难以利用几何图形反映其本质特性。大量文档、代码、数据,难以理解和度量。
(3)社会性
研发大量手工劳动,难以自动化生产。软件以人为本,人是IT系统的决定性因素。人性是复杂的,社会性的复杂度远大于技术上的挑战,多数软件项目的问题在于人的因素,而非技术。
研发的三种特性错综复杂,给研发带来了巨大的浪费、耗散和沉没成本。据统计, 研发浪费甚至达到30%~40%,或者更多。
2.2 管理者的挑战
研发管理者常采用粗放式管理,关注结果,变身甩手式领导人,导致研发过程与结果无法控制。或者采用日报、周报、月报的文档式管理,但日报、周报、月报等各种报告因其不透明和人性复杂,易扭曲失真,变为累赘,沦为形式主义。因此,2020年7月阿里巴巴取消周报制度,业界沸腾!
但2022年11月,马斯克要求Twitter员工通过邮件写周报,并附上代码,再次引发全球热议!
因此如何实现“Eyes on”,并根据实际情况掌握和变更掌控力度, 并与自我管理、同僚管理等看不见的手一道,协同实现复杂的研发管理,成为研发的一个挑战。
表1 管理风格
2.3 开发者的挑战
2022年1月Software公司调查全球25万开发者90天工作情况,发布报告《Global Code Time Report》,指出开发者编码时间:平均每天52分钟、每周4小时21分钟 。
图1 Software开发者编码时间
Retool公司2022年调查600位开发者,发布报告《The 2022 state of engineering time》,指出开发者深度工作(Deep Work)时间:平均每周10小时。
图2 Retool开发者深度工作时间
开发者的时间都去哪儿了?CSDN发布了《2021-2022中国开发者调查报告》,给出了每日影响工作效率的主要因素 ,主要包括:缺乏清晰的流程、分散注意力的工作环境、会议等。
图3 CSDN开发者工作效率影响因素
同时,研发工程师面对复杂的代码、糟糕的文档、不切实际的期望,极易产生倦怠(Burnout)。倦怠是指情感资源耗竭、继而沮丧和怠慢,严重降低效率。Haystack等2021年发表论文《Study to understand the impact of COVID-19 on Software Engineers》,指出83%的开发者患有工作倦怠,倦怠的主要原因包括:高工作量(47%)、低效的流程(31%)、不明确的目的和目标(29%)。
如何给开发者提供一个流畅的环境,支持高效信息检索和便捷沟通,减少工作打断,减低心理倦怠,提升深度工作时间,是研发管理的又一挑战!
2.4 知识管理的挑战
研发最大的浪费是知识的浪费、重复思考的浪费。知识浪费是重新获取团队曾经知道信息的成本。知识浪费的原因包括:人员变更而致的知识流失、工件丢失而致的知识损失、知识筒仓而致的知识隔绝、时间流逝而致的知识遗忘等。
知识浪费的表现包括:长时间的系统理解和设计意图揣摩、通过Relearing和Reengineering等方式Recreating the Knowledge、重复编写的代码、重复犯过的错误等。
Xin Xia、Lingfeng Bao等于《软件工程会刊》发表论文指出:开发者工作中58%的时间在进行程序理解,25%的时间在导航。
表2开发者平均时间花费
Martin P. Robillard等人发表文章《Turnover-Induced Knowledge Loss in Practice》,分析了开发者变更导致的知识流失和影响。
表3开发者人员变更知识流失影响
如何平衡知识管理的成本与效益,建设研发知识库,增进知识的创建、保留和迁移,减少知识流失,降低程序理解时间,是研发管理的长期挑战。
3 iSoftBook总体解决方案
3.1 解决之道
研发“没有银弹”,iSoftBoo遵循概念精简的软件第一性原理,根植优秀的研发解决之道:
(1)信息与知识的网络化、可视化和透明化。
(2)组织与过程的网络化、敏捷化和公平化。
(3)法无定法,创造自己的研发方法 。
图4 To defeat a network, we had become a network
iSoftBook追求极致简单的概念和方式,构建功能最为丰富、集成最为深度、特性创新和应用简单的研发工具体系,借由工具体系作为支撑和引擎,打破组织、信息和工具“筒仓”,推进和创造高效研发团队,激发团队涌现澎湃的研发动能。
3.2 功能架构
iSoftBook无缝整合绩效管理、知识管理、项目管理、Git管理、消息管理,提供一个简单、强大的协同研发平台。
图5 iSoftBook平台功能架构
3.3 工具组件
iSoftBook提供了丰富的工具组件,以此作为统一基础,构建研发知识管理、项目管理、绩效管理和版本管理等,统一全系统功能操作方式,提升系统易用性。
图6 iSoftBook工具组件体系
3.4 开放集成
iSoftBook平台提供Git仓库URL、平台用户账号、专属集成凭据和集成API等开放接口,快速集成IntelliJ IDEA等IDE、Sourcetree等Git客户端、Jenkins、TeamCity等CI/CD工具、SonarQube等代码分析工具,打造立体研发工具链。
图7 iSoftBook开发集成
4 iSoftBook功能特性
4.1 敏捷项目管控体系
4.1.1 项目组合管理
iSoftBook实现组织架构与项目组合架构的双重项目管控,支持大型复杂项目管理,支持灵活的权限访问控制,支持组织级项目管理,构建错综复杂团队网络。
图8 iSoftBook矩阵式管控架构
4.1.2 项目管理功能
iSoftBook提供项目团队、文档、代码、任务、持续集成和项目集等管理功能,提供完整的项目协同工作空间。
图9 iSoftBook项目管理主页
4.1.3 项目看板功能
iSoftBook抛弃Anderson流水线式的精益看板,提出时间驱动的级联化看板和任务仪表盘,统一计划管理、周报管理和看板管理,增进任务可视化。
图10 iSoftBook任务看板
iSoftBook看板提供灵活的控制策略和运行模式,针对任务性质和团队文化,灵活把握和融合领导管理、同僚管理和自我管理,并与文档和代码等融合,沉淀为项目宝贵的知识文档。
图11 iSoftBook任务仪表盘
4.2 自治知识管理体系
4.2.1多层次知识记载体系
研发关键信息一定要进行记载,防止知识流失,并据此沉淀形成企业研发知识库,构建企业研发的核心竞争力。
图12沟通漏斗模型
iSoftBook提供了丰富的知识构建体系。
(1)在线Web文档:记录抽象层次高、稳定性强的全局性重要文档。
(2)结构化看板:记录抽象层次低、稳定性弱的实施层面的任务需求。
(3)API文档:记录软件模块的编程接口、用法和用例。
(4)源码评注:动态化、独立化记录代码的解释说明,个性化的代码含义补充和记忆辅助。
(5)代码片段:记录典型代码示例与模板。
(6)即时消息:自由沟通的历史记忆。
4.2.2多元融合的知识网络
iSoftBook提供知识地图和全文索引,整合在线文档、API文档、Word文件、原代码、提交、任务等,构建企业Wikipedia自治知识网络,助力知识导航与发现。提供个人知识网络、项目知识网络和组织知识网络,相互独立又彼此融合,同时基于职位任命和规则实现自然化、矩阵式的权限管控,保障信息共享的灵活与安全。
图13 iSoftBook三网融合知识网络
4.3 泛在Git服务管理
4.3.1 Git HTTP和Git LFS
iSoftBook内置集成Git HTTP服务实现项目代码管理,自动化、零配置提供Git LFS、Git Lock服务,支持程序代码和与代码紧密耦合的少量、较小大文件的版本管理。
图14 iSoftBook Git HTTP与Git LFS版本管理
4.3.2 Git Cloud
受限于Git LFS的存储体系、传输协议和对象存储服务(OSS)机制,Git LFS对于百兆级、千兆级大文件的版本化管理在易用性、空间和性能上存在挑战,主要表现在:
(1)chekout一个包含大量、大体积文档的版本,从Git LFS服务器下载仍需花费大量时间。
(2)Git LFS服务器基于文件内容和其SHA-256签名进行存储,难以实现版本压缩与增量存储,Git LFS服务器体积快速膨胀。
(3)本地与Git LFS服务器间的传输协议脆弱,现在的Basic传输适配器难以稳定、高速上传和下载大文件。
二进制文件如Office文档、视频、图像、3D模型、游戏资产、机器学习数据集与大模型等,不适合分支、合并、差异比较等版本管理操作。二进制文件创作通常是检出一个或少量二进制文档、采用锁定修改的工作模式。
据此,iSoftBook提出和实现Git cloud版本管理架构,基于云端共享的Git仓库和工作区,利用浏览器实现远端管理与操作,实现二进制大文件和超大文件的高性能版本化管理。
图15 iSoftBook Git Cloud文档版本管理
Git Cloud提出了创新的版本控制架构, 整合分块、续传、重试、异步、零拷贝、非阻塞、多线程等技术,支持单文件的检出、锁定、修改、审核和版本化,避免了因文件共享而提交,减少版本数量,缩减版本库空间体积。
4.3.3泛在版本服务
iSoftBook自动化为每位用户、每项资产和每个项目提供泛在版本服务,并与即时消息、看板管理、知识库、代码评审和Jenkins等无缝集成,支持CI、CD和DevOps,构建了完整的基于Git的集成研发体系,主要特性包括:
(1)零安装和零配置的HTTP Git服务。
(2)平台统一的Git访问认证与权限控制。
(3)监控代码变更并调度持续集成。
(4)支持代码评审和API文档辅助生成。
(5)支持Web化的仓库浏览、Diff、Blame。
(6)与即时消息、看板管理、知识库无缝集成。
图16 iSoftBook Git集成研发体系
4.4 OKR使能绩效管理
绩效是组织管理的核心环节。研发工作成果难以衡量、过程难以把控,给研发绩效管理带来了挑战。
iSoftBook基于目标管理思想和OKR底层逻辑,实现了OKR使能的绩效管理,并与项目管理无缝贯通,统一了过程激励与结果激励、内在动机激励与外在动机激励。
iSoftBook基于项目组合架构和项目任务,自动化、概率化生成环评打分表,提供更加简单、高效和公平的研发绩效管理方案。
iSoftBook支持分级、分部门的灵活绩效管理方案。
图17 iSoftBook绩效管理方案
4.5创造用户自己的敏捷
构筑和维系一个规模化的敏捷团队和过程是个高难度、甚至艺术性的工作。敏捷方法提出了备受推介、适用于小团队的Scrum方法,但仅得到有限的实际应用。面向规模化组织,扩展Scrum而形成规模化敏捷框架SAFe(Scaled Agile Framework)、LeSS(Large Scale Scrum)、S@S(Scrum@Scale)、DAD(Disciplined Agile Delivery)等,增加了更多的管理复杂度和导入难度,实际应用更少。
Jira、GitLab等研发平台提供了Scurm Borad,实现了Epic、Story、Sprint、Backlog 等Scrum方法的众多概念体系,更有禅道等研发平台实现了Scrum、瀑布、看板、IPD、融合敏捷模型、融合瀑布模型等多种过程模型,它们让研发管理平台变得复杂,敏捷方法复又堕入了新形式的笨重和繁琐。
组织情况的复杂多样,人性的错综复杂,不存在可以直接拿来的标准化敏捷方法和过程。组织应当根据情境、时间、条件等因素选择合适的策略与手段,在刚性的科学管理与弹性的敏捷管理之间寻求协调和妥协,并最终创造自己的敏捷。
因此,iSoftBook抛弃Scrum等具体敏捷方法过程,基于敏捷方法的价值观和原则,从“Doing Agile”到“Being Agile”,提供普适、简单、丰富、多层次的研发管控体系,支持用户创造自己的敏捷,具体包括:
(1)长期任务:OKR、360度环评、绩效校准。
(2)高层任务:利用在线文档或父子项目实现分解与追踪。
(3)中层任务:利用级联化看板实现任务分解与追踪。
(4)低层任务:利用即时消息实现交流与控制。
(5)评审任务:利用评审工具实现交流与控制。
(6)底层任务:持续集成框架调度脚本代码自动控制。
图18 “Doing Agile”到“Being Agile”
5 iSoftBook产品线
iSoftBook提供云平台、社区版、企业版和旗舰版等丰富产品线,支持企业根据自己的需求,选择合适的产品。
旗舰版适用于私有化部署、含有多个独立研发团队的大型研发组织。企业版和专享云平台适用于独立研发组织。社区版和自由云平台适用于免费的小微型研发团队。
特别是iSoftBook社区版,提供系统总体功能特性,包括在线文档、资产管理、项目管理、Git服务体系等,用户自由下载和安装,实现私有化部署。
图19 iSoftBook产品线
6 iSoftBook价值
6.1 平台管理者:降低平台管理成本
iSoftBook深度、无缝整合了功能丰富的研发管理工具,拷贝部署,开箱即用,并提供云服务,极大降低了研发工具体系集成和管理成本。
6.2 组织管理者:提升研发掌控力
iSoftBook基于组织权限管理体系,组织管理者运用OKR管理、360度环评、看板管理、在线文档、在线Git代码库、即时消息等功能,随时在不同抽象层次上跟踪和监管项目,并激发团队的自我管理和同僚管理。
6.3 研发工程师:提升研发效率
iSoftBook提供无缝集成的研发工具,破除工具割裂和中断,形成流畅研发环境,提供便捷信息访问和多层次沟通机制,促进公平、公正的目标激励和绩效考核,并受团队无形激励和监督,减少工作打断和倦怠,提升深度工作时间。
6.4 研发组织:构筑核心竞争力
iSoftBook提供在线文档、API文档、代码评审、在线Word、公式编辑、知识地图、全文检索等丰富工具,借力群体智慧,整合文档、代码、任务,沉淀和生成Wikipedia式的知识库,构筑组织研发核心竞争力。
7 iSoftBook创新
(1)洞悉绩效管理、知识管理和敏捷方法等思想,抛弃常见研发平台臃肿复杂的概念体系,提炼和创造了一个整合绩效管理、知识管理和项目管理的精简、普适的研发管理架构体系,简单而强大,是iSoftBook平台的根本特性。
(2)抛弃基于角色、复杂研发权限控制方案,iSoftBook面向研发组织,基于职位和规则实施管控,建立个人、组织和项目的三维架构,强化研发执行力和学习型组织建设。
(3)iSoftBook基于统一工具组件,实现了项目管理、版本管理、知识管理、绩效管理、DevOps和消息管理等丰富功能的深度集成,构造了流畅的研发环境和使用体验。
(4)iSoftBook创新性实现了多源融合的知识网络、时间驱动的看板管理、大文件高性能版本管理、贯通项目的OKR绩效管理等创新特性。
8 iSoftBook竞品分析
Jira、GitLab、TAPD等是业界主流采用的研发管理产品。
精简、直接、一致的概念是计算机系统本质特性。关注概念体系,抓住组织与权限、计划与跟踪、代码管理、DevOps、知识管理、绩效考核等根本管理要素,Jira、GitLab、TAPD对比分析如下。
GitLab功能完整丰富,但具有复杂的权限管理体系、繁杂动荡的任务管理体系、简单与分散的内容管理体系,而招致弃用,实践中主要作为Git仓库管理和CI/CD工具。
Jira以issues为核心聚焦任务管理,任务管理概念体系较GitLab统一和简单,但仍相当复杂。Jira不提供代码管理、知识管理、DevOps支持等,导致信息割裂和集成成本。
TAPT功能丰富,独立提供各项研发任务管理,虽具有与研发工作对应的益处,但缺乏抽象与集成,带来了逻辑相关任务的割裂、繁多的概念体系和工作页面。TAPT不提供代码管理。
GitLab、Jira、TAPT任务管理概念体系复杂,带来了负担、臃肿和不常用的特性,学习、使用和管理复杂,导致高浪费。
iSoftBook功能最完整、丰富且无缝集成。iSoftBook建模组织架构,提供自然权限管控。通过自创的看板和仪表板两个概念,结合在线文档等普适工具实现任务管理,概念体系简单,支持企业结合实际情况,创造自己的敏捷方案。
9总结
面对研发管理困难、开发者时间耗散和研发知识浪费等问题,iSoftBook基于现代研发管理思想和理念,构建了精干、简单、普适的概念体系,开发了高度集成的一站式研发管理环境,支撑和激励开发者协同工作。
本文给出了iSoftBook平台的功能架构、工具体系和集成框架,阐释了iSoftBook平台知识管理、项目管理、Git管理、绩效管理等功能特性,介绍了iSoftBook产品线及其创新与价值。
欢迎自由使用iSoftBook社区版,其功能丰富、完整,能有效满足小规模研发团队需求。
面对昂贵的人力和时间成本,拥抱iSoftBook,推进研发变革,澎湃研发动能!
图20拥抱iSoftBook
参考文献
[1] XIA, Xin; BAO, Lingfeng; LO, David; XING, Zhengchang; HASSAN, Ahmed E.; and LI, Shanping. Measuring program comprehension: A large-scale field study with professionals. (2018). IEEE Transactions on Software Engineering. 44, (19), 951-976.
[2]Martin P. Robillard. Turnover-Induced Knowledge Loss in Practice. ESEC/FSE ’21, August 23–28, 2021, Athens, Greece
[3] Silveira P , Mannan U A , Almeida E S ,et al.A Deep Dive into the Impact of COVID-19 on Software Development[J].IEEE Transactions on Software Engineering, 2021, PP(99):1-1.DOI:10.1109/TSE.2021.3088759.
[4]McChrystal, Stanley A., Tantum Collins, David Silverman, and Chris Fussell. Team of Teams: New Rules of Engagement for a Complex World. New York: Portfolio / Penguin, 2015.
[5] FrederickP.Brooks.Jr. Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition. Addison-Wesley Professional,1995.
[6]David J. Anderson.看板方法:科技企业渐进变革成功之道.华中科技大学出版社, 2014.