研发挑战、本原与方案

基于研发报告和文献,指出研发管理面临的挑战,剖析研发管理挑战的根本原因,提出解决研发管理挑战的根本解决之道,阐释iSoftBook平台总体解决方案和特点,并与GitLab、Jira Software、TAPT等竞品比较分析。

开始了解

研发的挑战

1、管理者的挑战

2020年7月阿里巴巴取消周报制度,业界沸腾!

程序员感叹:阿里最难的工作是写周报!

阿里为何实行周报?

又为何取消周报?

取消之后又当如何?

2022年11月,马斯克要求Twitter员工通过邮件写周报,并附上代码,并引发全球热议:

In order to innovate rapidly on software, it is critical to understand what everyone is working on and who is coding what.

Moving forward, every Friday (this week, on Wednesday), please email the following weekly update to xxxxxxxxx@twitter.com with the following format,......

Twitter又为何要求员工写周报?

邮件能有效跟踪周报吗?

周报中又当如何追踪代码?

周报,报与不报,如何报?究竟如何进行研发管理?即使大型研发公司,都是一个挑战!

2、开发者的挑战

研发大楼夜晚璀璨的灯火,开发者星夜奋战!

但2022年1月,Software公司通过全球25万开发者90天调查统计,发布《Global Code Time Report》,指出开发者编码时间:平均每天52分钟、每周4小时21分钟 。

CSDN《 2022-2023中国开发者现状调查报告》:仅不足 9% 的开发者每天有超过 70% 以上的时间编码,每天超过一半时间写代码的人不到 30%。

Retool公司通过600位开发者调查,发布《The 2022 state of engineering time》报告指出:开发者深度工作(Deep Work)时间平均每周仅10小时!

开发者的时间都去哪儿了?

Retool调查指出每日影响工作效率的主要因素包括:核心框架与库的规模化迁移、等待机器、查找文档与上下遇到的文问题、等候他人等因素。

而CSDN也给出了每日影响工作效率的主要因素:

2021-2022中国开发者调查报告

StackOverflow :《2022 Developer Survey》指出:50 名开发者的团队,每周花费333-651小时搜寻答案与方案,每周花费 278-568小时回答他人问题。

基于86位程序员使用 Eclipse 和 Visual Studio 记录的 10,000 个程序会话,并且调查了 414 名程序员后,发现:程序员工作常常被各种事务打断,5分钟的打断,需要10-15 分钟的恢复期,方可正常工作!

2021年Haystack的报告《Study to understand the impact of COVID-19 on Software Engineers》指出开发者倦怠(Burnout)是开发者效率低下的一个重要原因。倦怠是指情感资源耗竭、继而沮丧和怠慢,严重降低效率。 83%的开发者患有工作倦怠。造成倦怠的主要原因包括:高工作量(47%)、低效的流程(31%)、不明确的目的和目标(29%)。

如何给开发者提供一个流畅的环境,支持高效信息检索和便捷沟通,减少工作打断,减低心理倦怠,提升深度工作时间,是研发管理的又一挑战!

3、知识浪费的挑战

知识浪费是重新获取团队曾经知道信息的成本。软件开发最大的浪费是知识的浪费、重复思考的浪费。

知识浪费的原因:人员变更而致的知识流失、工件丢失而致的知识损失、知识筒仓而致的知识隔绝、时间流逝而致的知识遗忘等。

知识浪费的表现:长时间的系统理解和设计意图揣摩、通过Relearing和Reengineering等方式Recreating the Knowledge、重复编写的代码、重复犯过的错误等。

2017年Xin Xia, Lingfeng Bao等于IEEE Transactions on Software Engineering发表论文《Measuring Program Comprehension: A Large-Scale Field Study with Professionals》,指出:开发者工作中58%的时间在进行程序理解,25%的时间在导航。

2021年Martin P. Robillard于ESEC/FSE ’21发表论文《Turnover-Induced Knowledge Loss in Practice》,指出开发者变更导致的知识流失和影响:

知识流失的影响

StackOverflow报告指出:超过48%的开发者,入职需要很长时间或相当长的时间。

如何平衡知识管理的成本与效益,建设研发知识库,增进知识的创建、保留和迁移,减少知识流失,降低程序理解时间,是研发管理的长期挑战!

