作为Individual project的一部分,每位选修高级软件工程的同学都要选择一本与软件工程多少有点儿关系的书来读。记得当时接到邮件之后,大家从四面八方涌向课代表的座位,想挑一本适合自己的“教材”。等我匆匆赶来的时候,课代表的桌上早已一片狼藉,我隔着千山万水,随便抽了一本《走出软件作坊》,心里想着“作坊”,这书名字有意思!对于编程,咱本身就是野班子出来的,路子从来不正,除了知道点儿什么“冒泡”算法,其他专有名词基本不懂,为了早日走出民间作坊,实现从野路子到正规军进发的梦想,我毫不犹豫选择了这本书。

书的序言中提到“三五个人,十来条枪,如何走出软件作坊”,可见其团队的规模和我们team project的情况很相似。结合在软件工程小组中的一些实例,我谈谈自己的感想。

1.项目经理(PM)

文中提到,提拔项目经理,要看全面素质!其实对项目经理最早的认识是,此人不用写代码,但是在rosting小组,由于人手有限,PM还是承担了很重的编程任务的。书中提到了一名新项目经理在“新官上任”时遇到的各种问题,小到每日报告字体的大小和穿衣习惯,大到和客户交流和项目运营的方式,再到如何调节团队的气氛,都是对一名PM的重大考验。一名优秀的PM要做到眼光敏锐,思路清晰,目标明确。除此之外,普通程序员不能当项目经理,因为程序员的世界中没有模棱两可,没有区分不清的界限,只有分明的0与1,这不符合作为一名PM要遵循的“有原则性的灵活”这一准则。我以为所谓“有原则性的灵活”,就是有张有弛,松紧得当,这也是一名优秀的PM所需具备的最重要的素质。在涉及目标和方向的时候,PM要有能力驾驭和把控全局,同时要坚定立场,但在涉及具体执行方案的时候,要在把握大局的前提下,有放缩的空间。文中提到的“手里有5个球,你要玩好,不能掉下来,让别人看着还姿势漂亮,这才叫调度的好”让人印象深刻。

2.老系统维护

其实在本次的team project中不太涉及什么系统维护的问题,但由于是在IEG组原有架构的基础上,增强功能,所以同样涉及使用和修改大量原始代码的问题。文中提到:其实很多时候,觉得原有程序很烂,是由于与以前程序员排版不一致。其实在于读代码的过程中,有些变量命名方面的区别,并不影响理解代码,也不会造成理解歧义,只不过感觉“不爽”而已。读了这段文字,我果然像作者预测的那样——会心一笑,“不爽”这个词儿用得,简直说到心坎儿里面去了!每个人编程习惯不一致,所以在读别人代码的时候,即使是再简洁高效的代码,读起来也不会像自己写的读来那么流畅,总是感觉磕磕绊绊的,要是赶上没有注释,就更痛苦了。但是换到自己写代码的时候,总觉得每条代码都写的合情合理,再自然不过了,根本没有必要做多余的注释。由此,程序员小分队总在痛苦的“读代码”中开始,在草草的“写代码”收尾中结束。程序员的小心思被作者剖析的非常一针见血!

3.自我时间管理

这是一个老生常谈的问题,我自己在给mentor的weekly reports中经常不自觉地流露出time conflicts之类的话题。在本书中,作者提到了四象限法,即把需要处理的事情分为四类:重要且紧急,重要不紧急,紧急不重要,不紧急不重要。作者作为一名CTO,用目标和赚钱来作为导向对需要处理的事物进行分类。这与第一次Advanced Lecture中张磊研究员为我们介绍的时间规划方式不谋而合。在我看来,无论有没有计划,我们都知道自己要首先完成重要且紧急的事物,然后着手紧急不重要的事物,既然紧急,就总会有某些必须迅速达到的目标。然而,如果没有良好的规划,我们很容易忽略那些重要不紧急的事物!比如说在平时注意提高自己的软技能,可谓无比重要,但是这些只会潜移默化的影响着我们,因此往往不容易被重视。

4.未来软件开发模式

书中在讲到相关章节的时候引用了李维先生在《Borland传奇》中的一段文字:所有的读者都可以感觉到,现在系统开发的时程要求的越来越快。信息机构的调查显示,系统和项目的开发时程将持续地缩短,到了2012年居然只有一天的时辰。在这段文字右侧的空白处,本书的上一位借阅者加上了如下的批注:“不靠谱,我等着那一天。”这引发了我的兴趣。文中提到,在互联网时代,网上可以找到合作伙伴,可以找开源学习资源,可以找公共code库,也可以发贴子,搜blog,其实这些办法我自己都亲身体会过,现代的网络的确为我们提供了很多便利。如文中所说,各种强大的管理工具也大大提高了工作效率。我虽然体会到了这些优越性,但同上一位借阅此书的师兄或是师姐一样,我认为一天的时间开发项目有点儿夸张!像我们在开发中使用的Team Foundation Server,个人认为存在着很多冗余的部分,有些过细的条目其实反过来降低了效率。至于未来的开发能否在真的一天内完成,让我们拭目以待吧!

by Minghui Tan

