茶色杯子 的个人资料茶色杯子照片日志列表更多 ![]() | 帮助 |
|
|
3月19日 软件项目经理所需具备的素质最近,案头上有关软件开发项目管理之类的书越来越多了,快有点消化不良。
有时候,喜欢发呆,发呆多数时候是在总结过去的经验,适当的时候还会去考究下现在遇到的问题,对号入座,自然是最好的学习方法了。
软件项目经理所需具备的素质?把手头上感觉基本比较好的有关软件项目经理的书做了个归纳总结。
对照了下自己,看看是不是一个合格的软件开发项目经理。
一、具有正直的人格和品德
(觉得这应该是做人的基本准则吧,自我感觉还不错,这条绝对合格。不过居然maomao说我是萝卜,这个是大大大误会,我只是喜欢美女而已嘛。)
二、具有基本的聪明才智
1)勇于思考,不畏难题,能够进行严格的逻辑思维和推理;
2)不畏惧权威,敢于提出质疑;
3)要能够思路开阔的从各方面衡量得失并有多手准备。
(还好,只需要基本的,最起码自己思路敏捷,范围开阔,逻辑思考还行,做《工程硕士语文与逻辑》的题,基本上没有错的。)
三、具有对技术的追求和热爱
1)对最新技术的学习和了解;
2)对新技术的运用的追求;
3)成为你所开发的产品的技术专家。
(这样的passion还是有的,读书看报上网浏览都离不开技术方面的灌输,不过还是做不了专家。)
四、具有对用户或客户的理解和同情
1)对客户的应用操作和运行环境切实的了解和熟悉;
2)追求软件使用的可用性和效率;
3)能向客户做产品功能设计的回馈调查;
4)全面熟悉和掌握自己所开发的软件。
(第三点好像就从来没有怎么考虑过,欠缺啊。)
五、熟悉和掌握软件开发的本领
1)懂得软件开发的技术;
2)了解最新的软件技术的发展趋势。
(唉,c#才开始学习完......)
六、具有软件使用界面设计的本领和技巧
1)理解并懂得正确运用使用界面的标准规范;
2)能够将软件的使用功能要求转化为合理的使用界面的设计;
3)能够很有效的绘制使用界面的设计原型或样品;
4)善于从对用户的调查中总结出可用性设计的改进。
(还行嘛,大家都说我看美女还是蛮准的,毕竟有人曾经如此这般这般如此的教育过。PS:最近好像越来越失水准了......)
七、具备项目管理的知识和本领
1)懂得项目管理的理论;
2)敏锐追踪项目进度的本领;
3)具备使用项目管理工具的本领。
(学习理论知识是我们国人的强项,但第二条还是得努力.......)
八、具备良好的沟通和交流能力
1)写作能力;
2)人际关系沟通、交往和演说的能力;
3)懂得使用各种文件的工具软件;
4)建立综合电子管理设施的能力。
(自小作文分数就蛮高的,哈哈。就是脾气有点严厉,说话有点快,这个得改改。)
九、能妥善协调团队之间得合作
1)具备在没有既定权力得环境中工作的能力;
2)具备领导者的风格和能力。
(还有很长的路要走.......)
十、具备基本的市场知识和眼光
(知己知彼,才能百战不殆嘛。好像自己有点过多的关注于技术了。)
霍霍,满满有十大条啊......
看来自己只能勉强合格了。
3月15日 质量日谈软件质量1. 你们的项目组使用源代码管理工具了么? 应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是CVS。 2. 你们的项目组使用缺陷管理系统了么? 应该用。ClearQuest太复杂,我的推荐是BugZilla。 3. 你们的测试组还在用Word写测试用例么? 不要用Word写测试用例(Test Case)。使用jbuilder运行junit测试框架。 4. 你们的项目组有没有建立一个门户网站? 要有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。 5. 你们每个人都知道出了问题应该找谁么? 应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人。 6. 你遇到过有人说“我以为…”么? 要消灭“我以为”。Never assume anything。 7. 你们的项目组中所有的人都坐在一起么? 需要。反对Virtual Team,能坐在一起就最好坐在一起,好处多得不得了。 8. 你们的进度表是否反映最新开发进展情况? 应该反映。MS的project上的进度条。 9. 你们的工作量是先由每个人自己估算的么? 应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,比如政治任务工期固定等。 10. 你们的开发人员从项目一开始就加班么? 不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。 11. 你们的项目计划中Buffer Time是加在每个小任务后面的么? 不要。Buffer Time加在每个小任务后面,很容易轻易的就被消耗掉。Buffer Time要整段的加在一个Milestone或者checkpoint前面。 12. 值得再多花一些时间,从95%做到100%好值得,非常值得。 尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。 13. 登记新缺陷时,是否写清了重现步骤? 要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写Repro Steps也需要。 所以规定了bugzilla上bug书写的格式。 14. 你们对缺陷的轻重缓急有事先的约定么? 必须有定义。bugzilla可以帮助我们达到这个目的。 15. 所有的缺陷都是由登记的人最后关闭的么? Bug应该由BugAdmin关闭。现在由mulder负责。Dev不能私自关闭Bug。 16. 你们的程序员厌恶修改老的代码么? 厌恶是正常的。解决方法是组织Code Review,单独留出时间来。XP也是一个方法。 17. 你们项目组有自己的Logo么? 要有自己的Logo。至少应该有自己的Codename,CVS上的model名。 18. 有人长期不Check-In代码么? 不可以。对大部分项目来说,最多两三天就应该Check-In。 19. 在Check-In代码时都填写注释了么? 要写的,至少一两句话,比如“解决了Bug No.225”。如果往高处拔,这也算做“配置审计”的一部分。 20. 你们能把所有源码一下子编译成安装文件吗? 要的,参考realserver上的zhanhua项目。这是每日编译(Daily Build)的基础。而且必须要能够做成自动的。有三样东西是软件项目/产品开发必备的:1. bug management; 2. source control; 3. daily build。 21. 设计越简单越好越简单越好。 设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope management。 22. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。我们用高级语言来开发就站在了一个很高的起点。 23. 项目组每个人都写Weekly Report,也就是我们的工作周报。一则为了沟通,二则鞭策自己。
25. 你们项目组是否至少每周全体开会一次? 要。一定要开会。程序员讨厌开会。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。 会中有人负责主持和记录。 26. 其他部门知道你们项目组在干什么么? 要发一些Newsflash给整个大组织。Show your team’s value。否则,当你坐在电梯里面,其他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人全然不知,那种感觉不太好。 27. 通过MSN进行及时沟通,通过Email进行正式沟。 28. 每个人都知道哪里可以找到全部的文档么? 应该每个人都知道。通常情况下项目相关文档都放在${cvs}{项目}doc文件夹下。 29. 你做决定、做变化时,告诉大家原因了么? 要告诉大家原因。Empower team member的手段之一是提供足够的information,这是MSF一开篇的几个原则之一。的确如此,tell me why是人之常情,tell me why了才能有understanding。中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力,不在于是不是能access information/data,而在于是不是掌握资源。 30. Stay agile and expect change 要这样。 需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒,而是expect change。 31. 你们有没有专职的软件测试人员? 要有专职测试。如果人手不够,可以peer test,交换了测试。千万别自己测试自己的。 32. 你们的程序员能看到测试用例么? 要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的:提高质量。只对需要的业务写Test Case,不要Test Case满天飞,是不是都加一个。还是那句话,软件工程是非常实践、非常工程、非常灵活的一套方法,某些方法在某些情况下是好方法,过尤不及。 33. 你们是否随便抓一些人来做易用性测试? 要这么做。自己看自己写的程序界面,怎么看都是顺眼的。这叫做审美疲劳??臭的看久了也就不臭了,不方便的永久了也就习惯了。 34. 你对自动测试的期望正确么? 别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,忘掉WinRunner和LoadRunner吧。 35. 你们的性能测试是等所有功能都开发完才做的么? 不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,早死早升天。 36. 你注意到测试中的杀虫剂效应了么? 虫子有抗药性,Bug也有。发现的新Bug越来越少是正常的。这时候,最好大家交换一下测试的area,或者用用看其他工具和手法,就又会发现一些新bug了。 37. 你们项目组中有人能说出产品的当前整体质量情况么? 要有。当老板问起这个产品目前质量如何,Test Lead/Manager应该负责回答。 38. 你们的程序员是写完代码就扔过墙的么? 大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人员,做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法,程序太烂的话,测试有权踢回去。 39. 你们的程序中所有的函数都有输入检查么? 不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,有些内部函数之间的参数传递就不必检查输入了,省点功夫。同样的道理,未必要给所有的函数都写注释。写一部分主要的就够了。 40. 产品有统一的错误处理机制和报错界面么? 要有。最好能有统一的error message,也就是tomcat中声明的errorpage。 41. 需要有统一的代码书写规范。 42. 你们的每个人都了解项目的商业意义么? 要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者,或者时不时的告诉team member,这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个崇高的目标的。 43. 产品各部分的界面和操作习惯一致么? 要这样。要让用户觉得整个程序好像是一个人写出来的那样。 44. 尽可能缩短产品的启动时间要这样。 软件启动时间(Start-Up time)是客户对性能好坏的第一印象。所以发布版本要带有jsp的预编译功能。 45. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误:太看重性能、稳定性、存储效率,但忽视了外在感受。而高层经理、客户正相反。 46. 你们根据详细产品功能说明书做开发么? 要这样。所以我们有了RED(需求文档)和SDD(设计文档)。 47. 测试之前每个人都仔细审阅功能设计么? 要做。所以除了测试计划中附带项目的简单功能说明文档,相当于简化版的用户手册。 48. 所有人都始终想着The Whole Image么?要这样。项目里面每个人虽然都只是在制造一片叶子,但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领,反对过分的把软件制造看成流水线、车间。 49. Dev工作的划分是单纯纵向或横向的么? 我们现在是按功能模块划分的。 50. 你在招人面试时让他写一段程序么? 要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等,既不偏向过于考算法,也不偏向过于考特定的API。 51. 你们有没有技术交流讲座? 要的。周会时进行内部的Tech Talk或者Chalk Talk,让组员之间分享技术心得。分享是一种快乐。这方面huson就做得很好。 52. 你们的程序员都能专注于一件事情么? 要让程序员专注一件事。例如说,一个部门有两个项目和10个人,一种方法是让10个人同时参加两个项目,每个项目上每个人都花50%时间;另一种方法是5个人去项目A,5个人去项目B,每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂。 53. 你们的程序员会夸大完成某项工作所需要的时间么? 会的,这是常见的,尤其会在项目后期夸大做某个change所需要的时间,以次来抵制change。解决的方法是坐下来慢慢磨,磨掉程序员的逆反心理,一起分析,并把估算时间的颗粒度变小。
ps:转,不是我写的。只是觉得不错,而且很实用。 原与同行共勉~~~ 3月13日 Apache+SVN+ViewCVS+Jira+Confluence“整合”,这就是最近几天一直挂在心头的两个字眼。
“工欲善其事,必先利其器”,老祖宗和我从小到大的老师都一直这样教育着我们。
在学习了几天SVN之后,才发现这个东西比我想像的的确好了很多。
接着学习整合Apache+SVN,才发现原来svnService的运行方式有两种,其中一种就是Apache的DEV方式。
接下来,安装好了Jira,测试、破解都ok后,又下载安装破解测试了Confluence(一个Wiki的东东)。接着配置Jira和Confluence的统一用户方式。
但在使用中很不爽的要切换80和8080端口,又开始想法整合Apache和tomcat,死活搞不定JK2的整合方式,就采用了上面提到的Proxy方式,各管各吧!
至此,Apache+SVN+Jira+Confluence整合完毕,顺着网络资料,发现ViewCVS现在也支持SVN了,这真是好事情。
ViewCVS的运行环境是Python,最早下载的是Python2.4,搞了半天死活和apache整合不起来,最后才在SVN网站上发现原来apache2跟Python2.4的编译环境不一样无法协同工作。
继续下载Python-2.3.5.exe,mod_python-3.2.8.win32-py2.3.exe,svn-win32-1.3.0_py...
一通安装,继续下载安装viewvc-1.0-dev。
配置很关键,查阅了很多资料(下午CK的DNS好像有问题,耽误了不少时间)。
首先在本地standalone方式跑起来了整合ViewCVS和SVN,一切正常。
接着配置httpd.conf和viewcvs.conf。
却在网上提供的资料中的那句“PythonHandler apache”害了半天,死活出错,后来查资料才发现配置改了。
httpd.conf配置:
LoadModule python_module modules/mod_python.so
.....
ScriptAlias /viewcvs "C:/Program Files/viewvc-1.0-dev/bin/mod_python/viewcvs.py"
<location /viewcvs> AddHandler python-program .py PythonPath "[r'C:/Program Files/viewvc-1.0-dev/lib']+sys.path" #SetHandler mod_python PythonHandler mod_python.testhandler PythonDebug On AddDefaultCharset UTF-8 </location> ScriptAlias /view "C:/Program Files/viewvc-1.0-dev/bin/mod_python/viewcvs.py"
<Directory "C:/Program Files/viewvc-1.0-dev/bin/mod_python/"> Options Indexes MultiViews AllowOverride Options FileInfo Order allow,deny Allow from all </Directory> viewcvs.conf 配置:
svn_roots = common: D:\SVN\common,projects: D:\SVN\projects
default_root = common
languages = en-gb
通过http://localhost/viewcvs 查看系统配置信息,要是正确的话,General information就肯定能出来。
通过http://localhost/view 可以看到配置中的所有仓库文件信息,如下:
点击可以访问到所有项目库信息了。 Apache+SVN+ViewCVS+Jira+Confluence自此整合成功! 庆祝下~~~~~~~ 3月12日 轻松5步整合Tomcat5.5和Apache2这是目前为止我认为是最容易整合Tomcat和Apache最最简单的方法,简单得让人惊讶。
在这之前我先介绍下我以前如何整合tomcat和apache的:
1)下载好apache、tomcat程序,还需要使劲找才能找到的mod_jk2.so(据说这个玩意apache已经不在发展了);
2)配置好tomcat,缺省是8080端口,ok,这个很快就跑起来了;
3)apache也就是一路Next,很easy的安装(windows情况下,linux可以安装系统缺省的apache);
4)拷贝mod_jk2.so到apache的module目录下,修改httpd.conf文件,增加LoadModule xxx xxx.so;
5)配置一个名字叫做workers.properties的东西到apache的conf目录下。
内容一般如下:
[shm]
file=${serverRoot}/logs/shm.file size=1048576 #The socket channel [channel.socket:localhost:8009] port=8009 host=127.0.0.1 #define the worker [ajp13:localhost:8009] channel=channel.socket:localhost:8009 #uri mapping [uri:/*.jsp] [uri:/*.do] [uri:/*.gv] worker=ajp13:localhost:8009 6)还要修改httpd.conf文件,配置VirtualHost,指定好tomcat的工作目录,访问权限,映射端口等等;
7)修改tomcat的server.xml配置,把这个东东跟apache的对应起来(同时要注意端口问题)。
8)启动Apache,注意了,上面的东西一步都不能错,否则,apache就翘翘了;
9)启动tomcat,注意了,这个配置也不能出错,要不然不是tomcat挂了,就是整合失败!
很头疼,也很麻烦,更搞笑的是网络上提供的配置方法五花八门,但大体上还是上面这些步骤,但差异还是有一些,你该听谁的呢?!难道挨个测试下?!
在老夫仔细的阅读了apache的文档之后,才发现原来生活可以这么简单(windows/linux都适合):
1)安装好apache和tomcat,或者关闭你现在如果还在运行的tomcat和apache;
2)增加如下几行到apache/conf/httpd.conf文件中:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so ProxyPass /jira/ http://localhost:8080/jira/ ProxyPassReverse /jira/ http://localhost:8080/jira/ ProxyPass /confluence/ http://localhost:8080/confluence/ ProxyPassReverse /confluence/ http://localhost:8080/confluence/ ps: 1)上面有关的proxy配置信息要和tomcat的应用配置对照起来。
2)如果你还在土土的用着apache1.3,需要配置改为下面的:
LoadModule proxy_module modules/libproxy.so 3)配置tomcat/conf/server.xml文件,简单的在Connector中对照增加下面红色部分,proxyName可以该成你对应的域名:
<Connector port="8080" proxyPort="80" proxyName="localhost" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
4)启动Tomcat,然后启动Apache;
5)测试下看看吧,我是ok了,看你的了。
最后还要说明下:
这是最简单的整合这两服务器的方法,不过tomcat的静态页面还是由tomcat去解析的!现在tomcat的性能也还不错了,在并发量不是很大的情况下还是够用啦。
如果你非得要Apache去解析静态页面,那就按照第一个方法慢慢玩自己吧。
3月4日 {BA126AD1-2166-11D1-B1D0-00805FC1270E}每次重启系统(windows 2003 sp1)的时候,都报一个错误,说系统有错误,要我看系统日志。
这的确非常烦人,非常,我无法忍受。
查看系统日志,错误如下: 应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{BA126AD1-2166-11D1-B1D0-00805FC1270E} )的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
翻遍了google和baidu。
最后还是翻到了。
Event ID 10016 (DCOM) on Windows 2003 Server Service Pack 1 (SP 1)
After installing Service Pack 1 on a Windows 2003 Server I recieved the following error: 安装完2003 sp1后,服务会出现下面的错误:
Event ID : 100016
Source : DCOM The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{BA126AD1-2166-11D1-B1D0-00805FC1270E}
to the user NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20). This security permission can be modified using the Component Services administrative tool.
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{BA126AD1-2166-11D1-B1D0-00805FC1270E} )的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。 The COM Server application with CLSID has to be tracked down in the
registry, in this case the following reg key: HKEY_CLASSES_ROOT\CLSID\{BA126AD1-2166-11D1-B1D0-00805FC1270E}
在这种情况下可以从注册表中找键值HKEY_CLASSES_ROOT\CLSID\{BA126AD1-2166-11D1-B1D0-00805FC1270E}。
In this key you can acquire the AppID, in this case the following AppID:
{27AF75ED-20D9-11D1-B1CE-00805FC1270E}
这样就可以找到这个键值对应到应用程序ID是,{27AF75ED-20D9-11D1-B1CE-00805FC1270E}。
The AppID has to be tracked down in the registry, in this case the following
reg key: HKEY_CLASSES_ROOT\AppID\{27AF75ED-20D9-11D1-B1CE-00805FC1270E}
In this key you can acquire the LocalService name, in the case the following
name: Netman
通过这个AppID可以跟踪到这个程序名称是Netman。
The LocalService has to be tracked down in the Component Services MMC; in
this case Netman is listed within the DCOM Config section. 通过MMC控制台就可以去配置这个DCOM了。
Browse to the Security Tab, edit the Launch and Activation Permissions, and
make necessary changes. In this case, NETWORK SERVICE needed to be added with Remote Launch and Remote Activation permissions. 开始→控制面板→管理工具→组件服务
打开 组件服务 树目录 →计算机→我的电脑→DCOM配置 右边的面板里 找到 netman 右键→属性→安全→ 启动和激活权限 →自定义→编辑 添加 network service 用户,把本地启动和本地激活勾上就可以了。 再次得意一下,呵呵,问题解决了,重新启动就再也不会有这个烦人到报错对话框了。
据说安装SP1的Windows2003都会有这个问题。
关于windows 2003的Directx问题世界杯只剩下100天就要到来了。
于是我把《FIFA足球经理2006》装好了,因为工作的问题我又得装windows 2003操作系统,集成sp1,这样我就可以使用无线和防火墙等等了,其中也包括了DirectX9c。
问题是我每次想运行《FIFA足球经理2006》的时候都提示我需要安装DirectX9,可我明明参看了dxdiag,检测都没有问题,而且把DirectX的硬件加速都启动了,甚至在我想重新安装DirectX9c的时候,一闪就过表示我已经安装成功了。所以怀疑问题出现在版本检测上。
可恶的是windows本身不提供卸载功能,于是乎从网上下载了Directx随意卸3.8,居然需要注册,居然也找不到破解版,(找了个2.2的破解,运行下就闪了,嘛都没有,估计是不支持win2003)。
没办法,从国外的网站下了几个支持DirectX9的卸载工具,也很可恶,把我系统中DirectX搞乱不说(dxdiag出现N多报错信息),而且也还是无法重新运行DirectX9c安装。
《FIFA足球经理2006》...啊。
这个问题困扰我2天了。
又回到先前的问题,一闪而过的DirectX9c安装。有个想法也在我脑中一闪而过。
问题就是出现在版本检测上!
正打算以后就专心工作,放弃所有DirectX游戏的时候,就想了如下这个死马当活马医的办法!
(有时候我都很佩服我自己!)
下载了个DirectX9b的安装包,把其中的“dsetup32.dll”和“DSETUP.dll”覆盖到DirectX9c的同名文件。
欺骗了下DirectX9c的安装程序。
启动安装....检测正常....安装正常....提示我重启!
感觉有戏了。
重启完毕,运行《FIFA足球经理2006》。
噢,麦糕嘚~~~~熟悉的音乐开始啦!!!
哈哈哈哈哈..............
此文贡献给王利军同学,据说他在Windows2003里面玩不了《帝国时代2》。
|
|
|