了解你的项金博体育官方网站目
金博体育官方网站有了一个good idea,接下来就是要把它做出来,这个代表你idea的东西,可能是是一个APP,也可能是一个网站,或者一个其他什么需要编程开发的玩意,我们称之为项目。我们整个专栏的一大主题,项目管理,管理的就是这么一个东西。
要想管理好它,你就必须真正的了解它。然而我发现,不仅仅是作为外行的CEO或者产品经理,包括很多行业内的程序员同学,对项目的认识都有失偏颇。
CEO可能会说:如何让别人没法仿制;产品经理可能会说:如何第一时间抓住客户的眼球;程序员可能会说:需要用到的websocket技术还不够成熟,兼容性不够……
CEO和产品经理哪凉快哪一边待着去……算了算了,还是回来,没你们的理解和支持这项目也玩不转。金博体育官方网站程序员同学,你还是too young too simple啊!
一种是“高精尖”的项目,涉及复杂的算法、协议、数据结构、底层知识等一大堆即使普通程序员都犯愁的东西。比如Alpha Go,人脸识别,城市交通系统调度这些讲给我们听我们都听不懂的“黑科技”。
另一种就是我们通常接触和使用的“简单”系统。比如知乎,本质上不过就是一些数据的增删改查而已:我写了一篇文章,放到数据库里存起来;打开网页,又能把我的文章显示出来;还能改;不知道能不能删?反正就这样啦,对于外行来说,可能觉得复杂一点的就是怎么“变着花样”的显示,比如凭什么要把我这么精彩的回答放在下面,他那篇狗屁不通的抖机灵的放在最上面……
如何你的项目是前者,你可以出门左转找真正的高手去了,我真的不会,没什么好说的。但万幸的是,我相信百分之九十以上的项目,都属于后者。而且随着技术的发展,会有越来越多的项目会进化成后者。
对于程序员来说,这可能是一个悲伤的消息。但技术的进步就是这样的:软件已经成为一个庞大的产业,一个产业的繁荣需要大量的从业人员涌入;而大量从业人员涌入的前提,必然是技术门槛的降低。
举一个最简单的例子,在我08年左右开始学习编程的时候,AJAX还是一个只有超级大牛才能掌握的炫目绝技,但今天你要是不会AJAX你好意思说你是Web程序员?然而,这是因为你比当年的大牛更厉害么?——反正我是靠的JQuery帮忙。
CEO和产品经理没法理解的话就想想“电脑打字”吧。20年前是有一种职业叫“打字员”的,现在谁不会打字,站出来走两步看看。是我们每个人都变强了么?其实不是的,那时候打字得用五笔,现在99%的人用的都是“拼音输入法”而已。什么?连拼音都不会,咯咯咯,我爸的写字板借给你用。这就是技术进步降低使用门槛的例子。以此类推,难说20年以后人人都会编程哟!
好了,说了这么多,其实核心就一点:破除技术迷信。破除迷信,是为了回归事物的本质。
我这里建议,CEO和产品经理,有机会的话可以学一学编程,写几行代码。不要以为自己是下一个马云,马云真的是一个奇迹,太难复制。而且他不也因为几盒月饼开人,犯了众怒么?我一个很随意的猜测,这和马云不懂编程有一定的关系。金博体育官方网站他不懂前端后端,猛一听到:安全部门人员,利用系统漏洞……多吓人啊!?这是一种人对于未知事物本能的恐慌,就像我当年做装修,工人把漆给刮花了,肯定是个问题,但这个问题有多严重,能不能解决,有没有后遗症?我都是晕的,更准确的说,是“心虚”的。所以就会有很多在懂行的人看来莫名其妙的过激反应。
而对于程序员而言,问题就在于,他总是觉得:现在的技术,我已经懂了。所以如果我要提升,就必须追求更“高”的技术。但什么是更高的技术?有两种倾向:
人各有志,我没什么好说的。但作为项目管理者,一定要警惕这两种人,最好根本就不要让他们进来散播这些对项目开发不利的言论。因为他们根本就不是做我们这种“普通项目”的人,我们的庙太小了,供不起这样的大神。
打个比方,做项目就像修房子。金博体育官方网站不管我们怎么修,都是钢筋水泥砖头河沙,住宅教室写字楼,可能各有特点,但总体上就是那么一回事。设计有规范,施工有图纸,玩不出太多的花来。但上面这两种人,一种是什么材料新他就用什么,传统的钢筋混凝土根本看不上;另一种不琢磨怎么把工人组织好按进度施工,他一天到晚就琢磨着这钢筋的拉力水泥的标号还能不能优化……
不是说他们做错了什么,只是他们的位置不对,他们应该去工程材料研究院,而不是在施工现场。
今天我们的软件开发,早已经走出了实验室,进入了庞大纷繁的应用市场。很多时候,一个软件的构建,更像是造一辆汽车,不是每一个零部件都得自己去造,而是一个零部件生产和组装相分离,基础研究和实际应用相分离的生产活动。所以,从计算机科学里,衍生从另外一个词:软件工程学。
顾名思义,软件开发是一门工程技术,项目管理其实就是一个工程管理。所以有时候想想,“码农”其实不如“IT民工”准确,用软件开发类比建筑工程建设,那么程序员就是搬砖砌砖的民工了。
但软件工程毕竟不是建筑工程,IT民工也不是真的民工,两者必然还是有差别的。而这些差别,是传统行业的CEO、外行的产品经理必须要注意的。
一、项目的改动是可以的。这改动没有拆墙破窗掀房子那么恐怖,但也没有一般人想象的那么容易。
二、项目通常都是会延期的。但这真不是,至少不全是程序员的错。另外,进度吃紧,加人加班通常都是没用的。
三、高手和低手的差距不是一个量级的。虽然都是民工,但一个熟练的砌砖师傅最多能顶两个三个五个刚入门的新人就碉堡了;但软件开发如果真卡住了,一万个菜鸟都比不过一个大神级别的IT民工。
四、软件的维护比开发更重要。只要不是,房子修好了就可以用几十年;但多少当初还不错的代码,折腾不了几年,就七零八落的要散架了。
其实一提笔就卡住了。因为我本来想写的是如何招人,但无论怎样,有一个问题绕不过:如果你自己完全不懂,是很难鉴别一个比你更懂的人的。然后如果你什么都懂了,我写这些又完全没意义了?
扫一扫关注微信公众帐号