转载于:https://www.cnblogs.com/rosting/archive/2011/10/20/2218980.html

小作坊的大道理——读《走出软件作坊》有感相关推荐

  1. 读图书版 《走出软件作坊》

    以前在网上读<走出软件作坊>,对于作者的文章和分析符合国情,很是受用,最近阅读了图书版的内容.作者在blog上又有不少的新更新. 作者博客:阿朱=行业趋势+开发管理+架构 http://b ...

  2. 走出软件作坊:三五个人十来条枪 如何成为开发正规军 链接[收藏]

    三五个人十来条枪 如何走出软件作坊成为开发正规军 走出软件作坊:三五个人十来条枪  如何成为开发正规军(二) 项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) 人,是人, ...

  3. 读《走出软件作坊》有感

    第一次看到这个书的副标题<三五个人十来条枪,如何成为开发正规军>,心里就觉的这是一本十足的IT小说书,但是读了几段之后,就放不下手了,很久没有看书看到欲罢不能的境地了,所以晚上一有空就读上 ...

  4. 读《微软的秘密》,想《走出软件作坊》

    <微软的秘密>的写作方法很醒目, 从组织结构和岗位职责 到产品战略.产品设计.产品开发.产品测试.产品发布.产品总结改进,完成了一个产品的全过程循环. 最后在作者的角度上观察微软,在微软的 ...

  5. 读后感: 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)

    懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四) http://blog.csdn.net/david_lv/archive/2008/06/11/2535650.aspx 读后 ...

  6. 感谢韩磊为《走出软件作坊》作序

    序作在此: 今年早些时候,有一系列文章在CSDN Blog上陡然火爆起来.博主阿朱,以<三五个人,十来条枪,如何走出软件作坊>为题,总结了自己从业十年以来在技术项目和技术团队管理方面的经验 ...

  7. 物以类聚,人以群分--走出软件作坊:三五个人十来条枪 如何成为开发正规军(十一)

    上个星期和一群刚认识的朋友吃饭.很多朋友都看过了我的博客,对我写的<走出软件作坊:三五个人十来条枪>非常感兴趣,纷纷询问我怎么了解这么多.而你为什么会这样想,你又是如何做到的? 我说:其实 ...

  8. 读后感:物以类聚,人以群分--走出软件作坊:三五个人十来条枪 如何成为开发正规军(十一)

    物以类聚,人以群分--走出软件作坊:三五个人十来条枪 如何成为开发正规军(十一) http://blog.csdn.net/david_lv/archive/2008/06/06/2517685.as ...

  9. 自省的力量-我看《走出软件作坊》

    一桌坐着5个人,其中4个是正在管软件项目的,包括我.4个人志同道合的吐着苦水.另外一个制造业管理出身的家伙很感兴趣的听我们发泄,估计他觉得这4个人倒的苦水特别不可思议. 不管其他行业的人觉得多古怪,软 ...

  10. 麦田守望者--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十三)...

    <走出软件作坊>将于近期由电子工业出版社博文视点出版,要感谢诸多长久以来支持的网友大力支持与鼓励,也要谢谢博文的朋友们. 由于版权原因,所以我只能把草稿的一部份贴上来,还有40%的内容大家 ...

最新文章

  1. 树莓派Android Things物联网开发:创建一个Things项目
  2. 知乎如何运用OKR管理公司目标,达成绩效?
  3. 山海经鸿蒙手游iOS 版本,山海经鸿蒙异兽iOS版
  4. python读取json文件转化为list_Python从所有子目录读取JSON文件
  5. 宝塔 开启_宝塔面板安装完的一些列操作
  6. cad常用字体包_CAD制图初学入门如何学好CAD?CAD大神总结5点诀窍,必须收藏
  7. SAP ERP 安全管理平台系统
  8. 计算机各单位间转换(位,字节,进制间转换)
  9. poj 3714 Raid
  10. jdk下载和安装教程
  11. talentcentral测评结果_人才测评
  12. 修改Tomcat8 内存
  13. 流量转发的思路-软件流量转发 管家婆 客户端 端口 更改
  14. 办公计算机班半学期总结,计算机班的班主任工作总结.docx
  15. flickr网站用到的php技术
  16. 图形 1.1渲染流水线(知识梳理笔记)
  17. Python学习13 ----Seaborn调色板
  18. gpu精粹2.高性能图形芯片和通用计算机编程技巧,哎哟喂啊
  19. 有时候qq邮箱不显示图片
  20. python中各种属性与方法深析

热门文章

  1. 线程的创建以及线程的本质
  2. Gallery of Processor Cache Effects
  3. Linux设备驱动——驱动模型之基本结构
  4. ARM汇编指令MCR/MRC学习
  5. SystemTap Errors Introduce
  6. 2058. 笨拙的手指
  7. 有史以来最容易理解的控制反转(IoC)与注入依赖(DI)
  8. ftp文件传输有服务器吗,ftp文件传输有服务器吗
  9. php跨域允许json,PHP中JSON的跨域调用
  10. mysql数据库隔离级别 实现原理_MySQL事务及Spring隔离级别实现原理详解