原帖由 陈珺 于 2010-5-29 09:34 发表
我只是说明,软件工程解决不了很多实际问题,软件工程使用的前提是团队成员的能力达到要求,可是目前前提不满足,倒是心理学和人力资源管理可以解决团队成员的能力达不到要求,但你又说软件工程在实践中比心理学和 ...
你说的话是正确的,你把你说的话里的软件工程换成心理学、人力资源管理等等都是成立的,你的问题在于你没有意识到这一点。软件工程不是用来解决所有问题的,但是软件工程的作用却比着“借鉴”要有用得多。
原帖由 陈珺 于 2010-5-29 09:42 发表
业余开发失败核心原因探究
在三国开发思路(续)已经对这问题有所提及,业余开发失败的原因是能力满足不了所做游戏的要求,也就是说能力是瓶颈.不解决这个问题而采用其它的办法都是治标不治本.用系统科学来看,人之所以能开发是因为知识可以作用于行为,而行为可以作用于物理设备.开发的失败具体原因就在这两个方面,知识可以作用于行为,行为不可以作用于物理设备属于有能力没时间,而知识不可以作用于行为,行为可以作用于物理设备,属于有时间没能力.这是个人开发的情形,对于团队开发,一个成员意图不能被另一个成员理解,即沟通困难,是核心问题.而团队开发的其它问题可以通过有效管理解决.
解决方案是:
对有能力没时间,让其承担交流的角色
对有时间没能力,对其进行培养(培养包括主动接受和被动接受)
对沟通困难,应该培养成员接受统一语言并且尽量通俗易懂,哲学由于其无二义性(前提是学会)最适合作为统一语言并且有实用价值,思维科学由于其面向人脑, 最适合为人所理解.
带来的问题是培养问题,包括:
培养需要花费很多时间,可以通过加强沟通能力解决.
培养需要培养者,可以通过选用有能力的作为培养者并且强化其能力
接下来的的问题是被培养者不愿意被培养,原因有
精力不足.这还不算最大的问题
缺乏系统观念,急功近利.这是直接原因.
观念固执,缺乏包容的心态.这是才是根本原因,很多人判断一事物是否有道理是通过说话的人的情况判断,而不是通过内容本身,比如以是否做出游戏判断,这种做法导致很多好的观念无法接受.而缺乏包容导致不能从别人处去长补短,限制了自己的提高.因为观念固执,缺乏包容的心态,才导致了缺乏系统观念,急功近利 (因为看问题局部化是通病),根据自身以往的经验解决问题.(但过了三五年,往往又会明白一点,缺没精力了)
懒于思考,这个是性格和习惯问题,要改变非常困难.
经过分析,可以发现观念固执,缺乏包容的心态这个问题非常难解决,因为改变一个人非常困难,这正是业余开发失败的核心原因.那么是什么因素导致呢?
第一,社会风气和环境的影响,现在社会由于压力大,迫使很多人急功近利,而好的观念的接受需要一个过程,因此缺乏基础.
第二,固有观念的影响,很多人长期所受教育学到的是一些局部的分析问题方法,已经形成思维定式,而且由于现在不可靠的东西太多,养成通过说话的人的情况来判断的习惯.
第三,西化的影响.很多人学技术时受到技术背后思想的潜移默化的影响,比如看见的才是对的,而丢掉中国优秀文化,比如系统看问题.很多人工程思想浓厚而忽视思维的作用,片面强调实践,而导致进步缓慢.很多人忽略了学思并重的道理,以重复造车轮为由忽略思考,片面强调学习,结果导致与实践脱节(因为没有和实践联系起来思考),学习能力受制约(因为没有想清问题本质).其实研究自己的思路,正是为了具备能正确运用先人的理论(因为能评价是非,而且不容易陷入教条主义,真正面对实际问题)
我可以替你问个软件工程更没法解决的问题:团队中有个成员不会做饭,快要饿死了,该如何解决?
跟你开个玩笑。
需要强调的一件事情就是每种学科都有每种学科要解决的问题,你这个问题并不是仅靠软件工程就能解决的,软件工程只能解决其中一部分问题。另外你要清楚我反对的是你软件工程“讲的太浅”、“借鉴”软件工程的思想,而不是反对你使用其它学科。
你讲的解决方案里面虚的东西不少,思路是好的,只是实践起来别人未必按照你的想法去做,就算按照你的想法去做,他需要学习的东西也过多(哲学、转变性格的要求),这样会在解决问题的时候面对更多的问题。
关于业余开发团队,我没有太多经验,只简单说几点跟你提到的问题有关的解决方法,具体的也不展开写了,今天没多少时间,以后会专门有一篇写业余开发团队开发模式的。
1. 控制合理节奏,适应团队的时间安排
2. 通过代码复审进行指导
3. 需求细分,保持持续的成就感
4. 用问题管理系统记录关键信息
5. 有能力时间少的让其负责不紧急的高难度算法
6. 强力领导对关键成员保持联系
7. 编码规范
8. 架构、协议、算法要有文档
至于你所说的培训,我认为我不会明确开展这么一个活动。