研发挑战的本原

1、研发的复杂性

图灵奖获得者Frederick Brooks博士在经典名著《人月神话》指出:

没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步,即“没有银弹”。

没有银弹的根本原因:复杂性、不可见性、可变性、一致性。

研发的复杂性:

  • 软件业务逻辑错综复杂、各种状态组合爆炸。
  • 软件的组成元素完全不同,且以非线性递增的方式交互。
  • 软件是大量元素构建的静态与动态的复杂网络。

Linux内核核心630个函数,1814个函数调用网络

2、研发的不可见性

  • 软件是逻辑实体,软件开发是逻辑加工,看不见、摸不着。
  • 大量文档、代码、数据,难以理解,代码的运行更不可见。
  • 软件不是物理实体,不具有空间形体特征,难以利用几何图形反映其本质特性。

3、研发的社会性

  • 研发大量手工劳动,难以自动化生产。
  • 软件以人为本,人是IT系统的决定性因素。
  • 人性是复杂的,社会性的复杂度远大于技术上的挑战,多数软件项目的问题在于人的因素,而非技术。

研发解决之道

  • 知识网络+团队网络解决研发的复杂性网络问题。
  • 增强可视化+共享透明化解决研发的逻辑不可见性问题。
  • 敏捷方法+绩效激励解决研发的社会性与人性复杂问题。

法无定法、水无常形,基于敏捷研发的思想、价值观、指导原则和实践,结合自己的实际情况,探索并创建自己的敏捷!

改变是困难的,借由工具体系作为支撑和引擎,循序渐进推进转变!

iSoftBook解决方案

iSoftBook追求极致简单的概念和方式,提供最为丰富、最为深度的研发工具体系集成,践行研发解决之道,非侵入式地推进和创造高效研发团队,助力解决研发挑战!

1、iSoftBook总体解决方案

iSoftBook无缝整合知识管理、项目管理、 Git管理、消息管理和绩效管理,提供一个简单、强大的协同研发平台。

iSoftBook丰富的工具组件体系和快捷、自由的多元化应用与部署方式.

iSoftBook提供开放集成方案,助力CI、CD和DevOps。

iSoftBook开放集成方案

2、iSoftBook知识管理

关键信息一定要记载。

iSoftBook提供了丰富的知识记载体系:

  • 在线Web文档:记录抽象层次高、稳定性强的全局性重要文档。
  • 结构化看板:记录抽象层次低、稳定性弱的实施层面的任务需求。
  • API文档:记录软件模块的编程接口、用法和用例。
  • 源码评注:动态化、独立化记录代码的解释说明,个性化的代码含义补充和记忆辅助。
  • 代码片段:记录典型代码示例与模板。
  • 即时消息:自由沟通的历史记忆。

沟通漏斗模型

iSoftBook提供了多元融合的知识网络:

提供知识地图和全文索引,整合在线文档、API文档、Word文件、原代码、提交、任务等,构建企业Wikipedia自治知识网络,助力知识导航与发现。

提供个人私有、项目局域共享、组织全局共享的知识网络空间,相互独立又彼此融合,保障信息共享的灵活与安全。

iSoftBook知识网络

3、iSoftBook项目管理

iSoftBook实现组织架构与项目组合架构的双重融合项目管控,支持大型复杂项目管理,支持灵活的权限访问控制,支持组织级项目管理,构建错综复杂团队网络。

iSoftBook矩阵式管控架构

iSoftBook针对每个项目,提供团队、文档、代码、持续集成和项目集管理功能。

iSoftBook项目功能

iSoftBook抛弃Anderson流水线式的精益看板,提出时间驱动的级联化看板,统一计划管理、周报管理和看板管理,增进任务可视化。

iSoftBook看板提供灵活的控制策略和运行模式,针对任务性质和团队文化,灵活把握和融合领导管理、同僚管理和自我管理。

iSoftBook看板与文档和代码等融合,沉淀为项目宝贵的知识文档。

iSoftBook级联化看板

iSoftBook看板提供多视图和任务仪表盘,可视化展示个人、成员和项目的任务执行状态。

iSoftBook看板提供项目任务的个人视图、成员视图和全局视图,跨项目任务统计视图。

iSoftBook任务仪表盘与完成统计

