星期二, 一月 16, 2007

对于软件开发哲学的经验谈

做了这么久的开发,看到这个开发哲学,真是很贴切,软件开发的几大要点概括的淋漓尽致.

"确认你已经理解问题" 即需求问题,宏观上为软件的商业目的,微观上为每个功能需求的理解与分析,根据我的开发经验,就是要获取需求并且正确的理解它,我们往往对需求的问题不能够达到全面的理解,大多数情况都是处在一知半解的状态,各种情况导致获取的需求并非真实有效,分析其原因主要有3点:

1.客户对需求也不能完全解释的清楚
2.业务逻辑确实很复杂,相关联系繁多,造成理解上会达到理解问题的限制(5~7个关联复杂性,超过就不易理解)
3.需求的获取,设计到实现的各个阶段出现了偏差,更严重的情况是无法追溯到原来提出的真实需求而造成的缺陷.
4.需求在软件开发过程中,客户实际情况已经变更,或是客户改变了原先的想法而造成的需求变更
解决这些矛盾的方法很多,主要在于需求开发的经验,设计开发的经验,团队的合做,有效全面及规范的需求记录与追踪,以及各阶段追溯到需求的评审等来保证我们对需求的理解.


"由小型的有才干的团队来实现解决方案" 即团队合做与开发技能的问题.
高品质的团队一直是成功的软件开发的保证.否则软件开发很容易陷入绝境.
至于团队,以我的经验主要提出几点看法.

1.保证的团队稳定性
团队的核心成员要稳定,例如一个团队一定要确认哪几个是团队的核心,在软件的开发周期内一定要保证这些核心人员的稳定性,最好是不只是在一个项目周期,而是在组织面上也保证此团队核心成员的稳定性,这样才能够使得团队不断进步,积累经验,更重要的是合作的有效性,要知道一个人员更新频繁,或是刚刚组建的团队效率与合作性都是非常差的,需要很长时间的磨合与锻炼,但往往会导致软件开发的失败,因为在你为建立新团队的有效合作与开发过程的同时,软件的开发已经错误百出,种下了失败的种子,后面再想补救的代价就太高了.所以建立稳定的开发团队是软件开发的有效保证.

2.合理有效的团队发展规划.

1).明确有效的团队目标.为团队设立一个明确有效的目标,让团队中的核心成员都能够一致的认同这个目标,并且将此目标与其自身的发展相互联系,给每个人前进的动力与希望.这也是团队稳定性的重要保证,没有一个一致目标和奋斗方向的团队,很难有凝聚力,也更不会成为一个高品质的团队.

2).团队成员合理的互补性.
我们要设定团队成员各方面能力的基准线,每个成员不能低于这基准,否则会影响团队的整体实力.
在此基准线上我们并不要求每个成员在各方面都优秀(这也是很难做到的),但一定会要求每个成员在某一个方面能力高于基准线,这样才能根据特殊能力来建立互补性的团队.
例如:开发团队管理者要达到分析,设计,编码,等工作能力的一个基准线, 在此之上他的管理能力一定是高于基准线之上,具备优秀管理能力的人.而不是让一个各方面平庸或是其他能力(如他的编码能力优秀)的人来充当管理者的角色. 这样让在各个方面的工作,都能够找到在此方面优秀的人来执行,以达到建立互补性的团队的目的.
同时团队成员在此基础上又能够在各方面得到向他人学习提高的机会,以提高团队能力的基准线,达到团队发展的目的.

3).其他辅助性的策略与制度也不容忽视.
首先,团队内部要有一个公平,公正的氛围,每个人的能力,业绩与其获得的回报和在团队中的位置要相互一致,形成一个良好的团队发展环境.
第二,在保证核心成员稳定的同时,合理的团队流动性也是必要的,因为不能保证团队每个成员都能够达到团队的发展要求,所以将不适合的人员替换出去,再吸收新的成员,发展优秀的成员成为核心人员,以发展壮大团队,并形成良好的团队新陈代谢的模式.
第三,获得管理层对此团队的认同,鼓励团队的变革,鼓励创新,愿意承担相应的风险,也是关系到团队是否能够发展的一个非常重要的因素,这也要求团队要不断的获得成功,创造业绩,及良好的沟通来获得管理层的支持.

"并且让你的客户告诉你如何改进它" 这里我的理解不仅仅是客户,而且也包括市场
开发好的软件,最重要的目的是达到客户的需要,以及市场的需要.让客户与市场来引导我们软件的开发方向是软件获得丰厚收益的重要保证,也是软件开发的重要目标.当然这也是建立在我们能够正确的理解客户的需求与市场的需求的基础之上的.

