软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-7

7. 认 同 法

 

2006810日,星期四

    你想让一个团队中的所有人朝同一个方向齐心协力地工作。我已经在前面的文章中指出,军事化管理法和经济利益驱动法在高科技的知识团队中效果很差。

    这样一来,只剩下一个办法了,我把它叫做“认同法”。这种管理方法的目标是,使得人们认同你希望达到的目标。它实施起来比其他方法难得多,而且还需要一些很不简单的人际沟通的技巧。但是,如果你真地做到了,它的效果就比其他方法好得多。

    前面说过了,经济利益驱动法的问题是,它将内部激励变成了外部激励。认同法的作用恰恰就是设法创造出内部激励。

    为了实行“认同法”,你必须动用所有的技巧,使得你的雇员认同公司的目标,这样他们才会感到极大的激励。然后,你还需要向他们提供必要的信息,使得他们向正确的方向前进。

    怎样才能使雇员对公司有认同感?

    如果公司的目标确实在某种程度上是高尚的,或者至少在别人看起来是高尚的,那么肯定有助于人们产生认同感。1984年,苹果公司在超级碗决赛时,播出了一则广告[①]。就是从那个时候起,苹果公司几乎创造出一种狂热的认同,它靠的差不多就是不停地讲:我们反对极权主义。这种话看上去是不是好像夸夸其谈?但是它的确起作用!我们也会说,在Fog Creek软件公司,我们勇敢地站出来反对残杀小猫。耶!

    我自己非常喜欢的一种做法是大家坐在一起吃饭。我总是提出,一起干活的人要一起吃饭。在Fog Creek软件公司中,我们每天都为整个团队提供午饭,大家一起围着一张大桌子吃饭。我想,不管怎么强调这种做法的巨大效果都不过分,它让人们感到公司就像一个大家庭,而且是一个和谐的大家庭。6年过去了,没有人离开。

    我下面要说的话可能会吓到我们的一些暑期实习生。我的意思是,我们实习计划的目标之一就是让人们喜欢上纽约,觉得自己也是纽约的一份子,这样他们才会感到更放心,大学毕业后愿意搬到纽约来,同我们一起全职工作。为了达到这个目的,我们的暑假课外活动多得让人筋疲力尽:两出百老汇音乐剧,一次登高爬楼,一次环曼哈顿岛的划船,一次扬基棒球队的比赛,一次能够结识更多纽约人的室内晚会,一次博物馆之旅。室内晚会在我和迈克居住的公寓举办,目的不仅仅是欢迎实习生,也是一种手段,让他们对纽约的公寓生活有一个实际的印象,不要局限于我们安排他们住的宿舍楼。

    一般来说,认同法要求你创造一个有凝聚力的、像胶水一样粘在一起的团队,就好像家庭一样。这样一来,人们就会对他们的同事产生忠诚感和义务感。

    “认同法”的第二部分则是向人们提供必要的信息,使得公司向正确的方向前进。

    今天的早些时候,程序员Brett走进我的办公室,同我讨论FogBugz 6.0的发布日期。他倾向于在20074月发布,我则倾向于在200612月发布。当然,如果在20074月发布,我们就会有更多的时间,可以在产品的各个方面进行修补和改进工作。如果在200612月发布,我们可能就不得不砍掉一大批很不错的新功能。

    尽管如此,我还是要跟Brett解释:明年春天公司打算再雇6个人,如果FogBugz 6.0不早一点儿推出,我们负担新雇人手的费用就有相当大的困难。所以,我与Brett的谈话结束的时候,我让他明白了我之所以希望早一点发布新软件,完全是因为财政上的动机。现在他知道了这一点,我很有信心他会做出正确的决定……不一定就是附和我的观点。一种可能的情况是,即使不发布FogBugz 6.0,我们现有软件的销售也出现了很大的提升,那么现在Brett已经了解了我们基本的财务状况,他就会想到,原有软件销售的上升意味着我们可以再延迟一段时间发布6.0版,为它再加上一些功能。我这样做的意义在于,通过分享信息,我能够使得Brett根据外部环境的变化相应地做出最有利于Fog Creek软件公司的决定。要是我换个方法,企图用奖金来打动他,我告诉他只要在4月之前,每提前一天发布软件,他就能得到现金奖励,那么,他想做的事情就会变成,当天晚上就把在公司内部公开的、包含错误的现有开发版本毁掉。如果我用军事化管理法,命令他必须及时发布没有错误的代码,他可能会服从命令,但是他会因此痛恨他的工作而选择离开。

结  论

    天底下有多少个经理,就有多少种不同的管理方法。我在这几讲中,归纳出了三个主要方法。其中两个简单易行,但是效果不好,还有一个做起来比较困难,但是管用。不过实际情况是,许多软件开发团体会根据时间和对象的变化灵活运用各种管理方式。

 



[①]   参见本书的第3讲。

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值