4、iSoftBook Git管理

iSoftBook提供泛在Git服务,为每个人员、每项资产、每个项目自动配置和提供Git服务。

  • 零安装和零配置的Git HTTP、Git LFS、Git Lock、Git Cloud服务。
  • 平台统一的Git访问认证与权限控制。
  • 监控代码变更并调度持续集成。
  • 支持代码评审和API文档辅助生成。
  • 支持Web化的仓库浏览、Diff、Blame。
  • 与即时消息、看板管理、知识库无缝集成。

5、iSoftBook绩效管理

iSoftBook提供OKR使能的绩效管理,统一过程激励与结果激励,统一内在动机与外在动机激励。

iSoftBook贯通项目管理,融合项目组合架构和项目任务,自动化、概率化生成环评打分表,提供简单、高效、公平的绩效管理方案。

iSoftBook绩效管理系统总体方案

6、iSoftBook敏捷管理

iSoftBook提供丰富的计划与追踪管理机制,支持研发企业从“Doing Agile”到“Being Agile”。

  • 长期目标:OKR、360度环评、绩效校准。
  • 高层任务:利用在线文档或父子项目实现分解与追踪。
  • 中层任务:利用级联化看板实现任务分解与追踪。
  • 评审任务:利用评审工具实现交流与控制。
  • 低层任务:利用即时消息实现交流与控制。
  • 底层任务:持续集成框架调度脚本代码自动控制。

7、iSoftBook价值

1.降低工具体系管理成本

iSoftBook深度、无缝整合了功能丰富的研发管理工具,拷贝部署,开箱即用,并提供云服务,极大降低了研发工具体系集成和管理成本。

2.构筑研发核心竞争力

iSoftBook提供在线文档、知识地图等工具,借力群体智慧,整合文档、代码、任务等逐步沉淀和生成Wikipedia式的知识库,构筑组织研发核心竞争力。

3.提升产品研发效率

iSoftBook提供OKR管理、360度环评、看板管理、即时消息等长期、短期和实时的协同管理机制,减少研发倦怠,激励研发团队产生澎湃动力。

4.保障信息共享安全

iSoftBook基于用户职位和规则,自然实现访问权限管控, 设立个人、项目、组织三个信息空间,基于组织架构和项目架构实现双重访问控制,简单、高效保障信息访问的灵活与安全。

iSoftBook竞品分析

Jira、GitLab、TAPD等是业界主流采用的研发管理产品,源于Atlassion、GitLab、腾讯等知名上市公司,具有丰富功能。

面临各个产品丰富的功能特性,采用怎样的框架进行公平对比,是一个挑战。

Brooks:精简、直接、一致的概念是计算机系统本质特性。

关注概念体系,抓住研发管理根本因素,从组织与权限、计划与跟踪、代码管理、 DevOps、知识管理、绩效考核等六个维度进行对比分析。

