本文面向分布式环境下企业级应用的实施过程中,Onsite实施团队和Offshore研发团队之间的有效协作。大家可以想象这样的场景:实施人员部署研发团队提供的服务到客户现场,在部署和试运行过程中难免会出现这样或那样的问题,这些问题有非技术的也有技术的,而实施团队通常无法处理类似技术方面的问题,这就需要实施团队和研发团队之间进行有效协作确保问题得以解决。所以这是一个发现问题、解决问题的过程,由于是在分布式远程环境下,沟通不畅给问题的发现和解决带来了正常研发过程中所无法想象的挑战。本文对上述场景下如何应对协作过程中的困难提几点思路并对工作展开的有效模式进行探讨。

一.  几点思路

  • 保持敏锐:对实施而言,一个细微的、不起眼的、不影响使用的问题,日后可能造成大错,且很难排查。所以实施过程中没有问题是小问题
  • 保持理性:对于那种诡异的错误,真的有那么巧吗?通常不会,因为程序的事情实际上很简单,不是对就是错
  • 保持平衡:不要过于追求完美,要在完美和时间之间达成一种平衡
  • 保持勇气:在现场,勇气第一。遇到困境,一时想不到妥善的处理方法,不如直接动手做,或许会柳暗花明
  • 缩小范围:现场问题不外乎应用服务器(Tomcat、Jboss)、数据源(数据库和接口)、UI相关(无响应/页面操作逻辑)、和网络相关(WIFI/与服务器的局域网)的问题
  • 安排顺序:遵循帕累托法则,尽量做到频繁发布,注意跳出问题的死循环

二.  Log的重要性

Log的作用是解决问题,至少定位问题。Log通常会涉及到服务端的功能,但客户端同样也是需要日志管理的一大方面,因为往往客户端界面上出现的页面操作逻辑性问题更加难定位,而且难于调试,所以要尽量把客户端的用户操作行为记录下来作为发现和排查问题的一个突破点。下面看关于Log使用上的两个示例,这两个示例都在是实际实施过程中碰到的比较典型的问题:

问题1:报表的访问,获取数据慢
Log:报表后台平均需要500ms的时间去获取
关键词:响应时间 缓存
解决方案:记录日志,利用AOP 或Filter,配置统一的接口性能跟踪找到性能差的接口,通过引入缓存后,平均为30ms

问题2:现场环境报表列表显示错误
Log:Log显示返回的数据有特殊字符,导致前端数据处理错误
关键词:特殊字符
解决方案:通过在前端代码中加Log功能后,发现数据有特殊字符,增加一段特殊字符的处理代码

三.  数据源是基础

这里数据源泛指数据库、接口、第三方服务等各个方面,在企业级应用中,数据库视图等是广泛使用的一种数据集成方式。数据规范化是快速实施的前提,实施难度上通常不是因为技术上的问题而是沟通、协调上的问题,所以我们的思路有以下三点:

  • 提供规范文档,一些最基本的字段只要通过掌握通过数据库查询,即可解决问题
  • 梳理接口诊断方案,对实施过程中容易出现的问题有方法和流程进行快速定位
  • 准备接口Checklist,确保接口开发人员对照Checklist中所有的规则和注意点完成开发工作,在完成Checklist的对比之前不能将接口开放出来

四.  开一张好票

团队中通常会使用一个Ticket系统作为问题跟踪的基础,开票指的就是现场实施团队往这个系统中添加一个Ticket作为研发团队的输入。

开票前的思路是:用户为什么提出这个要求(管理用户的期望值);用户什么时候需要问题的解决/解答/完善;我如何把关(管理团队的期望值)。开票之后,再回过头看看:用户的意图表达清楚了吗(input);具体的要求表达清楚了吗(output);别人能看懂我的描述吗;项目上的轻重缓急表述清楚了吗。

五.  再论工具的作用

在我们一个项目的开发实施过程中,现场实施团队问题反馈数量为34个,需求优化18个;而研发团队服务发布数量为ipa包22次,war包9次。如何有效的管理这些需求和服务发布,工具是必要的。除了上文提到的Ticket系统外,我们使用OneNote进行现场环境信息的实时同步,使用Jenkins进行客户端ipa包和服务器端war包的自动化构建以及版本控制,这些工具都为确保过程的正确性和高效性提供了保障。

六.  信息透明性

信息透明的方法论是:对内信息100%透明;对外信息选择性透明,但一定不能100%透明,效果示例图如下:

要做到信息透明,关注以下几个方面:

  • 保持记录:很多问题,通过重启tomcat和数据库等,就能解决。但是,一定要记得把问题记录下来
  • 用户参与:对用户而言,如果有计划,按计划同步信息;如果没有计划,按功能同步信息;如果有条件,用户参与部署
  • 明确的团队成员角色、统一协作平台、每日例会和需求梳理会议、发挥开发人员主动性等思路和工作方式都能提高分布式环境下信息传递的透明性

