第一篇状态模式,其实比本文更先发表。但是我终觉得要写点什么,来开始我的敏捷的旅程。知道看了bob大叔这本书
以后,我才知道敏捷到底是怎么回事,纯属个人东拉西扯,所以就叫闲话敏捷。
《敏捷软件开发》问世与2003年,距今已有13个年头了,能够历久长盛不衰,必然有其光辉的一面。
以下都是个人的经验结合《敏捷》讲解和分享一些东西。
敏捷软件开发 乍一看有点摸不着头脑,不知道是什么东西。
软件开发从计算机问世直接快60个年头了。软件也从非常简单的机器语言,到现在的面向对象。
在这个过程中,无数的开发者,遇到了各式各样的问题,而中间绝大多数问题现在的开发者还在重复。
软件开发是一件非常复杂的脑力活动,尤其是大型复杂系统,方方面面的问题将非常之多。而对于软件设计而言,
更是建筑在软件开发上一层的框架。
无数的先贤,在众多软件开发“思想”中提炼了23种设计模式,这就是闻名于世的“设计模式”。
敏捷这个东西也是在2001年的时候,软件开发团队自发组织了"agilealliance"
敏捷软件开发是对设计模式的另一种表述。
Bob大叔是业界有名的大师。他的著作在软件业界是公认的经典。
《代码整洁之道》
《程序员的职业素养》
《敏捷软件开发》
《UML for Java For Promgram》
《Extreme Programming in Practice》
这里有一些关于程序员个人修养的书籍,可以选取部分作为阅读过程。
http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/
当然程序开发是一门艺术,而非仅仅是民工。
9年以前当我有幸成为一名软件开发者的时候,我不停的追随的技术的脚步,涉猎颇广,但是杂而不精。
一开始做VC++,后来做纯C的rom开发,大概2年后开始C++的开发,一直从事手机rom方法。
大概从2012年开发,转向android开发,期间应该是C++和java一起使用,差不多2年以后,渐渐发现流于语言表面的技术,属于
浅层次的开发。
从15年开发,转入互联网行业,开始研究各种设计模式。毕竟从android & ios兴起以后,java取代 C++的趋势更加明显,或者说语言的
屏障已经变得不重要了。C/C++ 对于软件性能的提升其实已经被硬件的快速升级所取代。
代码本生的性能(内存消耗,内存泄漏等)已经远远大于语言带来的问题。
当然也有安全方面的东西,或者反编译这种东西的存在,但是对于一个大型的软件项目,软件的设计和维护已经远远超越所谓的细枝末节的技术点。
软件的原则,模式,实践都很重要,但是更重要的是人。
所以,对于软件开发趋势而言,最重要的不是积累一些设计模式,一些现成的代码框架和解决方案。而是培养可以使用和创造这些方法的人。
可以在一起协作,开发大型项目的软件开发团队。如果只是把每个软件工程师看成是一堆码农堆砌的结果,那么这个团队的产品也只是一个个
堆砌的代码而已。
把团队人员按各自的特长和经验做有效划分,有构架师,teamleader等角色,还有充分有效的沟通,一个开发团队的负责人才能启动这个团队的活力。
而每个人也可以看到自己的成长方向。这是一条艰辛的路。形成这个团队可能只要一位老大+若干核心成员。但是这需要长期的合作,才能产生这样的领袖核心。
兵不在多而在于精,这个道理以前很难理解,最近开始有了深刻体会。一个几十人的团队如果是一群乌合之众的话,远远没有10来个人的精干团队的效率来的高。
人数的增加会扩大内部沟通的成本。如果老大还没有很强的个人魅力和领导能力,根本没有能力指挥一群只想分配既得利益的人。
李云龙去独立团形成战斗力的过程,可以说是一个团队建立的完美过程。
1.去的时候要了张大彪 ,搞了几百套棉服。要张大彪很简单,“用的顺手”是李云龙的原话。有了张大彪+李云龙+孔杰 就形成了一个新的领导团队。
棉服是靠着当厂长的机会搞得,有好处他李云龙当然要捞。一个老大就得给小弟们,谋福利。一句话,“跟着你,有肉吃”。老大为小弟谋福利,小弟们就会
给老大“冲锋陷阵”。相辅相成,这个团队的战斗力就上去了。
2.赵刚去的时候,李云龙套路很明确。这一亩三分地,我说了算,听我的,一起干,不听我的,直接搞走。
1)喝酒。跟我一条心,就喝酒,就是咱一伙的。
2)分权。军事我管,生活你说了算。就是确地主导地位,大权必须在手上。
3)要人。和尚是个人才,李云龙没跟赵刚客气,直接要了。
当然这3件事,赵刚都很到位,所以很快确立了“二把手”的位置。要知道张大彪跟着李云龙多少年了,还没有赵刚地位高,
1)赵刚是组织确认的政委
2)赵刚能和李云龙他们混到一起
3)赵刚文武双全。(抗大毕业+神枪手)楚云飞,这么心高气傲的人,第一次见赵刚,也很佩服。
所以解放以后,赵刚明显混的比李云龙要好。
其实李云龙一直谋划的无非就是:
对团队的绝对领导,这是一个精小团队必须保证的指挥权。
兄弟们跟着我干,有肉吃。但是,该出力的时候,你们必须出力。
这就是只要给我枪,给我炮,我能拿下任何一个山头。
一个优秀的软件开发经理,就应该具备这些素质。
软件开发,精细化的趋势越来越明显。精小,稳定,快速,是现在软件APP的特点。
没有强大执行力的团队,很难做到。
一个合格的软件开发从业人员,应该把软件开发当成一门艺术。
这是工业社会和20世纪以前从来都没有的工作:它需要非凡的智力 和高超的情商,才能创建出优秀的软件产品。
一个优秀的软件开发经理,当然打造这样的一个团队,我相信,在当今信息科技时代,必有他的一席之地。