< 序言 >
————
几年前,当我确定我的发展方向是软件开发时,给自己订下的三步曲是:软件编程、软件设计、软件工程。随着对既定目标的越来越近的时候,我却出现了一种困扰我的忧虑。
记得两年前开始的一个正规的软件项目,我是一个程序员,项目就像一颗种子一样渐渐得长成了一棵大树,按道理来说,看到如此成果应该会有一些成就或是自豪。可是我却感到了一种忧虑,人在项目当中究竟是什么呢?现代科学的软件管理让软件开发变成“软件工厂”,其中的人就像一个被催眠了的机器人,我被定义成一个部件,一个资源,任凭别人的调度和摆布。没有想法,机械地在一个生产线上执行着已被他人安排好的流程和工作,我的想法和主张完全被格式化的条款规定一个狭窄的框架中。我完全就是一个“奴隶”,我开始怀疑所谓的软件工程。
后来,我逐渐成长起来,并成为一个项目经理,有一段时间,我开始同时从事三个项目,一个项目中任系统分析,一个项目中任项目管理,一个项目中任售前技术负责。还要和一个朋友专研电脑游戏技术。在第一个项目中,有两个程序员接收我的分析结果,我把系统分析的详细设计写到了流程图和伪代码,他们负责实现,我负责解释。在第二个项目中,我有五个人员供我调配,在项目初期,我分配两个人做需求调研,另外三个人做技术准备,需求确定后,我分配一个人解释需求,我和另一个搞需求的人做数据模型和详细设计,而那三个人开始进行技术环境和基础框架程序准备,一切都是按照软件工程所定义的实施,文档和程序大量的出现,一切尽在掌握当中。
这是我平生以来工作强度最大的时期,每天我都要工作到凌晨三点,第二天八点就得起床上班。连续持续了两个月后,每当我看那些曾经和我一样的人,我有一种负债的感觉,我干了什么啊?他们是活生生的人啊,但他们却被我变了一个部件,一台机器。而我变成了“奴隶主”。
我开始以政治家的口气对自己说:“做一个好的软件,就得这么做,收起你的同情心吧,现实一点”。但我却无法停止困惑、开始自我遣责,难道这就是我要的软件工程?ISO-9000、CMM、大学时所学的软件工程,就是要把人当成一个资源、一个部件、一台机器?最近半年,我经常为这个问题所困扰,这完全就是奴隶主和奴隶的体制,我怀疑我生活在历史书中所描述的强权统治社会。
两周前,一个好朋友向我推荐了一本书,我还记得那天早上收到快递公司送来的这本书后,我就翻开看了,却再也无法停止,一直看到三更半夜。因为我所焦虑的,我所怀疑的,都在这本书中得到了解决。难道老天真的知道我在想什么吗?
下一页->
分享到:
相关推荐
href="javascript:void(0)">自适应宽度的标签</A> </LI></UL> <DIV id=tagContent> <DIV class=tagContent id=tagContent0>第一个标签的内容</DIV> <DIV class="tagContent selectTag" id=tagContent1>第二个标签的...
<td colspan="5" class="danger"><button class="btn btn-primary btn-sm">增加</button></td> </tr> </table> 一款简洁实用的自适应PC手机端的jQuery可编辑表格代码,jQuery表格添加删除行数据代码,使用...
HTML5是现代网页开发的标准,它引入了许多新特性,如语义化标签(例如<header>、<nav>、<section>、<article>等)、媒体元素(<audio>和<video>)、离线存储(localStorage和sessionStorage)以及Canvas和SVG等图形...
<div class="flexible">中间自适应宽度</div> <div class="fixed-width">右侧固定宽度</div> </div> </body> </html> ``` 在这个示例中,`.container` 使用 `display: flex;` 创建一个弹性布局容器,`justify-...
代码片段: <table class="table table-bordered table-hover"> <tr class="info"> ...<td colspan="5" class="danger"><button class="btn btn-primary btn-sm">增加</button></td> </tr> </table>
<TabItem Header="Tab1" SharedSizeGroup="A"> <!-- ... --> </TabItem> <TabItem Header="Tab2" SharedSizeGroup="A"> <!-- ... --> </TabItem> <!-- ... --> </TabControl> ``` 2. 自定义`TabControl`样式...
<a href="#"><span>但他一定不是首页</span></a> <a href="#"><span>好了,就这样把。别扯了~</span></a> 5. 图片资源 我们使用了一个名为bg_sprites_02.jpg的背景图片,该图片需要包含两个圆角矩形的背景图片,一...
菜单在垂直方向上能做到自适应,当主菜单靠近顶部,子菜单将会在下面,当主菜单靠近底部,子菜单在上面。运用Modernizr的触摸检测功能,我们可以让子菜单的响应在pc上是hover,而在触摸设备上是点击。例子中还示范了...
<th data-breakpoints="xs">Column 1</th> <th data-breakpoints="xs">Column 2</th> <th data-breakpoints="xs sm">Column 3</th> </tr> </thead> <tbody> <!-- Table rows here --> </tbody> </table> ```...
<div class="main-2"><div class="main-wrap-2"><p>main-wrap</p><p>main-wrap</p></div></div> <div class="sub-2"><p>sub</p><p>sub</p><p>sub</p></div> <div class="extra-2"><p>extra</p><p>margin-left:350...
<div class="signin-head"><img ></div> <form class="form-signin" role="form"> <input type="text" class="form-control" placeholder="用户名" required autofocus /> <input type="password...
<button class="button">按钮1</button> <button class="button">按钮2,内容较长</button> <button class="button">按钮3</button> <!-- 添加更多按钮 --> </div> </body> </html> ``` 以上代码创建了一个使用...
<div class="tab-item active">选项卡1</div> <div class="tab-item">选项卡2</div> <div class="tab-item">选项卡3</div> </div> <div class="tab-content"> <div class="content active">内容1</div> <div ...
<li><a href="#">关于我们</a></li> <li><a href="#">服务</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> ``` 接下来,我们通过CSS(Cascading Style Sheets)来控制导航栏的样式,特别是宽度和在...
<li><img src="image1.jpg" alt="Image 1"></li> <li><img src="image2.jpg" alt="Image 2"></li> <!-- 更多图片... --> </ul> </div> <script src="js/bxslider.min.js"></script> <link rel="stylesheet" ...
在网页开发中,`<iframe>`元素是一种非常实用的工具,它允许我们在一个页面中嵌入另一个页面的内容,实现页面的组合或者隔离加载。然而,`<iframe>`的高度自适应问题常常困扰着开发者,尤其是当`<iframe>`内部的内容...
<li><img src="image1.jpg" alt="Banner 1"></li> <li><img src="image2.jpg" alt="Banner 2"></li> <li><img src="image3.jpg" alt="Banner 3"></li> </ul> </div> ``` 3. **初始化Unslider** 在页面加载...
<p>通用模型控制(CMC) 算法的参考轨迹是一条标准的二阶曲线, 该控制器的参数具有明显的物理意义, 控制<br> 器参数整定方便. 将通用模型控制算法与非线性观测器结合, 在线估计控制器的参数, 从而构成自适应控制系统....
<artifactId>itextpdf</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency...