咨询案例
某医疗内容领域领军企业
该企业在医嘱集内容领域细分市场处于绝对的垄断地位。它有一个8年以上的遗留系统,基于.NET技术栈,涉及的技术有C#、Web Form、ASP.NET MVC、NHibernate、MSSQL并涉及大量存储过程、Sencha及其之前版本即Extjs,Twist等等。系统充满各种问题:
- 系统难以维护,开发新功能非常缓慢,面临竞争对手的赶超;
- 工程能力弱,线上代码与代码库有大量区别,自动化能力弱,迁移升级困难;
- 系统访问速度慢,面对客户的数据诉求无法满足;
- 前任开发团队已经被全体解雇并雇用了新团队,新团队能力不足且缺乏足够的信息传递;
- 核心功能依赖一些已进过时无人维护且难以维护的第三方库(比如某核心js控件只有一个合并后的一个2万行的文件)
在这个项目里:
- 作为咨询师进行敏捷过程改进,团队构建和分布式的敏捷团队协作;
- 在保证交付速度的前提下,对系统核心模块进行重构;
- 优化持续集成,该系统构建本地需要30分钟、单模块1天、全系统核心部分一周。通过在持续集成中引入并行构建、从而始终在保持项目测试防护网非常全面的情况下,本地构建5分钟,单模块15分钟之内,并使多个模块达到这个标准;
- 性能优化,查询模块性能提升10倍;
- 从事能力建设,使得团队得以维护该系统并能构建出非常全面的测试防护网;
- 帮助升级、替换了过时第三方库,并打造了一套自动化测试框架,使其可以自动化测试。
某公司企业级CMS产品架构改造
该客户有一套ECMS(即企业级内容管理系统,实现了JSR170和JSR283)产品,属于FileNet的竞品。该系统面临的问题是:
- 核心模块对于JSR实现规范和Java的编程规范过于执着导致性能有问题;
- API模块设计有问题,不合理的API设计导致性能问题进一步加剧;
- 权限模块代码设计有问题且有性能问题;
在这个系统里咨询师重点完成:
- 系统级的性能瓶颈分析;
- 针对核心模块提出了改进建议,并做了概念证明;
- 重写权限模块提升了100倍性能;
- 对API模块做了重构,增加了缓存,减少了无谓的请求,提出了类似GraphQL的思路提升了API模块的性能
某政府部门的静态化引擎改造
该客户有一套政府使用的CMS产品,给国内多家政府建造了CMS。该系统面临的问题是:
- 当年使用的引擎是早期少数员工制作的,员工已经离职,可读性差,导致无法添加新功能;
- 引擎部分的设计混乱,可扩展性差;
- 文档过时,无法指导开发。
在这个系统里咨询师主要进行:
- 理解原有模块设计,添加新功能;
- 对原有模块的设计改造,增加可读性和可扩展性;
- 更新设计文档及产品文档;
- 设计培训,以提升政府维护人员使用正确率,帮助降低维护成本并形成新的收费模式。
某Open Access论文领域的领军企业
公司是事实上的行业标准制定者,隶属三大出版集团,它有一个10年以上的遗留系统,这个系统从asp时代创业伊始直到Java SE 7时代,混合存在微软的技术栈和Java技术栈,每一代的技术都牵涉其中。使用的技术有asp、IIS、JScript、VBScript、Tomcat、Struts 1、Spring 2、3(主要是用了Spring MVC、Spring IoC、Spring AOP),Hinernate、纯JDBC、Servlet、Velocity、JSP、JSTL、Apache Tile、JSF、Oracle等等。
系统充满各种问题:
- 系统难以维护,有少量自动化测试,开发新功能已经非常缓慢;
- 新团队是远程分布式团队,需要两边协同配合;
- 涉及的技术栈太多,想要升级并甩掉旧有技术栈却并不想影响开发进度;
- 多团队配合成问题,不知道怎么建立起良好的协作;
- 系统访问速度慢。
在这个系统里咨询师的工作有:
- 促成分布式敏捷团队协作,并通过工作推动了客户的改变;
- 在保证交付速度的前提下,进行遗留系统重构改造与功能交付;
- 数十个模块的持续集成环境的建设;
- 设计了客户自动化测试的方案并推动落地;
- 查询性能优化,查询模块提升几十倍速度。
国内某物流行业领军公司应用开发框架
基于该公司的快递员知识库系统需要打造一个易于访问的移动端的需求为试验项目,我们帮助他们构建一个Mobile Web方向的应用开发框架,要能在他们的手持设备上顺畅的使用且可以快速开发、方便抽取组件、并能高效的在组织内进行分享以响应企业变化。我主要做了