七.  小结

本文是对项目实施过程中一些团队协作方面的总结,关注发现问题、解决问题的思路,内容比较零散但一些思想和工作模式应该是通用的。

项目实施中的团队协作--关于发现问题、解决问题有效模式的探讨相关推荐

  1. 项目实施中如何进行有效的沟通?

    在项目实施中,有效的沟通是非常关键的.在项目中,涉及到的各个方面需要相互合作和沟通,包括团队成员.客户.管理层等.如果沟通不畅,可能会导致项目进度延误.误解.冲突等问题.因此,以下是一些可以帮助项目实 ...

  2. 项目实施中应该注意的事项

    作为一名项目施工人员,抚琴煮酒前前后后也实施过一些大大小小的项目了,有并发量大的CDN广告网站,还有证券类资讯网站以及电子商务网站等,还有就是一些并发不大但要求作成HA的小型网站等,感觉其实在实施过程 ...

  3. 项目实施中应该注意的重点事项!急

    1.7 项目实施中应该注意的事项 <构建高可用Linux服务器>第1章Linux服务器构建基础,本章从Centos5.5 x86_64的安装.网络配置.日志分析.性能及状态监控.优化及虚拟 ...

  4. 项目实施中三个最关键的干系人

    做事抓关键,打蛇打七寸.项目实施中干系人众多,有三个最关键.只要抓住最关键的三个人,项目即成功了80%. 1)业主方的拍板人(最高决策人). 业主方的人员分三类:最终用户.技术决策人.拍板人.除互联网 ...

  5. UML在项目实施中的使用心得(详细设计阶段)

    3.详细设计阶段 在业务需求分析阶段使用Use Case图.Sequence图(有时候也使用Activity图的泳道图)描述清楚业务范围及业务流程,在概要设计阶段使用deployment图.compo ...

  6. 主数据治理项目实施中存在的问题

    随着互联网.大数据.云计算等技术的快速发展与应用,在企业经营管理上对于数据的收集与治理越来越重要,主数据治理作为数据治理中重要的一环,是数据决策分析.深度应用集成的重要基础,也是企业信息化建设的必经之 ...

  7. [项目管理-18]:项目实施中,项目经理、产品经理、运营经理、设计经理、技术经理、工程经理不同角色的比较

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  8. 总结OA项目实施中的几套成功思路

    OA软件的价值不是软件本身有多强大,也不是页面多美化,而是最终体现在OA系统与用户企业的紧密结合中,需要在OA项目的实施过程中加以辅佐.OA软件的实施就是控制项目边界,实施就是沟通,实施就是用管理思维 ...

  9. BPR项目实施中常用的五大技术和方法 (转载)

    对于一个企业来说,BPR是一个重大而复杂的系统工程,在项目实施过程中涉及到多方面的活动和工作.参与企业信息化的成员在整个BPR过程中,不但应当知道如何进行BPR,由谁来进行BPR,而且还需要了解一些进 ...

最新文章

  1. 如何安装体验 Ubuntu on Windows
  2. Android机器人电池插件源码
  3. 【测试点分析】1104 Sum of Number Segments (20 分)
  4. win下php5.4安装ffmpeg-php扩展
  5. 【蓝桥杯】BASIC-8 回文数(2020-06-08)
  6. 一些比较有用的SQL操作,2011最新整理
  7. 广播地址的作用_跟百哥学网络16:ARP地址解析协议分析
  8. WebBrowser设置打印页眉页眉和页边距
  9. MySQL-第八篇MySQL内置函数
  10. 合工大计算机与信息学院保研,合肥工业大学计算机与信息学院(专业学位)计算机技术保研细则...
  11. 学校图书馆借阅管理系统软件项目分析
  12. Windows10下自定义桌面快捷方式图标--以Spyder为例
  13. 为什么要使用工作流引擎
  14. 4.2.3偏移寻址(19)
  15. 计算机考研真题解析---计算机网络
  16. Matplotlib使用小技巧(Python3.5版)
  17. Sensitivity and specificity 敏感性与特异性
  18. mongodb持久化
  19. Linux切换壁纸,Linux 随机换壁纸
  20. 基于北斗的储罐沉降监测系统方案

热门文章

  1. 2022-2027年中国电动汽车充电站及充电桩行业市场调研及未来发展趋势预测报告
  2. 使用stm32配置自定义的HID设备
  3. window文件共享访问记录清除命令
  4. 港大计算机学院副院长,中科院许榕生教授、香港大学邹锦沛博士等一行访问我校...
  5. Kaldi 入门使用教程
  6. JavaScript中Set的使用
  7. 甲骨文数据库购买的价格(二)
  8. GO + React + Axios Response to preflight request doesn't pass access control check: It does not hav
  9. “技术让生活更便捷”之腾讯位置服务JavaScript API2.0前端定位和位置标注的开发实录
  10. js过滤对象中值为空的属性