一、序
2013年,在秒针工作的时候,我研究学习了SVN上大量的资料。
包括10多个Java项目的源码,30多个项目的整个文档(需求、产品设计、技术架构、项目管理、会议记录、商业和市场)。
在此,要特别感谢吴明辉领导的秒针系统和那里开放的学习环境。
在秒针工作的2年里,我的综合能力和全局视野,获得了巨大的提升。
其中,有一个问题特别让我困惑“不同项目之间,重复性的工作特别多”。
于是,我思考再三,给出了自己的答案,并写了一封邮件“提高生产力的2个方法,软件复用和知识库”,然后发送给了整个技术部门的同事。
其中,有几个经理发表了自己的一点看法。
二、关于秒针的补充
1、2013年,秒针整个技术中心,大概有100人左右。
产品、开发(Java、C++、Python、JavaScript)、测试、运维等。
2、不同项目之间的重复劳动,比较明显。
3、Java这块,*普明和*少龙这2个高级工程师,有不少积累。
一小部分是Java相关的基础代码。
龙哥,更多主要负责前端JS,积累了很多JS库,比如表格和分页、弹出对话框、表单验证、日历等。
4、除了禅道等单一用途和功能的协同办公系统之外,单单是部门内部,就没有特别有价值的,可以大大提高研发效率的系统。
三、小雷之问(小雷@秒针系统)
------------------------------------邮件正文-----------------------------------------
提高生产力的2个方法,软件复用和知识库
大家好,这是我的一个分享,本次分享中提到的问题,是一个巨大的命题,偶点到即止。
一、背景与问题
在了解了公司的一些项目(Access、Exchange、知客等),熟悉了公司项目部和测试部等部门的工作之后,结合自己工作和学习中的一些情况,意识到一个值得改进的问题。
工作中的不少时间都是在处理重复性的工作,而这些工作其实可以避免或者大大减少。
比如 开发中的一些极其常见的技术或功能:
a.邮件发送。
b.Excel、PPT、PDF、ZIP等多种格式文件的处理。
c.Web开发环境的搭建,比如Spring+Mybatis等框架的组合和日志等配置。
(不再一一列举,详情见下文)
总之,不同的项目(Exchange和知客),不同的人(KTeam和XTeam),同一个人在不同项目中的所作所为, 不同角色(开发和测试),可以避免应该避免的重复性劳动大量存在,大大降低了生产力。
二、应对之策
1.软件复用
1.1技术类复用
a.邮件发送。
使用JavaMail、Apache Commons-Mail、Spring-Mail、Jodd Mail等库封装好。
这样一来,不同的人、不同的项目,只需要一个类库(jar包)和一个配置文件,就轻轻松松实现了发送邮件的功能。开发省事、测试也省事、维护也省事。
b.文档处理。
Excel、PPT、PDF、ZIP文件的读写,尤其是Excel等报表的下载,几乎每个Web项目都有用到。
c.文件操作。
创建文件、移动文件、删除文件等文件和目录操作,很常见,很通用。
可以使用Jodd等组件,或者对JDK相关类库进行进一步封装,从而减少代码重复。
1.2流程类复用
a.WEB表单的验证。
b.开发环境的搭建和配置。
c.异常处理、日志配置、监控报警。
1.3业务和功能复用
增加、查看、修改、删除、搜索、排序、分页、报表下载、操作日志、上传和下载、权限控制。
2.知识库
2.1知识管理
Add,Update,Remove,Delete,Query
Add:已有经验和知识入库。
Update:更新和完善已有知识。
Remove:遗忘了一些不常用的知识。
Delete:彻底删除过时的知识。
Query:查询才是最主要的目标,应用是目的。
为了提高查询效率,需要建立“索引”。
分类索引:符合大脑思维,符合化繁为简-分而治之的思想。
线性索引:超出人的大脑,只能通过工具来实现,比如百度和Google。
2.2知识分类
技术:框架,语言,工具,类库
业务:行业相关
2.3知识的典型代表
项目经验总结、解决问题的方法和思路、JS和Java组件等。
2.4知识库建设指南
文档化:形成文档。
理论化:理论体系。
实践话:经过验证、能够反复应用。
标准化:做事有参考,提高效率。
三、改变与行动
1.问题很容易解决?
软件复用和知识库这2个对策,对拥有大量人才的公司来说根本不是难事。因为,大量的问题都已经解决,剩下的只是对这些解决问题的方法进行提炼、抽象,方便下次使用。
2.谁去解决?
公司肯定有人比我先知先觉,比我聪明,比我有能力的人肯定有一大把,我只是很奇怪为什么没有人去行动?去改变?
今天,我鼓起勇气,把自己的思考和对策分享下,期待交流…
------------------------------------邮件正文-----------------------------------------
整个邮件探讨比较多,更多内容以及当时的实践,再单独写一篇,认真探讨。
四、京东之答
最近加入了京东集团,作为新人,积极学习了大量知识,包括
集团和部门架构、文化和价值观、业务(电商、金融、云计算)、技术体系、组织运作体系等。
深有感触,客观地认为:京东集团很先进。
就技术研发这个方面,京东的研发体系和环境,可以很好地回答我2013年提出的问题和解决方案:软件复用和知识库。
软件复用
有些大部门,有专门的架构部。
经过10多年发展,尤其是最近5年,在私有云和基础设施这方面,有如下积淀:
内部私有(云):文件存储、消息队列、云缓存、服务框架、CDN内容分发网络、网络监控。
公有云:云存储、云缓存、CDN等。
知识库
整个技术体系(CTO体系),有如下积淀:
代码共享平台、研发管理系统、研发知识分享系统
研发体系
自动测试系统、自动部署系统、实时监控(红绿灯)、运维管理平台等。
集团层面
京东视频(京东公开课)、文库、IT服务平台、行政人事ERP等各种系统。
当然,我不是说,集团内部所有组织和项目都是这么高效。至少,在整个“集团运作”方面,顶层设计这块,给出了很好的总体部署。
五、提高生产力
提高生产力,是一个巨大且有效的课题。
之前已经写了很多关于“提高生产力”方面的文章,本篇和本篇提高的“软件复用和知识库”是其中的冰山一角。
我正在筹划3年写的一本书,“提高生产力”也是其中一个重要话题。
简而言之,提高生产力,是一个系列,是需要长篇大论的。
六、致歉
限于分享和保密之间,并没有明确的界限。
但凡可能涉及商业机密和公司明文规定的,本人尽可能都不分享。
要不然,相关部门的相关人士,会请我喝茶的。(你猜是龙井,还是普洱。o(︶︿︶)o )
身在职场的你,肯定懂的。
七、品牌广告
关注小雷,更聪慧,人生从此不中雷。
对提高生产力这个话题感兴趣的朋友,欢迎交流和探讨。