<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[[转]我是如何把一个项目带崩的，多么痛的领悟，做项目前值得多次阅读并深刻检查。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[产品管理]]></category>
<pubDate>Wed, 05 Dec 2018 08:09:11 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	项目和团队背景<br/>首先给大家说明一下项目背景，以便各位对此项目有更清晰的了解：<br/>1.该项目是一个二次开发项目，第一个基础版本（打印申报系统）也由我带领开发。<br/>2.系统是需要和国家系统对接，有三条主流程。<br/>3.需求频繁变化，由于系统需要对接国家系统，需求方对需求也不甚了解。曾在5月份一个月内需求变更超过8次，都是主流程变更。<br/>4.项目大小按照最初需求估算，约在100人天左右。<br/>5.项目两条主流程无法测试，依赖于外部U盾，但开发过程中并没有U盾。<br/>6.客户现场使用U盾调试和开发时间约为20天左右。<br/>7.我当时同时负责大大小小4个项目，没有进入开发，仅管控进度。<br/>8.团队成员共3名，其中两名是当时开发基础版本的项目成员，他们对此项目较为熟悉。<br/>9.项目推进过程中，需要多次去现场调试测试，由团队中的两名工程师共同前去。<br/><br/>我做错了什么<br/>除了监控进度，还要管理质量<br/><br/>在项目的开发初期，我制定了一份详细的开发计划，用于指导整个开发过程。开发计划交付与了客户，而答应了的事情就要做到，所以在整个项目过程中，我对进度管控很严。我定期检查功能是否完成，定期和客户汇报情况，保证了开发进度顺利推进。但也由此埋下了祸根，仅仅看需求是否完成，而未关注完成的质量如何。<br/><br/>项目质量出现了许多细节性问题。比如：<br/>1.上线后，客户那边发现其中一条主流程都走不下去<br/>2.其中申报功能，系统提示成功。但实际上并没有真的申报成功，申报后在国家系统无法查询到<br/>3.打印功能小问题较多，打印获取的数据错误<br/>4.同步数据的功能无法同步或者同步的数据错误<br/>5.执行时间过长的功能，数据库会强制断开连接<br/>等等问题，就不一一列举<br/><br/>反思：<br/>1.进度和开发速度固然重要，但以质量换速度不可取<br/>2.如果开发时间和质量冲突，优先保质量，毕竟你埋下的坑，总是要坑你自己的<br/>3.再困难的情况下，也要保证基本测试<br/>4.时间极其不允许的情况下，也要保证主线功能顺利执行<br/><br/>既要给予信任，也要保持警惕<br/><br/>项目中的三名成员，都是合格的开发，对使用的框架非常熟悉。其中两名还是基础版本开发成员，对需求也很熟悉。所以项目中，我放心的把整个项目交给了他们。基于对他们的放心，加上其他项目事情繁杂，对此项目关注度，对他们的关注度就不够了。<br/><br/>我在项目中给予了他们非常充分的信任，信任他们可以把一切事情都做好。但我没有在正确的时候给予他们正确的指引，项目中出现的困难点，我也没有帮助他们解决，甚至于没有给出思路。所有的一切，都靠他们自己完成。我在这个项目里做的，就是对接客户，催进度。再无第三件事。<br/><br/>反思：<br/>1.不论什么原因，都要关注到项目成员的状态<br/>2.给予信任没错，但也要适当保持警惕，他们多少会因为经验问题疏忽遗漏一些问题<br/>3.给予信任，也要给予帮助，不以时间为理由推脱你应该对他们进行的指点和帮助。毕竟现在剩下来一分钟，以后要花一个小时去弥补<br/><br/>若无法全局掌控，就指派专人负责<br/><br/>这是我在项目中做的最错误的地方。<br/><br/>由于种种原因，我无法掌握到项目的每个要点和细节。而项目中有三个开发。我并没指明其中某一个来负责整个项目，所有事情都让他们自己商量。从客户对接来的问题，我也是仅告知对应的开发。整个项目中，没有一个人对项目中的每个要点了如指掌。<br/><br/>反思：<br/>1.手里捏着管理的权利，却没有做到管理的事情。是我在这个项目里最大的问题<br/>2.授权！授权！授权！如果自己无法亲力亲为投入项目管理工作，就授权给团队某个成员管理权限，让他代替你去做管理工作<br/>3.管理一人，总比管理多个人轻松，也更有效<br/><br/>要控制需求，更要控制流程<br/><br/>项目是二次开发、成员对项目很熟悉、项目工作量不大、时间紧。<br/><br/>基于以上原因，我掉以轻心，没有在项目初期进行项目的设计和规划，未指定任何开发规范。仅仅告诉开发的同事要多复用，也未检查他们是否真的复用了。<br/><br/>项目开发中的需求变更，客户反馈意见，我我都仅仅是告知他们一声，未做详细的修改规划，所有事情都靠嘴说，所有变动都放在了我和他们的脑子里。<br/><br/>对项目上心程度不够，未对客户的需求变更做控制和管理。所有变更都压给了开发的同事。<br/><br/>整个项目以及其不规范的方式在运行，我也未在其中起到控制作用，项目开发一团乱麻。<br/><br/>反思：<br/>1.不做设计，不进开发<br/>2.以管理工具指导开发进行，开发过程中所有变更、反馈做记录<br/>3.控制需求变更，拒绝不合理的需求<br/>4.需求变更规范化操作，统一变更，而不是直接压给开发<br/><br/>无论什么情况下，都要进行code review<br/><br/>整个项目过去了几乎四个月，我仅仅花了两个多小时简单看了下代码，未指出代码的任何问题。这也导致出问题后来我花了成倍的时间来处理code review的工作，并且项目成型后的代码修改困难。<br/><br/>项目开发过程中，也未让开发间互相进行代码review，也没有进行代码评审会。<br/><br/>其实代码中出现了很多问题，最后检查代码的时候，发现各种命名不规范、代码复用不到位、简单逻辑复杂写等等。而这些问题，很大一部分都是早期未做规定，未指定人负责项目、未进行早期code review造成的。开发各自为战，难免造成代码问题。<br/><br/>代码质量的问题，淋漓尽致的体现的在项目中，项目中的诸多bug，都是因为代码不规范引起的。甚至于开发人员自己对自己写过的东西，都有些拎不清了。<br/><br/>反思：<br/>1.代码质量非常重要，代码越规范bug越少<br/>2.代码互评能让开发更注重自己代码的质量<br/>3.code review非常有必要，越早期的code review越能有效的节省后期的时间<br/><br/>我在其中占有多重的因素<br/>100%<br/><br/>我怎么填坑的<br/>项目上线，问题频出，用户不满。花了8天时间来处理这个问题。幸亏项目不大，我一个人也能够挽回。<br/><br/>目前暂时解决完毕，我简单说一下我是怎么填坑的：<br/>1.和开发主流程的同事详细熟悉了所有需求要点<br/>2.基于我对项目需求的熟悉，我花了三天把所有主流程的所有代码分析完毕，做出了我认为应该的修改，并实施部署到生产环境测试（这是在给开着的飞机换引擎，但需要U盾才能测试，仅有生产环境的机器有U盾，别无他法）<br/>3.每天花超过12个小时来进行code review 和修改，几乎每天code review + 修改到凌晨2点多（仅修改了问题较大且影响较小的地方。小问题未修改、牵涉面较广的地方未修改）<br/>4.每次上班时间的修改让开发同事坐在旁边和我一起进行，我进行修改，开发同事在一旁监督。确保我不出错<br/>5.优化功能点，把我发现的提示问题，和优化点都同步修改进代码中，确保用户体验不要太糟，以期能挽回一些用户心态<br/><br/>我所吸取的教训总结<br/>1.先设计，后开发<br/>2.管理权下放，项目中必须有人全身心负责<br/>3.无论什么情况都要进行code review<br/>4.压缩质量得到的进度保证不可取，开发周期不合理决不答应客户。否则坑了自己坑了同事，更坑了客户<br/><br/>From:http://www.leidun.site/index.php?s=/forum/plate/topic/id/102.html&amp;from=groupmessage&amp;isappinstalled=0&amp;code=081IBpIS0UeVRY1AGDJS0HFmIS0IBpID&amp;state=STATE
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [转]我是如何把一个项目带崩的，多么痛的领悟，做项目前值得多次阅读并深刻检查。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>