<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>banner</title>
    <description></description>
    <link>http://banner.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>开发团队关于测试的两个问题</title>
        <author>banner</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://banner.javaeye.com">banner</a>&nbsp;
          链接：<a href="http://banner.javaeye.com/blog/164444" style="color:red;">http://banner.javaeye.com/blog/164444</a>&nbsp;
          发表时间: 2008年02月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          刚才旁听一个组建时间不长的开发团队的周例会，团队大致有20多人，分多个小组，注意到了两个问题：<br />1、指定几位开发人员作为测试人员：<br />由于暂时没有专业的测试人员，指定了几个对业务熟练的开发人员（或小组长）做测试，测试结果提交TD。对于业务复杂的庞大系统，在模块开发阶段没有专业测试人员的情况下，我比较倾向这种方式。<br />2、开发过程中的测试数据准备：<br />记得以前模块开发过程中，对于junit单元测试所用数据，是自己创建、自己应用、自己删除的；<br />在通过界面测系统模块功能时，则没有什么规则，经常会发生甲做了一批测试数据，今天测了一部份，明天数据就被乙删掉了的情况，测试数据相护使用。<br />我在想在一个团队里有多个小组如何合理有效的建立模块测试数据：创建数据不做重复劳动，数据可充分“复用”、“共享”、不产生冲突。单独成立一个测试数据构造组？是不是有点投入过大？
          <br/>
          <span style="color:red;">
            <a href="http://banner.javaeye.com/blog/164444#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 23 Feb 2008 15:55:48 +0800</pubDate>
        <link>http://banner.javaeye.com/blog/164444</link>
        <guid>http://banner.javaeye.com/blog/164444</guid>
      </item>
      <item>
        <title>请教工作量估算的问题</title>
        <author>banner</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://banner.javaeye.com">banner</a>&nbsp;
          链接：<a href="http://banner.javaeye.com/blog/163561" style="color:red;">http://banner.javaeye.com/blog/163561</a>&nbsp;
          发表时间: 2008年02月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本人开发人员出身，做开发小组长有一两年了，对工作量的评估一直头疼。刚接到一个开发任务，要对一个demo根据需求改造以达到为某省上线应用的目的，现在项目组还没组建，只有demo+需求（部分需求已完成设计），不知这种情况下：如何更好的估算工作量，并根据估算结果组件团队，在合同规定时间内完成开发任务?<br />刚看到china-pub上有本书：软件估算--黑匣子揭秘(《代码大全》作者Steve McConnell又一力作)。不知这本书如何？
          <br/>
          <span style="color:red;">
            <a href="http://banner.javaeye.com/blog/163561#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Feb 2008 10:34:36 +0800</pubDate>
        <link>http://banner.javaeye.com/blog/163561</link>
        <guid>http://banner.javaeye.com/blog/163561</guid>
      </item>
      <item>
        <title>基于200607-200708的pro项目的技术总结1：The mistake of layering</title>
        <author>banner</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://banner.javaeye.com">banner</a>&nbsp;
          链接：<a href="http://banner.javaeye.com/blog/119864" style="color:red;">http://banner.javaeye.com/blog/119864</a>&nbsp;
          发表时间: 2007年09月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 公司对包的定义有统一规定，以公司名mycom为最高层，下面根据产品定义不同的包，公司包下有独立的util包，util包可供各产品代码共用。今日发现一问题：<br />
