< 序言 >
————
几年前,当我确定我的发展方向是软件开发时,给自己订下的三步曲是:软件编程、软件设计、软件工程。随着对既定目标的越来越近的时候,我却出现了一种困扰我的忧虑。
记得两年前开始的一个正规的软件项目,我是一个程序员,项目就像一颗种子一样渐渐得长成了一棵大树,按道理来说,看到如此成果应该会有一些成就或是自豪。可是我却感到了一种忧虑,人在项目当中究竟是什么呢?现代科学的软件管理让软件开发变成“软件工厂”,其中的人就像一个被催眠了的机器人,我被定义成一个部件,一个资源,任凭别人的调度和摆布。没有想法,机械地在一个生产线上执行着已被他人安排好的流程和工作,我的想法和主张完全被格式化的条款规定一个狭窄的框架中。我完全就是一个“奴隶”,我开始怀疑所谓的软件工程。
后来,我逐渐成长起来,并成为一个项目经理,有一段时间,我开始同时从事三个项目,一个项目中任系统分析,一个项目中任项目管理,一个项目中任售前技术负责。还要和一个朋友专研电脑游戏技术。在第一个项目中,有两个程序员接收我的分析结果,我把系统分析的详细设计写到了流程图和伪代码,他们负责实现,我负责解释。在第二个项目中,我有五个人员供我调配,在项目初期,我分配两个人做需求调研,另外三个人做技术准备,需求确定后,我分配一个人解释需求,我和另一个搞需求的人做数据模型和详细设计,而那三个人开始进行技术环境和基础框架程序准备,一切都是按照软件工程所定义的实施,文档和程序大量的出现,一切尽在掌握当中。
这是我平生以来工作强度最大的时期,每天我都要工作到凌晨三点,第二天八点就得起床上班。连续持续了两个月后,每当我看那些曾经和我一样的人,我有一种负债的感觉,我干了什么啊?他们是活生生的人啊,但他们却被我变了一个部件,一台机器。而我变成了“奴隶主”。
我开始以政治家的口气对自己说:“做一个好的软件,就得这么做,收起你的同情心吧,现实一点”。但我却无法停止困惑、开始自我遣责,难道这就是我要的软件工程?ISO-9000、CMM、大学时所学的软件工程,就是要把人当成一个资源、一个部件、一台机器?最近半年,我经常为这个问题所困扰,这完全就是奴隶主和奴隶的体制,我怀疑我生活在历史书中所描述的强权统治社会。
两周前,一个好朋友向我推荐了一本书,我还记得那天早上收到快递公司送来的这本书后,我就翻开看了,却再也无法停止,一直看到三更半夜。因为我所焦虑的,我所怀疑的,都在这本书中得到了解决。难道老天真的知道我在想什么吗?

转载于:https://blog.51cto.com/haoel/124697

