`

封闭开发是为何?

阅读更多

封闭开发是为何?

       加班是程序员们永恒的话题,另外还有一个名词就是封闭开发。想必大家对这个也不陌生了。
       关于加班的讨论也很多了,小结一下大多数程序员的观点——深恶痛绝。不过今天我不想讨论这个问题了,想说说另外一个话题:
封闭式开发到底是什么,没有一个标准的答案,不过我们可以一起来看看它到底是怎么产生的。
封闭开发是什么
       “顾名思义,封闭开发就是把一帮‘可怜兮兮’的程序员关起来,没日没夜地敲代码。”这可是最简单直观的说法了,但却说道了重点,就是封闭。至于程序员是不是可怜兮兮的,就值得我们探讨了。
 
       有人问到:“世界上什么人最喜欢加班?”。
答曰:“工作狂 + 老板”。
工作狂我不愿意当,老板我也不是,所以我不喜欢加班。不过倒是有那么一点喜欢封闭开发。
 
有一种认识:封闭就是长期性的加班。持有这种想法的朋友就会觉得奇怪了。不喜欢加班怎么会喜欢封闭呢?
这里要说的是两种类型的封闭开发:恶性封闭开发、良性封闭开发。
 
所谓恶性封闭开发指的就是在封闭的环境下长期地不间断地加班,严重点的就是饿了胡乱吃点、累了随便躺会儿,物理环境和心理环境都非常恶劣。可以说这种封闭开发算得上是加班的高级形态。
所谓良性封闭开发指的是开发人员在相对清静的环境下进行工作,每日八小时工作制,可以吃得饱、睡得香,提高工作效率。这种和上面的比起来简直就是一个天堂一个地狱了。
哪些人喜欢封闭
现在我经历了大大小小五六个项目的开发过程,可以说上面两种封闭都见识过了。相比之下良性的封闭开发就要幸福得多了。其中的差别是不言而喻的。至于哪些人喜欢封闭就要分情况讨论了。
 
对于第一种,估计只有老板喜欢,对于第二种可能希望高效率工作的人大部分都会喜欢。(分析结果并非由大规模的统计支持)
 
这里就涉及到一个问题,封闭能带来什么?是否真的能如人所愿带来高效、或高量的工作成果。
 
对于恶性的封闭开发就不必说了,士气低迷、质量不能保证、通常会伴有项目延期的问题发生,除非在程序员面前放上一大堆的金条——以极大的物质利益诱惑。其副作用是非常明显的。
良性的封闭开发倒是有些意思,听起来好像不错。但它的缺点在于降低了员工对企业的归属感,并且容易闭门造车。
 
其实不管是恶性的还是良性的封闭开发,都是不健康的软件开发方式。
到底这是谁的错
       前面说的,封闭开发的核心在于封闭(好像是废话)。为什么会有人提出封闭呢?关键问题在于不自信。
 
       第一,和加班的原因一样,当进度紧张的时候,主管往往会提出加班或者封闭来缓解进度要求带来的压力。至少在直观上可以给人一种多出一部分额外人月的感觉。这是主管的不自信。
 
       第二,企业的传统文化。有的企业在从小规模向大规模发展的过程中经历了许多的战役,对于公司的决策层来说,最令人难以忘怀的就是创业初期大家一起共患难的美好时光。基于这些甜蜜的回忆,最终形成了这样的一种企业文化。由于对发展后的现状不适应,没有找到一套行之有效的适合大规模软件工程的理论和方法,所以宁愿信任以往小规模时采用的“土”办法。这是企业的不自信。
 
       第三,员工的妥协。繁重的文档规范、冗长的部门流程、非人性化的管理制度,许许多多的客观因素导致了技术人员无法安心工作。既然公司的大环境就是这样,大家也没有能力去改变什么,没法子,申请到外面封闭,建立自己的理想环境,心有余力不足啊。这是员工的不自信。
 
       说到底,这些问题并不能归咎到某一个人的身上,开发人员不能一味地埋怨老板、老板不能只是感叹手下执行力不够、主管也不能唠叨开发人员不尽心。问题出在咱们中国IT企业的转型。
 
       众所周知,目前中国的软件企业绝大部分是中小企业,很多在发展中都遇到了管理上的一个瓶颈。一方面是鲜艳的国外企业财务报表、另一方面是从小企业时期带来的手工作坊式的“美妙”传统。在这两者之间一时之间很难取舍。
       到底何去何从?个人水平有限,不能在这里分析出个道道来,只好留待众多的中国IT同仁们一起来探索了……
分享到:
评论

相关推荐

    封闭开发申请表

    封闭开发,也称为内部开发或闭门开发,是软件开发过程中的一个特殊阶段,通常用于保护新产品的知识产权、确保代码安全以及加速项目进度。在这个阶段,开发团队会在一个与外界隔离的环境中工作,减少外部干扰,提高...

    Direct9游戏开发封闭引擎HGE

    综上所述,Direct9游戏开发封闭引擎HGE是一个全面的游戏开发工具,它为开发者提供了从图形渲染到音频处理,再到用户输入和资源管理的一站式解决方案。通过学习和使用HGE,开发者可以高效地创建2D游戏,同时享受...

    matlab开发-最小体积封闭曲面

    总之,MATLAB的"最小体积封闭曲面"开发涉及了数值优化、几何建模和多点包容等问题,是数学和工程计算中的一个重要工具。通过`MinVolEllipse.m`的实现,我们可以学习到如何用编程解决这类问题,并理解其背后的数学...

    房地产开发贷款项目封闭管理协议.doc

    金融机构在为房地产开发项目提供贷款时,面临着资金被挪用等风险,为了保障贷款的安全性,确保资金的专款专用,金融机构与房地产开发商之间往往会签订一份专门的法律文件——房地产开发贷款项目封闭管理协议。...

    json格式查看器,适合于没有网络的本地开发场景,比如封闭开发

    在封闭开发或者离线开发的场景中,开发者往往需要快速检查和验证JSON数据的结构和内容,确保数据传递的准确性和有效性。"JsonViewer"是一个这样的工具,它提供了一个简洁直观的界面,帮助开发者轻松查看和理解复杂的...

    matlab开发-封闭式住宅

    在MATLAB环境中,开发封闭式住宅的模拟与分析通常涉及到控制系统的设计和仿真。"Closed_Logarithmic_Nyquist.m" 文件很可能是一个MATLAB脚本,用于绘制封闭式住宅的控制系统在对数标度上的奈奎斯特图。奈奎斯特图是...

    matlab开发-封闭曲面网格的刚性体参数

    首先,我们要理解什么是封闭曲面网格。在计算机图形学和几何建模中,曲面网格是由一系列三角形或四边形面片连接而成的几何结构,用于表示三维物体的表面。封闭曲面意味着这些面片形成了一个不透水的边界,内部可以...

    判断一系列坐标点是否在封闭图形内

    在IT领域,尤其是在计算机图形学和游戏开发中,判断一系列坐标点是否位于封闭图形内是一项重要的任务。这个任务通常涉及到碰撞检测、区域划分以及复杂的几何计算。本篇将详细讲解如何利用Matlab来实现这个功能,特别...

    C#填充任意封闭区域(FloodFill)

    在编程领域,尤其是在游戏开发、图像处理或者图形用户界面设计中,填充算法是十分重要的一个概念。本篇文章将深入探讨“C#填充任意封闭区域(FloodFill)”这一主题,我们将采用队列数据结构来实现这个功能。队列是...

    delphi开发的通用的功能组件包封闭了常用的方法

    在你提到的“delphi开发的通用的功能组件包封闭了常用的方法”,我们可以理解为这是一个专门针对Delphi开发者的工具集,它封装了一系列常用功能,使得开发者能够更高效地进行软件开发。 首先,组件包的核心理念是...

    第二十六讲:基础一开放封闭原则

    例如,如果正在开发一款源码分析工具,工具的核心功能(如语法解析、抽象语法树构建等)应保持封闭,不因添加新的编程语言支持而修改。相反,可以通过添加新的解析器模块来扩展支持,这些模块遵循统一的接口。 总之...

    房地产开发贷款项目封闭管理协议[归类].pdf

    房地产开发贷款项目封闭管理协议是金融机构与房地产开发商之间签署的重要法律文件,旨在规范房地产开发项目的资金使用和管理,确保贷款资金专款专用,保障信贷资金的安全性和有效性。本协议涉及的关键知识点包括: ...

    JavaScript设计模式与开发实践.pdf

    包括面向对象的设计原则、单一职责原则、开放封闭原则、Liskov替换原则、接口隔离原则、依赖倒置原则、里氏替换原则、接口分离原则等,并介绍了一些常见的面向对象编程技巧和日常开发中的代码重构方法。 本书的示例...

    iOS开发入门(iPhone和iPad开发必看)

    - iOS开发相对封闭但稳定,有着严格的审核机制和高质量的应用标准。 - 对于新手来说,需要投入时间学习苹果的开发环境和工具,但一旦掌握,可以利用强大的开发工具和丰富的API库创建出高性能的应用。 6. 参考资料...

    断层侧向封闭性评价方法研究毕业论文.doc

    通过分析不同封闭类型的特征,建立定量关系模型,能够更加准确地预测断层对油气的封闭效果,这对于油气勘探和开发策略的制定具有重要的指导价值。在未来的工作中,研究者可以进一步改进评价模型,提高其准确性和适用...

    封闭行星齿轮传动系统的虚拟装配设计

    利用Pro/E软件的参数化设计和装配功能,完成了大型风力发电齿轮箱封闭行星齿轮传动系统的零部件参数化建模,并在装配环境下完成封闭行星齿轮传动系统的虚拟装配,满足大型风力发电齿轮箱封闭行星齿轮传动装配复杂,精度...

    嵌入式Linux集成开发环境的设计与实现.pdf

    封闭自主开发模式是指从底层开始完全自定义开发环境,适用于对安全性、定制化要求极高的场景。而开放组件集成模式则是利用现有的开源工具链,如Eclipse、Qt Creator等,结合定制化的插件和工具,构建适合嵌入式开发...

    汽车嵌入式系统的开发流程(汽车电子技术).pdf

    传统汽车嵌入式系统的开发流程多采用线性模型,从需求分析到设计、编码、测试再到最终部署,流程相对封闭,且在测试和故障排除方面耗时耗力。为了解决这些问题,V模式开发流程应运而生。V模式流程强调开发与测试的...

    电力系统中封闭母线的振动.pdf

    在现代电力系统中,封闭母线作为传输大电流的关键元件,其稳定性和可靠性对于电力系统的整体性能至关重要。封闭母线的振动问题是影响其性能的一个重要方面,可能引起电气性能下降,甚至导致机械结构的损坏。因此,对...

Global site tag (gtag.js) - Google Analytics