当前项目包为mycom.pro，mycom.util中的代码中竟有mycom.pro的import，破坏了mycom.util的独立性与可重用性。
          <br/>
          <span style="color:red;">
            <a href="http://banner.javaeye.com/blog/119864#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 03 Sep 2007 15:44:04 +0800</pubDate>
        <link>http://banner.javaeye.com/blog/119864</link>
        <guid>http://banner.javaeye.com/blog/119864</guid>
      </item>
      <item>
        <title>对于刚完成的一个项目的一些总结</title>
        <author>banner</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://banner.javaeye.com">banner</a>&nbsp;
          链接：<a href="http://banner.javaeye.com/blog/99077" style="color:red;">http://banner.javaeye.com/blog/99077</a>&nbsp;
          发表时间: 2007年07月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <span style="font-family: 宋体;">项目是个电信类的项目（其实是一个产品），</span><span lang="EN-US">30</span><span style="font-family: 宋体;">来个人做了</span><span lang="EN-US">13</span><span style="font-family: 宋体;">个月，前后经历了不少人员变动，包括</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">和技术总监。我在该</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里担任一个开发小组的组长。下面就以自己的认识总结一下这个项目吧：</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</span><span style="font-family: 宋体;">、首先说一下人员构成情况。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; team</span><span style="font-family: 宋体;">里，一个</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">，两个副的（其中一个是技术总监，另外一个是分析设计人员），</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">在项目做了几个月的时候离职，后上来的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">是上层领导捧上来的，两个</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">的共同点是熟悉相关的业务不懂技术，管理水平不好评价；技术总监（架构师）在原来的</span><span lang="EN-US"> PM</span><span style="font-family: 宋体;">离开后离职（估计是因为职场斗争），后来的技术总监是从设计人员提拔上来的。原来是</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">对项目总体把握，开发工作一般由技术总监部署，后来的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">总揽</span> <span style="font-family: 宋体;">全局，以铁腕控制所有工作。我个人观点，第一个</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">那种工作划分更合理，他懂业务懂管理，就多负责内外沟通、协调管理上；技术总监技术功底深厚，有很好的</span> <span style="font-family: 宋体;">架构设计能力，同时开发管理经验丰富，理应担任一个开发经理角色。</span><br />
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PM</span><span style="font-family: 宋体;">下面，有几个分析设计人员和开发小组组长（按功能模块划分）。分析设计人员只熟悉业务技术只懂一些皮毛，遗憾的是设计成果有时让详设人员和开发人员头疼，但他们掌控着各个模块的需求分析与概要设计。开发小组组长做详细设计同时写少量代码，下面的开发人员由本公司的新员工和外包人员构成，负责编码。我比</span> <span style="font-family: 宋体;">较认同分析、设计职责分开的做法，懂业务的不一定懂设计，设计是技术描述业务的过程，不懂技术做出的设计很难让开发人员开展工作。分析人员可以不懂技术，他们只负责把需求整理出来提交给设计人员。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2</span><span style="font-family: 宋体;">、开发过程。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">原来的技术总监在时，搞敏捷开发</span> <span style="font-family: 宋体;">，按模块划分的各小组按迭代计划开发。个人观点：其实这个项目是个很大的项目，用</span><span lang="EN-US">RUP</span><span style="font-family: 宋体;">结合</span><span lang="EN-US">XP</span><span style="font-family: 宋体;">会更好，对项目整体用</span><span lang="EN-US">RUP</span><span style="font-family: 宋体;">，同时采用迭代和测试驱动，这</span> <span style="font-family: 宋体;">样难度虽然大些，但对以后的开发很有利。该技术总监离开后，敏捷开发不了了之，后面的开发基本采用领导分任务模式，做完拉倒，后来还用</span><span lang="EN-US">CC</span><span style="font-family: 宋体;">实施了</span><span lang="EN-US"> daily build</span><span style="font-family: 宋体;">。项目开发中期，一部分人到另外一个地方做开发，但还是同一个项目，这样便有了异地集成（用的版本管理是</span><span lang="EN-US">VSS</span><span style="font-family: 宋体;">），两边的</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里便要单独找出人来负责两边代码的同步，因为代码同步出来不少问题，中后期两边的测试人员开始工作，常会出现代码同步问题产生的</span><span lang="EN-US">BUG</span><span style="font-family: 宋体;">。我暂时想不出有什么好的办法解决异地开发的合代码问题，只能总结些教训，如果没有其他办法解决异地开发的代码同步，就在两边的</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里各找出一人合代码与文档（类似一个</span><span lang="EN-US">Facade</span><span style="font-family: 宋体;">吧），</span><span lang="EN-US">VSS</span><span style="font-family: 宋体;">管理员更好，该人直接对</span><span lang="EN-US">team</span><span style="font-family: 宋体;">的最高领导负责，其他人员不能插手该工作。在项目中出现过两边多接口的情况，相互扯皮，影响了</span><span lang="EN-US">team member</span><span style="font-family: 宋体;">的团结与工作效率。没有使用过</span><span lang="EN-US">CVS</span><span style="font-family: 宋体;">异地开发，不敢妄加评论。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">对于</span><span lang="EN-US">daily build</span><span style="font-family: 宋体;">，没什么可说的，对于有</span><span lang="EN-US">N</span><span style="font-family: 宋体;">多个模块的系统，</span><span lang="EN-US">daily build</span><span style="font-family: 宋体;">是好事，不过</span><span lang="EN-US">build</span><span style="font-family: 宋体;">的周期却不一定是</span><span lang="EN-US">daily</span><span style="font-family: 宋体;">，它的决定因素应该考虑项目组的开发能力、系统开发进展等。</span><span lang="EN-US">daily build</span><span style="font-family: 宋体;">是双刃剑，用不好会死人的，不过</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里有不怕死的，</span><span lang="EN-US">daily build</span><span style="font-family: 宋体;">在这个项目的使用是成功的还是失败的，我很难做出评价，它对开发过程起了一定的作用。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; team</span><span style="font-family: 宋体;">中原来有几个专门的技术人员人做技术研究与验证（</span><span lang="EN-US">me</span><span style="font-family: 宋体;">也在其内），主要解决开发过程中普遍存在的技术问题、研究新的技术或写出公用代码来提高整个</span><span lang="EN-US">team</span><span style="font-family: 宋体;">的开发效率。对于大的</span><span lang="EN-US">project</span><span style="font-family: 宋体;">，这些人的存在有一定的意义。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3</span><span style="font-family: 宋体;">、内部的管理。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">首先说一下公司的发展倾向，原来公司是产品＋项目，有专门的部门做研发，现在公司对人员整合，不再有研发部门，按项目划分人员。公司采取什么样的管理模</span> <span style="font-family: 宋体;">式，我说话没有作用，暂且说说自己的看法。我所在的公司说大不大说小不小，带有点国企性质，近年来业绩较差（我就不明白，每年签好多单子，怎么就盈利那么</span> <span style="font-family: 宋体;">点钱），按项目划分也有不少好处，起码员工要可以靠干活吃饭啊，不过从长远考虑，对于要求有技术要求的公司，专门的研发部门不可少。按项目划分同时使一种现象强化，即重业务轻技术，公司搞电信软件开发与系统集成，对于懂电信业务的人员很重视，项目经理都是搞业务出身的，而且</span><span lang="EN-US">team</span><span style="font-family: 宋体;">的中级管理人员也是搞业务的，这样形成了一种业务人员带着一帮技术熟练工工作的现状，这样一来，搞技术的看不到自己的发展前景，心灰意冷，加之公司的工资水平低，亦没有调薪的习惯，公司每个月都有</span><span lang="EN-US">N</span><span style="font-family: 宋体;">个员工离职。我们项目组也走了几个，新来的大都是刚毕业的学生，因为他们会得到户口。没有走的技术人员不知道以后发展会如何，过的也很不爽：搞技术，公司不重视，没前途；搞业务，没有机会。也曾有不少项目经理提出过人员流失的问题，但公司发展如此，改变的可能性不大，起码这几年内不会有变化。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">管理有一种情况也许跟不少其他公司很相似，现在的</span><span lang="EN-US">team</span><span style="font-family: 宋体;">是</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">一人负责制（我更希望公司采用矩阵式管理，这样管理成本虽大些，但其更具稳定性、更有效率），</span><span lang="EN-US">team</span><span style="font-family: 宋体;">中用人与其他管理以项目经理的个人判断而定，这对</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">的要求太高了，我想这种管理模式下的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">能让下面的同事心服口服的不应该在多数。对于一个不大懂技术的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">，如何衡量技术人员的水平是一个不太容易得出答案的问题。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">&ldquo;你们公司的管理是很混乱&rdquo;，这是一个与我们合作的一个公司的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">的评价。从</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里人员的职责划分与执行可见一斑，人员职责划分要明确的道理都懂，人们大都知道自己做什么，但不作什么同样需要</span><span lang="EN-US">Manager</span><span style="font-family: 宋体;">明确。对于一个大的</span><span lang="EN-US">team</span><span style="font-family: 宋体;">，管理需要严谨，需要层次，</span><span lang="EN-US">member</span><span style="font-family: 宋体;">之间的沟通应遵循一定的原则。看到现在作坊式的</span><span lang="EN-US">team</span><span style="font-family: 宋体;">，便怀念以前的那家日本公司（不要鄙视我），那家公司的管理很让人佩服，尽管他们用的技术并不先进。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">还有一点，也算是一种经验吧。</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里总有一些人技术业务能力一般，但&ldquo;沟通&rdquo;能力强，很会表现自己，当面一套背后一套的本事很强，呵呵，这类人在我们公司会受上上下下的领导赏识，很有发展前途，因为公司的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">培训文档里规定的</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">的能力中，最重要的便是沟通能力。这些人被</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">以及上层领导视为人才。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">至于</span><span lang="EN-US">member</span><span style="font-family: 宋体;">之间的竞争，甚至相护踩踏，在</span><span lang="EN-US">team</span><span style="font-family: 宋体;">里也有体现，如何避免跟公司的企业文化、</span><span lang="EN-US">PM</span><span style="font-family: 宋体;">的管理、人员素质都有关系。</span><span lang="EN-US"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;">写的有些累了，以上便是自己在这个项目过程中的一写体会吧。尽管自己是个技术人员，但有一点现在自己不得不接受：不要沉迷于技术，比技术重要的东西很多，这是中国国情，不是技术人员所能改变的。</span></p>
          <br/>
          <span style="color:red;">
            <a href="http://banner.javaeye.com/blog/99077#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 08 Jul 2007 14:06:03 +0800</pubDate>
        <link>http://banner.javaeye.com/blog/99077</link>
        <guid>http://banner.javaeye.com/blog/99077</guid>
      </item>
  </channel>
</rss>