《自适应软件开发》—从奴隶主到领袖 1 序言相关推荐

  1. 【中级软考】什么是“敏捷过程的开发方法(敏捷方法agile)“(极限编程XP、特征驱动开发FDD、并列争球法Scrum、水晶法Crystal、开放源码法、自适应软件开发 ASD方法)

    文章目录 敏捷方法 1 极限编程 XP 1.四大价值观 2.十二个最佳实践 2 特征驱动开发 FDD 1.FDD 角色定义 2.核心过程 3.最佳实践 3 并列争球法 Scrum 1.Scrum 的五 ...

  2. 《自适应软件开发》—从奴隶主到领袖 4 领导—协作

    < 领导-协作 > ------- 我们生活的这个世界是一个强制秩序的年代,为了保持稳定,我们的领导人以发布命令的方式指使着我们,并对我们的日常活动进行控制.正规软件工程中的项目经理,也正 ...

  3. 项目管理基础:软件开发的方法介绍

    软件开发方法主要有结构化方法.原型化方法.面向对象开发方法.敏捷方法. 1.结构化方法 结构化方法由结构化分析.结构化设计.结构化程序设计组成,它是一种面向数据流的开发方法. 结构化分析:依据分解与抽 ...

  4. 软件工程之软件开发和软件测试模型

    软件生命周期:需求分析-->概要设计-->详细设计-->编码-->测试-->验收 软件开发过程常见模型: 所有模型是一种指导工作开展的一种方式而已,是一种方式. 瀑布模型 ...

  5. 软件工程与软件开发模型、软件开发方法

    什么是软件工程? 软件工程一直以来都缺乏一个统一的定义. IEEE给出的定义是:软件工程是:1.将系统化的.严格约束的.可质量化的方法应用于软件的开发.运行和维护,即将工程化应用于软件:2.在1中所述 ...

  6. 软件开发(方法、模型)

    目录 1. 软件开发方法 2. 软件开发模型 参考 1. 软件开发方法 软件开发方法是指软件开发过程中所遵循的办法和步骤. 1) 从性质上,分为形式化方法和非形式化方法. 形式化方法在的数学基数上,采 ...

  7. 世界级软件开发大师Martin Fowler这三本书经典书你都读过哪一本?

    马丁·福勒(Martin Fowler),世界级软件开发大师,ThoughtWorks首席科学家.他是一位作家.演说者.咨询师和泛软件开发领域的意见领袖.他致力于改善企业级的软件设计,对优秀的设计以及 ...

  8. 围城书评_软件开发指标的问答和书评

    围城书评 Dave Nicolette撰写的<软件开发度量>一书探讨了如何使用度量来跟踪和指导软件开发. 它说明了不同的开发方法和过程模型(例如传统的基于瀑布的迭代软件或迭代式敏捷软件开发 ...

  9. 面向对象是软件开发范式的根本性颠覆: 主体建模, 非目标导向, 松耦合, 非逻辑分解, 软件进化...

    为什么80%的码农都做不了架构师?>>>    关于面向对象的文章,100篇里面有99篇要么离谱太远,要么不知所云,但剩下有1篇是好的.我历经多年找不到那一篇,最终还是决定自己研究( ...

  10. 《告别失控:软件开发团队管理必读》一一1.2 成功的程序设计经理为什么难当...

    本节书摘来自异步社区出版社<告别失控:软件开发团队管理必读>一书中的第1章,第1.2节,作者: [美]Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利 ...

最新文章

  1. python爬取天气_python3爬取各类天气信息
  2. 苹果史上最强芯片竟然是个“组装货”!iPhone SE涨价,13系列是真绿了
  3. java中文乱码的解决
  4. 第130天:移动端-rem布局
  5. [转]LoadRunner 各个指标分析
  6. teams怎么去看谁在说话
  7. 用python画竹子_?【蟒蚺迷】BAMBOO BALLPYTHON!
  8. cayenne:用于随机模拟的Python包
  9. Java JDK 安装配置
  10. 今天最好的生日礼物就是重新找到目标
  11. 冗余机器人以及雅克比伪逆矩阵
  12. (140)System Verilog替代交叉覆盖率
  13. 网页header 的 meta使用
  14. 《周一清晨的领导课》--司机与乘客 - [读书笔记]
  15. 最简单最适合纯小白的postman使用方法(测试接口的不二利器)(从介绍到下载到使用的详细教程)
  16. 淘宝店铺装修之一怎样在自定义内容区做个商品图片轮播展示
  17. vue百度地图标记多个marker和marker点击事件处理
  18. Windows 安装ffmpeg并从视频中提取音频
  19. 解决Windows Firewall/Internet Connection Sharing (ICS)服务无法启动(ping通IP,但不能浏览网页)
  20. PBO(Pixel Buffer Object),将像素数据存储在显存中

热门文章

  1. LaTeX在数学环境中使用直立体
  2. 使用TypoDetect检测相似域名
  3. 使用Lettuce执行命令,应该有多个返回值却只取到一个。
  4. linux shell捕获异常,shell脚本中如何获取错误输出
  5. eslint 换行_给 eslint 写一个插件
  6. 计算机与信息安全基本概念和知识,第8章计算机网络应用与信息安全知识.ppt
  7. Day0205____数据库
  8. Fiddler(Web/HTTP调试利器)
  9. C#3.0 new features: Lambda expression
  10. 详解对密码执行散列和 salt 运算方法