GitLab、Jira、TAPT、iSoftBook对比分析

  • 组织与权限

    GitLab、Jira、TAPT都是注册用户,无组织架构,基于用户分组管理平台全局权限,基于角色定义管理项目权限。

    GitLab定义了Owner等6个缺省角色,Jira定义了jira-administrators等2个缺省组和Administrators等3个缺省角色。GitLab基于社区,定义了191项权限,Jira定义了75项权限,TAPT定义了19项全局管理权和数十项项目管理管理权。

    iSoftBook建模公司运行方式,定义组织架构,用户、资产和项目属于部门。

    SoftBook基于职位实行权限管控。仅定义了创建、管理、读和写4项权限,提供了个人独享的个人空间、全局共享的资产空间、团队共享的项目空间,结合用户的组织职位、项目职位实现矩阵式权限管理。iSoftBook遵循信任原则和追踪机制,通过职位任命而实现权限管控,提供了自然的权限管控方式,省去了权限管控的繁琐。

  • 计划与跟踪

    GitLab提供Epic、Issues、Tasks等概念实现工作的层级分解,提供Milestone、Iterations实现工作组合,提供列表、面板(board)、详细信息、时间线(Roadmap)、燃尽图等视图显示工作执行情况。GitLab计划引入work Item新概念进行抽象和统一。

    Jira统一运用Issues作为核心概念管理工作,通过Issues具有Epic、Story、Bug、Task、Sub-tasks等类型而实现工作分解和不同类型任务管理,通过Board显示Issues执行过程。提供 Timeline、Roadmaps、仪表盘等视图计划和追踪工作。

    TAPT提供需求、任务、缺陷、发布计划、发布评审、测试计划、测试用例、评审计划、看板等独立概念管理工作,提供迭代、故事墙、甘特图、仪表板、各类报表等视图显示工作执行情况。

    iSoftBook提供一个级联化看板和一个任务仪表盘,实现任务分解、追踪和统计,综合运用在线文档和父项目看板等支持迭代、里程碑和发布等大粒度工作管理,并结合即时消息进行实时反馈与跟踪,概念单一,简单灵活。

  • 代码管理

    GitLab内置集成Git仓库,提供Merge Request和Fork操作,更适合社区开发。

    Jira、TAPT不提供代码管理,需与GitHub、GitLab、Bitbucket等集成提供代码管理。

    GitLab、Jira、TAPT都通过在commit messages、merge requests中添加Issue编号、URL等关键字信息,实现代码与工作关联。

    iSoftBook集成Git仓库,提供独立的文档仓库和代码仓库。

    iSoftBook自动记录用户近期提交,支持将代码提交、代码文件、代码行等通过点击而关联到任务、文档、消息、评审等任何地方,简单高效地构建知识网络。

  • DevOps管理

    GitLab集成GitLab Runner实现CI/CD支持,并提供插件与Jenkins等集成而提供CI/CD。

    Jira不提供CI/CD支持,需与GitLab等集成而提供CI/CD支持。

    TAPD提供插件集成Jenkins、或者集成GitLab等提供CI/CD支持。

    iSoftBook提供专属配置接口,利用Jenkins通用插件,集成Jenkins等提供CI/CD支持,实现与Jenkins的双向集成,无需特定集成插件安装与配置。

  • 知识管理

    GitLab提供Web IDE编辑文档,,不支持文件上传,文件保存作为仓库的提交,提供Wiki和Code Snippet。

    Jira不提供文档管理,通过与Atlassion Confluence集成提供内容管理,而Confluence引入Page、Space、Page tree概念,文件上传作为Page附件。通过Smart Link添加页内网址提供内容之间的链接,支持全文搜索。

    TAPT提供在线文档管理,支持文件上传和在线写作。不提供全文搜索和版本控制。

    iSoftBook提供在线文档管理,支持文件上传、在线富文本和API文档写作,提供全文搜索和显示版本控制。并通过知识地图,在文档、代码、任务、提交等之间快捷地形成链接而构成知识网络。

  • 绩效管理

    GitLab计划实现OKR管理。

    Jira、TAPT不提供OKR和绩效管理。

    iSoftBook提供OKR使能、360度评分的绩效管理方案,并深度贯通项目管理。

  • 总结

    GitLab功能完整丰富,但具有复杂的权限管理体系、繁杂动荡的任务管理体系、简单与分散的内容管理体系,而招致弃用,实践中主要作为Git仓库管理和CI/CD工具。

    Jira以issues为核心聚集任务管理,任务管理概念体系较GitLab统一和简单,但仍相当复杂。Jira不提供代码管理、知识管理、DevOps支持等,导致信息割裂和集成成本。

    TAPT功能丰富,独立提供各项研发任务管理,虽具有与研发工作对应的益处,但缺乏抽象与集成,带来了逻辑相关任务的割裂、更多的概念体系和工作页面。TAPT不提供代码管理。

    GitLab、Jira、TAPT任务管理概念体系复杂,带来了负担、臃肿和不常用的特性,学习、使用和管理复杂,导致高浪费。

    iSoftBook功能最完整、丰富且无缝集成。iSoftBook建模组织架构,提供自然权限管控。通过自创的看板和仪表板两个概念,结合在线文档等普适工具实现任务管理,概念体系简单。iSoftBook整体简单、灵活、强大,支持企业结合实际情况,创造自己的敏捷方案。

拥抱iSoftBook

面对昂贵的人力和时间成本,iSoftBook即时带来1%、5%、10%的提升,亦将产生巨大的累积效益

欢迎运用iSoftBook丰富的产品线,创建自己的敏捷管理方案。