"这就是全部; 其他的都是注解." 这里我的理解是软件开发要以上面所提到的需求,团队,客户与市场为主要关注点,而对于其他辅助性的方面,如过程改进,检查与监测等都是实现主要关注点的有效工具与过程,要分清主次,不要一味的盯在这些辅助性的工作方面,而忽视了软件开发成功的真正关键. 根据经验,如果软件开发时在还未理解需求,又没有良好的开发团队,客户与市场也模糊不清时,而相反却去注重文件表单规范,过程改进,ISO或CMMI等等相关的事务,这样试问就算这些做的再好,我们的软件开发能够成功吗.要分的清主次,合理应用其他辅助性事务,才是正道.

综上所述,我对软件开发的经验之总结, 软件开发需要以客户与市场为导向理解软件真正的需求,利用高品质优秀的团队进行开发,以达到获取最大商业利益的目的.

星期一, 十二月 18, 2006

作为管理者要具备的素质

1 宽容、开阔的心态,一个管理者如不具备宽容的心态,公司首先失败一半,公司的形成是由多种不同性格类型的人所组成的,而各类人又是优缺点鲜明的,有了这样的优点就会具备相应的缺点,作为管理者用这个人的优点就要包容这个人的缺点,这是事物的自然规律,中国文化向以平衡为为内容,作为一个管理者切不可有”家天下“的思想,不可有我的世界我作主这种心态2 敏感的神经,公司自从创立的第一天起就面临倒闭的危险,如果你对危险没有一个敏锐的感觉,如果你对你所创立的团队的心理状态没有足够的把握,如果不去观察和了解你的客户不知道他们心理所想,如果不用战战兢兢的心态来面对市场,,,,,呵,准备破产吧3 要有当孙子的准备,呵,老板多牛啊,其实,你就是孙子!!对于你的员工、对于市场、对于客户、甚至你的家人、你都是孙子,,言尽于此,自己体会4 至少是个合格的业务员,我们所讲的是公司的创立,那么前提是小公司,那么在做项目阶段,你至少是个合格的业务员5 理解公平原则,而且在你的公司管理规程中要彻底推行公平原则,否则什么现代管理体制、什么长远发展都是免谈,不公平,就会有不满意,就会有亲疏远近,就会有弊端积累,就会有马屁精的存在,不要说员工素质低,因为首先是你创造了这个环境!6 要会用人,要知道你的团队里的成员的长项和短处,如果一个团队里全是所谓的高手,大概离散伙也不远了,善于用人绝对会解决人员技术水平偏低的问题

总经理应具备的基本素质

总经理应具备的基本素质:具有高度的领导能力、决断力、预见力、说服力、创造力、洞察力、充足健康的体力和坚韧顽强的毅力,还有充分的自信和可嘉的勇气,更有的是与人之间的亲和力和吸引力:1、要有本质的深厚的涵养和情操。2、要有启发部属创意的才能,并能协调和指导部属的工作,从而产生共鸣。3、要有三分侠气,患难之时见真知,三分侠气走天下。4、要有实力和坦诚获得老板的信任。A、适时表现整体策划的想法。B、全面考虑老板的立场和企业整体的利益。 C、少说多做,不好功,多做实事。D、反对的意见要有建议性,不要说背后的批评,做到光明磊落而谦逊。E、有器量,即:才能,能力,技术,洞察力,决断力,毅力和爱心。F、有条理而合理的计划能力,使事情定成得完整的合理手法。G、有果断的决断力和高度的责任感。H、有成熟的心态和成熟的情绪管理。I、有处理各种员工不安的能力,善解人意,忧心忧民。J、有充分让人利用和合作的本钱,但须以整体利益为重。以公司利益为先,绝不以个人谋利为手段。K、有充分认识自我,改变自我,更新自我的想法和行动。 愿牺牲眼前利益以换取长远的目标和成功; 不怕挫折,在受挫时依然积极工作; 在重重障碍下依然不屈不挠; 有能力做到客观地检查自己的观点;有强烈的进取心; 不愿受传统习惯和环境的束缚,不满足于现状; 兴趣、爱好广泛; 勇于认错,并能向有经验的人学习; 总觉得自己还有未用完的潜力;严于律己,宽以待人; 不怕暴露自己无知的问题; 喜欢冒险; 即使遇到一连串的失败,依然坚信自己的能力; 诚实、正直,因而不惜与他人对立;不推诿责任,不连累他人; 以自己为竞争对象,对已有知识和才能永不满足; 对权威不害怕,不迷信; 善于用他人 的观点来全面观察事物;因内在动力而不知疲倦地工作,有远大抱负; 从创造中得到最大的快乐; 愿意倾听他人的见解,但自己很善于判断; 尊重他人,与他人友好相处;工作特别多,时间总觉得不够用; 身体健康,具有旺盛的精力与活力。

星期四, 十二月 07, 2006

登百望山


哟,本事呀,你的胳膊还挺长,手别抖啊。。

我的博客开通了

终于找了一个博客网站,有了自己的博客空间。。
以后可以在这里写点心情了,好开心。。

星期三, 十一月 22, 2006

车东 Che, Dong

车东 Che, Dong
这里是车东的一个个人主页,值得学习的东西很多