如何提高生产力(二)、软件的开发与采购

随着薪酬上升、劳动力人口萎缩以及文化变迁,公司利用廉价并卖力工作的员工获得优势的日子已经过去了。对于工厂制造企业连招聘一个技工都是很困难的事情,而软件企业招聘一个熟练技术的程序员更是很难。

人工成本的上升已经让行业感受到了很大的压力,制造企业的做法一般是:

1.将工厂迁往中国内地和东南亚等地;

2.引进先进自动化生产线,减少用工,采用机器人;

3.将非核心零部件交付第三方工厂采购,这样可以降低员工人数,提高生产效率,降低整个产品的生产成本;

4.对业务进行重构,将模块业务通过ODM的方式打包交给第三方工厂生产,自己主导产品设计、市场营销和用户体验;

而对于软件企业,还是停留在无奈抱怨发牢骚的阶段,离职多,招人难,员工要钱高不出活,眼睁睁的看着企业低效率高成本的运作,制造企业还可以升级生产线,用机器人等来提高自动化程度,软件公司却不能用机器人来替代程序员编程,也需要未来有可能。软件企业要想降低成本,唯有提高生产力,在提高软件质量的同时,还能缩短软件交付的时间,和时间赛跑,才能制胜。

很多企业虽然不是软件企业,但是有软件开发和团队,他们的企业是通过软件团队开发一款软件产品,然后再通过运营团队来运营获取利润的,简单的两步棋,第一步没走完,就死掉了,为什么?一支军队携带的粮草供应是有限的,在长途奔袭的情况下,如果贪恋中间一座城池,又久攻不下,就得玩完。所以不要低估软件开发的凶险,很多公司都是软件还没开发出来就结束了。

软件企业为什么一直没有应对成本上升好的办法?

1)软件企业老板总是把眼光放在薪酬上,其实项目的成本是有薪资*时间来决定了,时间才是大头,软件老板,对于软件开发效率大多没有深入研究,软件开发的周期都是拍脑袋决定的,而实际的开发周期总是温水炖青蛙一般,缓慢而坚定的一拖再拖,不以老板和客户意志为转移,为什么会这样?因为软件开发是比较特殊的抽象工作,有一个可怕的现象就是埋地雷,老板和市场压得紧了,就给你埋地雷,就是埋地雷,这个是老板们知道也不敢面对的事情,一个项目,你催的太急了,下来死任务,必须要在某年某月某日上线,那就给你买地雷,偷工减料,该是混凝土浇筑的,给你塞秸秆,先上线,后续再慢慢整改,造成任务交付的假象,我们称之为虚假交付。

2)由于没有企业制造的概念,没有采购意识,所有的工作都是从无到有的开发,所有的弯路都要从头至尾的摸索,成本自然高。关键是大家都习以为常,潜意识的认为向外采购,是增加了企业的开支,即使是买包卫生纸,都觉得增加了成本,而由于自己开发增加了开发周期,加大了项目成本,则没有人关心,老板对于人力递交的工资表,每个月少则几万元,多则几十万元的工资支出,都是没有任何反对意见的签字的。我们可以思考下小米手机,如果它像我们软件企业一样所有的东西都自己搞,黄花菜都凉了。

3)项目风险评估往往走形式,项目吃紧的时候就增加人手已经被证明是个愚蠢的办法,属于火上浇油添乱,现在就更加愚蠢了,因为前几年还勉强可以招到人,现在根本招不到人,临时加急招人属于痴人说梦话。但是我们仍然可以在项目会上听到有人这么说,明知道自欺欺人,领导也是没办法,总不能来个项目,对老板说做不了吧,只能硬着头皮做,后面的事再说吧。

4) 软件开发不同于工厂制造的一个因素就是预热时间长,项目虽然启动了,但是一大堆人迟迟进入不了状态,表面上很忙,实际上一行代码都没有写或者写了个Hello word,各种开会,写各种垃圾文档,ppt, 没有思路便在网上查阅各种技术文章,构思所谓的设计和技术选型,开会推倒再设计,这种低效状态能惊人的持续几个月,这几个月的人吃马喂的成本有多大,没人关心。做项目最怕犹犹豫豫,放屁一样的小事,要审批开发走流程好几周,反反复复,当断不断,拖拖拉拉,这是很可怕的,因为天上一天,地上一年,公司耽误一天的费用,也许够一个开发人员吃上一年。

所以软件企业要提高生成力,必要对于薪资*时间这个公式要花点时间进行一个深入的思考,学习制造企业,无时无刻的关注自己的生产效率。否则项目失控,则成本上升,最后就是白忙活一场,不该省钱的,不想掏钱,该控制成本的却失控了,搬石头砸自己脚。

软件企业应该通过以下手段来应对成本上升:

1)提高软件开发效率,如果交付周期缩短1/3,就可以应对薪资上涨的压力了;

2)通过模块化采购,来降低软件开发成本,缩短交付周期。

    在制造企业里,为什么要采购?

    1)有技术门槛或者含量的,自己没有能力生产的,或者生产的质量赶不上供应商的,比如三星手机,高端机的CPU芯片用的是高通骁龙820芯片,低端机用的是自家工厂生产的;

    2)没有技术门槛的,但是自己如果生产,由于没有规模效应,无法摊低成本,如饮料瓶,产品外包装等;

     软件企业的采购也是要秉持这两点,不是说没有技术门槛的,就自己搞,自己团队实在不能搞的再想办法找人开发,这种观点大错特错,很多项目经理之所以错误估计软件开发周期,就是因为觉得这个功能简单,那个功能容易,结果看上去容易简单的事情,要想做的一点毛病没有也不是三两天就能搞定的事情。要想一想自己公司为什么不用一个正式员工来天天帮你们打扫卫生? 虽然容易但是琐碎、耗费时间的事情,正好是必须要交给别人做,而你正好抽出时间来做有价值的工作。很多项目计划的技术方案都是高大上,为什么做出来的都是普普通通的?这就是因为他们没有意识到时间是有限的,团队的时间都浪费在普通功能上和天天修改这些bug的上面了,那就没有时间去做更复杂和更有创意和挑战性的工作了,这就是我说的打仗的时候长途奔袭的战略了,如果在其中一个小城池上久攻不下,后面就要完蛋。

     我以前在已经公司里做技术总监,公司仓库需要一个库存管理系统,老板非要我们开发,我说我们的开发人员,一个人一个月的工资成本至少要1万元以上,而市面上的成熟的库存管理软件只要5000元就搞定了,而且自己开发的库存管理软件,第一版是不敢直接拿来用的,如果库存统计有错误,那对于生产经营的损失,开发团队也承担不起。

     采购,其实不是网上随便抓个供应商就可以的,也不是价格越低就用谁的,我们原来做车载视频监控,车载摄像头是通过采购零件自己组装的方式生产的,外壳、机芯、电源线、铜柱等8家供应商,都是经过不断的试探,建立起来稳定而又长期的关系的,不会轻易换其他家的。软件的采购也是如此,需要寻找的是对于行业理解较深的,来建立自己长期而又稳定的关系的。很多人不理解这一点,动不动就找个外行的外包公司,这些外包公司里全是不懂行业经验的低工资的软件开发人员,你想想他们能够给你开发出来什么好的软件产品? 再说了交给外包公司开发,外包公司延期了,你能有啥办法,能去法院起诉他们吗?

     最有效率的采购和雇佣,本质上都应该是解决你的业务短板,有明显的互补作用,而不是简单的扩大的团队的规模,如果你找了个人和你一样是个不太了解行业,那他只会加大你的成本,而无助于提高生产力。行业门槛深似海,里面有很多坑,如果你不熟悉,一个坑一个坑的填,你的成本不高才怪呢?我以前的一家公司的老板就很聪明,公司当时做一个财务软件,一帮开发人员搞了几个月,进展缓慢,老板就直接从外面挖了一个专业会计人员,和开发人员直接一对一互助,这个项目做完后,那个会计人员本来是以兼职的身份,也不会编程,但后面还是被老板留下来了。

