网上从来都不缺少“做技术还是做管理”的争论,人们从各种角度来讨论这个问题。在我看来,二者并没有本质的区别。技术和管理,根本就是一回事。
网上有很多管理“做技术还是做管理”的争论。这里不讨论其外在的影响(比如“钱途”,机会,或者面子),而是试图说明,在本质上,技术和管理是一码事。能搞好技术就能做好管理。注意,这里说的是开发技术,不是项目管理。
按照现代管理的理论,管理要做的就是:计划,组织,协调和控制。对于一个给定的目标,先“计划”怎么样实现这个目标;然后“组织”一批人按照计划去做这个事情;在做事情的过程中,会有一些冲突和事先没有预料到的情况,这是需要进行“协调”;同样,要“控制”事物的发展方向是向着既定目标前进的。
同样的,一个开发人员的工作是:拿到需求(目标),对需求进行分析,由哪些需求点组成,怎么样满足需求(计划);然后设计一堆“类”和“对象”,通过这些类和对象实行需求(组织);在运行时,对象可能会发生一些意外情况,要通过“动态模型”,“异常处理”等手段解决(协调);为了保证代码真的能够满足需求,还要进行测试,并根据测试结果对代码进行修改(控制)。
还有更多的,细节上的相同之处,这里就不一一分析了。可见,技术和管理其实是一回事。其实,技术比管理更难一些,因为:
对技术人员来说,目标是不断变化的(需求变更);
对技术人员来说,协调工作要在系统运行前就充分考虑,而系统一旦运行,就要能够自动处理意外情况。
而管理比技术难的地方在于:
类和对象的行为是可以预期的,而人的行为是不可预期的。
本人的最新博客迁移到http://thinkinside.tk,使用GitHub Pages建立。我会陆续将所写的文章迁移过去,并进行补充和修正,
欢迎过来围观。