mybatis入门实例
新冠疫情,随着春节的脚步一下就席卷了大江南北。这个春节,相信每一家,每一人都过得很不平静。作为大众而言,生活在继续,工作在继续,我们给武汉加油,给政府打气。面对疫情,最好的方式就是不给国家和他人添乱,在家好好整顿,积蓄疫情之后的力量。
很快就到了春节后重新开工的时间,严峻的疫情形势会让很多公司开始考虑到平衡员工健康和业务进展,其中一个必然的选项是远程办公。这虽是无奈之选,但也可能给未来的企业组织形态开启一个新认知,那就是其实已经有越来越多的企业、团队和组织在实践远程工作了。
一开始的远程办公,都是从跨区域组织开始的,因为团队的人分隔在北京、深圳和纽约,所以跨区域团队从一开始就需要面对和解决不在一起工作的问题。这个和因为疫情,大家被迫分割在不同的家里,本质上是一回事。以我们自己为例, Worktile 团队3年前成立上海和深圳团队,我们部分研发同事分散在杭州和湖北,由此在远程办公这件事上,也摸爬滚打了3年的时间。本文就是在当下这个形式下,将我们自己的远程办公经验总结为可以服务大家的远程办公指南,希望对即将复工的企业有些许的帮助和启示。
远程办公是每个企业的硬核能力
远程办公是每个企业的硬核能力,在非常时期更是。当疫情来袭,公司管理者在考量员工健康和业务进展的平衡中,需要尽早考虑远程办公的组织与管理方式。Worktile 本身有36个月的远程办公经验,所以我们HR小姐姐第一时间发布了未来4周的远程办公安排,从下周开始我们分散多地的同事将各自在家打造产品和业务了。
(HR小姐姐发起的远程工作公告)
不夸张的说,未来的企业要在组织管理上,考虑远程办公的能力,就像解放军随时随地支起帐篷就能参加战斗一样,战时企业的运行要从演习变成真正的硬核能力才行。总体来说,远程办公有以下的价值和可能的问题,需要视情况考虑。
明显的价值
-
很好解决了跨部门团队的现实场景。就像我们自己将北京、上海、深圳、西安、杭州、岳阳的同事连接在一起一样,远程工作是跨区域团队必须的选择。
-
更好招聘合适的人。在 Worktile 团队,我们有好几位同事平常工作在北上广深之外的其他地方,远程办公将公司的人才范围扩展了N倍,因此公司可以更好的去选择合适的人才。对个体而言,这样的方式同样带来便利,很多时候平衡了家庭和房价。
-
减少路上的浪费。北上广深杭这样的城市,每天通勤需要3个小时的人,不在少数,远程办公将极大解决这种时间和精力的浪费。
-
说不定省了办公室的电费。少一个工位,企业一年减少2万左右的办公开销是算的过来的,那么这个价值就有点意义了。
-
解决战时所需。疫情就是战场,企业必须生存,员工健康同样重要,如何以不在一起工作的方式,实现在一起工作的价值,让业务顺利开展,远程工作是唯一选择。
有可能存在的问题
-
估计不适合巨大规模的团队。客观的说,远程办公并不十分适合巨大规模的团队,公司组织架构上,要考虑将团队以独立的单元切分,形成一个个可以接口化运行的小团队,这样形成的小团队就恰恰是远程工作的最佳配置。例如下面的特种部队配置:
-
运行不好,同样带来效率的低下。远程办公,要求信息的透明度、工具化、流程化程度较高,对人本身的工作习惯要求也有,运行不恰当,同样带来信息过度分散,不能及时响应的弊端,反而影响效率和业务进展。
-
不是所有的职能和行业都适合。
基本的远程办公原则
远程办公这件事,本身并不复杂,我们自己总结了以下几项小原则,能够对企业适配远程办公提供一定的认知支撑。
- 远程办公,不适合大规模的团队和组织,所以有效的大公司小团队,实现简单扁平的团队层级,将组织切分成很多独立工作的特种部队单元,是实现远程办公的最重要原则。亚马逊有典型的2个披萨理论,而微软强调3111原则,我在《一百人研发团队管理的难题》这篇文章里对团队特种部队式的架构有过论述,这里不做详细展开。
(一个研发团队的典型特种部队架构设计)
- 自动化一切能自动化的。其实,工作场景中很多事情已经完全可以自动化完成了,例如我们研发团队基于用户故事将代码、bug、测试用例连接在一起,测试工作完成了,bug会自动同步给开发者。这种小自动化设计在工作场景有很多,可以极大减少不必要沟通,同时最大化透明工作信息。可以自动化的场景,还有代码提交之后的流水线,基于IM设计的各种机器人操作,在日报自动汇总每个人当日的完成工作。
(Worktile Agile的用户故事)
- 流程化一切能流程化的。流程化的价值是让组织的每个人按照统一的规则做事,因此流程化是减少“偏见”的利器,流程并不是企业管理的毒药,好的规则和流程,能给团队减少冲突,极大实现企业员工之间的契约。例如,用户端反馈的一个小需求,如何在不同的团队之间传递,并最终被产品采纳,然后上线到新的功能中,这个小小的事情就是一个公司内部运营的小流程。
(简化的用户需求反馈流程设计)
这种类似的流程化,还有很多很多可以被设计到公司的运营中,我将其称为企业运营的修水渠理论,可以详见我另一篇的分享《为什么每家公司都需要协作工具?》
-
定义统一且清晰的阶段性目标。不在一起工作,最有效的驱动方式是基于目标保持同频,最佳的工具是OKR。
-
必要的仪式感。按规定的上下班时间,虽然不在一个物理办公室,但不同家里的时间是可以相对统一的;早上和下班前的例会;统一的业务数据同步;提交必要的日报,都是在远程办公中以仪式感的方式,让大家产生“我在工作”这样的同感。
-
信息透明。实质上,通过 Worktile、Github 这样的协作工具,一定程度上解决了很大的信息透明问题。你的任务活动留存在 Worktile,你的代码提交留存到 Github,给团队之间足够的透明度,会极大避免面对面交流的必要性。
-
解决孤独感。长期远程办公的个体是肯定会产生孤独感的,必要的仪式,必要的团建,周期性的聚会,仍然无法被代替。
-
尽可能使用SaaS工具,能够用工具解决的,绝不依赖于人。越来越多不同业务的SaaS产品,为企业运营提供了非常多的自动化、数字化工具,从HR、财务、税务、报销、办公、文档、敏捷管理、代码库、电子签章、H5工具、问卷工具,应有尽有。当然,Worktile 也是其中必备的工具选项。
准备好的工具集
有了基本原则的共识,接下来要解决远程团队的工具了,不同公司在选择工具上肯定有非常大的差异,简单、易用、专业、价格、安全,应该是你考虑工具的首选,下面是我们团队在使用的各种工具集合:
- 远程会议服务。我们团队使用的云视频服务主要是Zoom和亿联云视讯,Zoom相当简单易用,亿联云视讯有视频语音设备支持,每天的远程视频例会,白板分享演示,一应俱全。
(Zoom视频会议)
- 代码协同。Github和Gitlab,是代码协同的领导者,我们同时利用Worktile Pipe将代码和研发用户故事链接起来,实现了很好的从代码到需求的整合。
- 敏捷开发和看板。Worktile Agile和Worktile Testhub是我们针对研发场景产品线的核心子产品,分别针对研发流程和测试流程管理。上线以来受到非常多用户的喜爱,在用户体验和对敏捷的标准化、专业化支持上,收获了很多客户的芳心。这两个子产品同时也是我们研发团队每个进行敏捷迭代、计划会议、回顾会议、需求和缺陷规划的工具。
(标准化、专业化的Scrum敏捷管理)
- 提交日报。远程办公而言,对于管理者,可以考虑日报方式实现每天自下而上的信息传达,针对远程工作场景还是很有必要的。Worktile Teams协作产品线提供了可以自定义模板的简报支持,适合团队的日报需要。
(一位销售经理的日报)
- 文档协作。目前功能文档协作有N多非常好的工具选项,石墨文档、腾讯文档、WPS,我们自己使用最多的是腾讯文档和石墨文档。
(腾讯文档)
(石墨文档)
-
共享日历。Calender是远程团队必备的工具集,发起会议、设定里程碑、制定拜访提醒,都是日程可以解决的事情。对团队而言,对Calender还有一项在团队共享时间和资源(例如会议室、投影仪)的要求,我们团队的日程应用的也是Worktile Teams协作产品中的日程模块。
-
制定统一的OKR目标。Worktile Teams协作产品中的OKR模块,是国内第一家落地OKR的协作子应用,所以我们自己的目标管理,也是基于我们自己的OKR子应用落地的。
- 对外营销工具。易企秀是这个领域的王者,市场团队基本上依赖于易企秀实现很多市场营销工具的制作和分发。
- 问卷调查。例如统计大家此次春节的出行情况,方便HR做节后的行政工作安排,我们喜欢麦客表单这样有调性的产品。
(麦客表单)
- Wiki系统。
- Jenkins和K8S,CI和CD工具。
- 共享网盘。
回到工具本身,还是要多说一句定理: 重要的还是使用工具的人,而不是工具本身。
接下来是实施与落地远程办公
有了必要的远程办公原则,加上丰富而简单的远程办公工具集支持,是时候在团队里实施和落地远程办公这件事了。
一、定目标和计划
本身目标这件事无关乎是否远程,任何企业和团队都应该在定义目标上花费足够的心力和时间,然后驱动团队朝着目标前进。不过,对于远程办公来说,统一目标和进展,可能更加重要,将不同地方的同事统一到一个框架下,然后大家朝着一致的方向走,这是OKR的精髓,也是远程办公的必备方法论。
(以月为单元的目标树,在全员透明同步)
二、将工作落实到项目和任务
无论是一个部门或者小组内部,还是部门与部门之间、小组与小组之间的跨团队协作,基于项目和任务让远程工作有了统一的计划载体、资源载体、时间载体和沟通载体。基于项目和看板,能够及时将不同时空工作的人们连接起来,基于事务的资源系统、沟通、成本核算、冲突解决,都可以基于任务和项目来展开,对管理者而言在看板上也可以一目了然的知道总体进展。
(项目和任务)
SpringBoot系列教程之事务传递属性
三、基于敏捷的研发流程管理
对于研发团队而言,开发者、产品经理、设计师、测试、客户成功、销售、市场,将不同的人以及不同地方的人组织起来,完成一个软件产品、App或者游戏的开发,是一件复杂的事情,我们分散的研发团队,整体是基于Scrum敏捷开发原则组织的,具体如下:
1、用户将产品想法反馈到【用户声音】或者告知客户成功经理。
(用户声音的产品界面)
2、客户成功经理,将客户需求、bug以一定的规范提交需求池项目,并按照一定的规则定义。
(需求池管理)
3、产品经理定期将来自于用户声音、客户经理和产品Roadmap,形成迭代计划,并组织一月一次的产品沟通会,产品沟通会将集中讨论近期迭代的大需求和大方向。
(迭代规划)
4、产品经理将需求复制到研发项目,并按照Epic、Feature和User Story做三级需求规划。
(需求三层分级管理)
5、Scrum Master组织Scrum计划会议,产品经理按照优先级自高至低对需求进行讲解,Scrum团队全体讨论并评估Story Point。依照团队速率表的统计数据决定当前Sprint能够完成的需求量。
(版本规划)
6、Scrum Master组织开发团队的Daily Scrum,团队成员通过看板上的信息同步自己的开发进度、计划和困难。
7、一个迭代结束,Scrum Master组织Sprint Review和回顾会议,检查当前迭代完成的成果,决定User Story是否成功完成并结束迭代,并在回顾会议输出回顾会议纪要。
(迭代回顾)
8、一个版本结束,产品经理根据对应迭代所完成的User Story和Bug生成版本日志,同步到Changelog和用户公告,设置用户心声的用户需求完成。
(版本更新公告)
9、产品经理组织产品同步会,将新的产品同步到业务团队,并收集新的需求和业务反馈。
正如之前提到的,在分布式团队和远程工作的要求下,SaaS版本的敏捷开发工具较之传统的白板、Excel和面对面会议都提供了更好的支持。譬如:
-
团队成员的沟通和交流可以完全通过敏捷任务的状态变化、评论以及对评论的回应实时沟通,完全消除了异地协同的距离感。
-
通过视频会议工具、Worktile Teams 的即时通讯模块和 Agile 内置的看板进行Daily Scrum,Sprint Review以及Retro会议。对于临时性的会议也完全通过在线会议实现,通过共享用户故事和任务,将会议的讨论内容通过评论进行记录,最后汇总在网盘或者Wiki工具中。
-
对于研发和运维的协作问题,由于我们的运维本身就是一个分布式团队,因此在此前就已经通过Teams的项目模块搭建了一个运维支持平台。研发团队可以通过这个平台提交线上部署申请、日志搜索和数据的查询。
-
通过Jenkins、Kubernetes等工具,我们将部署工作完全自动化,并且通过API将数据返回给Worktile,让所有开发人员以及产品经理能够了解目前各个环境的运行状况,甚至具体到某个需求的上线情况,而无需和对应的研发人员单独沟通。
四、建立畅通无阻的流程
就像前文阐述的意义,流程就是修水渠,就是给组织建立规矩的方式方法。面向远程工作,需要在跨区域团队之间建立简单而有效的流程,然后将流程同步到每个组织成员中,大家按照流程规则去协作,能够极大解决远程工作带来的沟通成本。
例如产品经理发布产品的流程,需要工程师做Alpha、Beta、RC和Production四级评审,需要测试输出测试报告,需要产品经理发布版本日志和博客说明,需要客户成功共同到关注新功能的客户,需要产品经理同步给销售了解,需要市场更新销售工具资料和输出新功能的PR,需要数据团队关注新版本的用户反馈,需要在wiki沉淀新版本的产品计划和相关内容资料,需要以项目核算新功能的ROI。所有这些需要,本质上集中于一个流程,流程链条相关各方并不需要过度的沟通,一切就像修好的水渠,自然流动到相关的环节,环节上的执行者也可以自然而然的执行。这就是流程的价值。
相同的流程还有非常多,值得在团队里去梳理和达成共识。而且,流程需要工具的支持,才能事半功倍。研发有产品发布流程、用户需求收集流程、灰度、CI/CD;市场有新品PR、活动组织、Webinar、用户广播;销售有合同流程、新客户拓展、与CS交接、市场发现、会销;其他HR、财务、管理层的各种场景,在企业里非常重要。
五、开会和例会
远程办公有一项很重要的事情就是:开会。开会这件事,对管理不成熟的团队来说,并不是一件简单的事情。会议需要明确的主题和发起者,会议需要确定的时间,会议需要落实为Todos和纪要,会议结束需要明确的结论。
对远程办公而言,我们非常关注例会的重要性,早上启动会和晚上总结会,是一个很好的方式将不同地方工作的小伙伴以仪式感的形式拉到一起行动。
六、日报
例会之后,我们同时要求每个人提交简单明确的当天日报,日报的价值在于管理,一方面团队负责人可以很好收集远程办公成员的情况,帮忙解决他遇到的问题,另一方面,日报是实现信息共享的很有效方式,某个人遇到的问题可以在日报中被其他人了解,并立即响应解决。
为不同类型工作性质的人,定义不同的日报模板,收集不同场景的信息是必要的。同时,日报本身也自然形成了一个巨大的知识库。
(研发周报模板)
(市场日报模板)
七、仪式感
远程办公,需要必要的仪式感,工作成员突破了物理的束缚,就像放飞的小鸟,需要一个无形的笼子让鸟儿有群居的感受。这就是仪式感想要达成的目标,例如:
-
统一上下班时间
-
统一例会
-
统一日报
-
周期性迭代目标和同步
-
全员公告进度
-
管理层统一
八、管理层的中心化设计
远程办公对管理本身是有挑战的,因此通过工具和在线连接,将团队以去中心化的方式分隔到不同的办公室、家或者咖啡店。因此,很有必要将管理层以中心化的方式连接起来,从而让不同的部门、业务是紧密配合与信息互通的。所以,我们同时对不同业务负责人成立虚拟化的管理委员会,将远程办公的不同人群,通过管理委员会连接起来,具体包括:
-
每周为频度的例会,同步信息和目标
-
不同业务之间的直连,让业务负责人成为跨团队的连接器
-
以OKR为载体组织目标和计划
-
组织技术委员会、营收委员会和战略委员会,集中力量办大事,打破远程和团队界限
面向疫情,我们能做点力所能及的
以上的远程办公实践中,很多场景是基于我们自己产品实现的,非常时期 Worktile 团队也希望做点力所能及的事情。除了我们长期支持的公益计划之外,在疫情期间,我们同时发起了以下特别疫情公益计划:
即日起至2020年5月1日,政府机构/医院/教育机构/公益组织,以及湖北地区企业,可免费使用Worktile团队协作产品的付费版所有功能,我们也会密切关注疫情态势并调整免费期限。
路由器里的广告秘密