3)通过兼职或者雇佣专业人员来维持人力弹性

    制造企业如果市场需求量不大的时候,可以停掉生产线,员工放假、半薪等方式来避免空转造成的损失,软件企业可不敢。专业人员是一种稀缺资源,薪资待遇要求又非常高,我们通常招聘不到,招聘来了老板又呲牙咧嘴觉得养不起,但是我们可以通过市场化来共享资源,在有项目的时候,可以利用一下,则没有项目的时候,就不再花钱,这样保持一个较好的人力弹性,避免空转。

    软件企业通常以为兼职就是低工资半薪雇佣一个饿的要死的卑贱之人,总是想压价来维持兼职或者雇佣第三方顾问,这种方式,有水平的人,谁会给你干? 保持高弹性的准则在于重赏之下必有勇夫,你获得了高素质的技术资源,又不用五险一金的支出,避免了空转,维持了一个好的弹性,别人得到了一个好的价钱,这才是合理共赢。试想真要是有水平的人,又不缺钱,谁会和那种斤斤计较算计的企业建立稳定成熟的关系? 为什么背后有风头支持敢于烧钱的创业企业总是有大牛加入,比如锤子手机团队,小米团队有摩托罗拉、华为等牛人加盟,唯品会团队中有京东、阿里的牛人加盟,因为他们很清楚,要和时间赛跑,就不能顾及哪一点薪资钱,要想招聘到高素质的人才,不高于市场行情20%,根本找不到人。

总之:软件企业必须要像羚羊一样,每天睁开眼,就是要不断的和时间奔跑,这样才能生存下去。

如何提高生产力(一) -养成交换的习惯

转载于:https://www.cnblogs.com/productivity/p/5948353.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

threejs中坐标系转换和实现物体跟随鼠标移动

坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标: convertTo3DCoordinate(clientX,clientY){var mv new THREE.Vector3((clientX / window.innerWidth) * 2 - 1,-(clientY / window.innerHeight) * 2 1,0.5 );mv.unproject(this.camera…

excel线性拟合的斜率_协方差分析:方差分析与线性回归的统一

转自个人微信公众号【Memo_Cleon】的统计学习笔记:协方差分析:方差分析与线性回归的统一。在进行数据分析时,有时候我们会遇到数据基线不平的情况,比如两样本的t检验的示例,比较Labe和Meto用药13周的降压效果&#xff…

解决Jenkins打不开浏览器问题

参考:http://blog.csdn.net/achang21/article/details/45096003 1.控制面板禁用掉jenkins服务 2.java -jar jenkins.war提示需要高级别的jdk 去下载jdk 因为本机已经存在了1.6,需要1.8 并没有卸载原有的1.6版本,直接网上下载的1.8并安装 解决…

状态模式和策略模式的区别

区别主要体现在行为上,而不是结构上,所以,看时序图就能很好的看出两者的区别。 状态模式 看1.4,状态B是状态A创建的,也就是由系统本身控制的。调用者不能直接指定或改变系统的状态转移 所以,状态是系统自…

如何截获打印机文件_打印、复印还不会,如何在办公室里混?全程详细教学

我们在职场中,经常需要用到打印机,相信很多人都还不会打印、复印文件,求人不如求己,今天就来详细教学,一起来学习吧。如何使用打印机?首先用一根电源线和一根USB线,将电脑主机与打印机连接&…

外观模式案例分析

策划案 要实现选中和未选中功能&#xff1a; 未选中状态&#xff1a;点击图形进入选中状态 选中状态&#xff1a;点击<按钮进入未选中状态 实现代码 请问这是什么模式&#xff1f; import TransformController from ./TransformController //操作框控制器类 import To…

UICollectionView reloadData后cell被隐藏

在使用UICollectionView的页面执行: [self.collectionView reloadData]; 执行后&#xff0c;页面变为空白页&#xff0c;调试发现&#xff0c;执行reloadData 后UICollectionView的cell的hidden都变为YES. stackoverflow上很多人说这是UICollectionView的一个bug, 有人给出了解…

len在python_len在python

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

【leetcode❤python】172. Factorial Trailing Zeroes

#-*- coding: UTF-8 -*-#给定一个整数N&#xff0c;那么N的阶乘N&#xff01;末尾有多少个0&#xff1f; 比如&#xff1a;N10&#xff0c;N&#xff01;3628800,N&#xff01;的末尾有2个0。#所有的尾部的0可以看做都是2*5得来的&#xff0c;所以通过计算所有的因子中2和5的个…

input ios问题 小程序_小程序可以解决哪些问题??

小程序是近几年移动互联网领域的热点&#xff0c;随着移动互联网在消费端逐渐进入到了存量时代&#xff0c;小程序成为了互联网平台向各个领域垂直发展的重要策略&#xff0c;而广大的中小创业者要想充分利用大型互联网平台的流量资源&#xff0c;小程序也是一个非常重要的渠道…

切换dns批处理模板

网速慢有时候是dns造成的。我们默认使用公司的dns&#xff0c;公司很可能只有两台dns服务器&#xff0c;很容易成为单点&#xff0c;当访问人数多的时候&#xff0c;延迟会变高&#xff0c;所以网址解析很慢&#xff0c;上网就慢。 可以设置成阿里的dns,有些情况下就会变快。但…

怎么快速写python自动化脚本_自动化脚本如何编写?

首先&#xff0c;我们看一个视频 &#xff0c;通过视频&#xff0c;了解下什么是自动化脚本 。这个是我用auto.js写的一个 抖音自动养号脚本 。大体功能就是自动私信&#xff0c;评论&#xff0c;关注 &#xff0c;有兴趣可以先去一下链接了解 。目前编写自动化脚本的语言主要有…

在output 子句和 scope_identity() 混合使用的时候的注意事项

无意睹到一篇旧文档 SR0008&#xff1a;考虑使用 SCOPE_IDENTITY 代替 IDENTITY &#xff1a;https://msdn.microsoft.com/zh-cn/library/dd172121(vvs.100).aspx 日常开发&#xff0c;我们如果在插入记录的同时需要返回插入的IdentityID,通常我们会使用 Identity 和使用函数 S…

从setTimeout,onclick传参看js函数作为参数

setTimeout传参 我们最先想到是这样&#xff1a; setTimeout(doSomething1(123),1000);function doSomething1(content){console.log(content); } 但是这样写&#xff0c;123立马打印出来&#xff0c;并没有等待1s。这是因为&#xff0c;这样写会直接调用doSomething1(123),…

linux上的那些查找的命令

由于工作的需要&#xff0c;少不得要在linux系统上查找各种各样的文件&#xff0c;关于在linux查找的命令有不少&#xff0c;这里小小的总结下。 简单介绍下各个命令的用途&#xff1a; find&#xff1a;实际搜索硬盘查询文件名称&#xff1b;whereis&#xff1a;查看文件的位置…

sprintf函数_三分钟学 Go 语言——函数深度解析(下) 可变参数

接连两篇函数专题深度解析&#xff0c;相信大家已经对函数的语法有了深入的了解。函数简单使用和基本知识解析匿名函数和闭包五一放假期间&#xff0c;我懂得&#xff0c;估计你们都不想学习。小熊这两天因为个人种种令人难受的原因&#xff0c;没有能更新&#xff0c;也没有提…

手工画设计模式的类图

画图成果 面试常考设计模式&#xff0c;往往需要动手画类图。之前面试的时候碰到画类图&#xff0c;往往直奔主题&#xff0c;立即开始画&#xff0c;往往画得很乱。其实面试是一个过程&#xff0c;看中的是思考分析解决问题的过程&#xff0c;结果反而不那么重要。画设计模式…

Reason: image not found

刚生的Xcode8&#xff0c;出现好多Error&#xff0c;有些Error真的太麻烦不想记录&#xff0c;现在这个挺简单的&#xff0c;就记下来&#xff0c;控制台输出的Error信息如下&#xff1a; fix&#xff1a; Target -> Build Phases ->Link Binary With Libraries&#xff…

go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...

利用splash爬取京东商品信息一、环境window7python3.5pycharmscrapyscrapy-splashMySQL二、简介为了体验scrapy-splash 的动态网页渲染效果&#xff0c;特地编写了利用splash爬取京东商品信息的爬虫&#xff0c;当然站在爬取效率和稳定性方面来说&#xff0c;动态网页爬取首先应…

jquery事件绑定解绑机制源码分析

引子 为什么Jquery能实现不传回调函数也能解绑事件&#xff1f;如下&#xff1a; $("p").on("click",function(){alert("The paragraph was clicked."); });$("#box1").off("click"); 事件绑定解绑机制 调用on函数的时候…