00:00
第一步我们做一个项目呢,第一步我们应该是需求分析,对,是这意思吧,需求分析第二步咱们应该做什么呢。第二步,你们以前做项目的时候,第二步一般干什么事?对对对对,第二步其实就到了我们的设计阶段,第二步就是我们所说的设计。呃,软件设计或者项目设计都行啊,我们叫做设计阶段。第三一步咱们应该做什么了呢?啊,第三一步就是我们的代码实现,大家大体了解一下啊,因为有些东西没有做过,项目过程还是要的,就叫做代码实现,叫实现阶段实现的,实现阶阶段呢,就是我们所说的编写代码,走代码啊代码。OK,第再来一步呢,下一步是什么呢,不要。
01:01
呃,实际上就是测试阶段是吧,测试好测试阶段。叫测试。好,呃,实际上测试阶段和这个实现阶段,它不是说呃全部写完再测试是吧,其实他这个地方应该是一个螺旋递增的,这条线画的不对,它应该是准确的讲应该是这样子的啊朋友们,它应该是这个样子的。诶,他应该是过来。然后呢,还有一条线,诶,它也可能是回去,诶,刚才我们画了一个,还有一个箭头上哪去了,还有一个箭头是这样子的啊。这样子。它是这样螺旋递增的,就说一边写代码呢,一边测试,它先是有一个单元测试,后边还有一个集成测试,对不对,好,这个测试完了过后,咱们咱干干什么呢。那个高凡同学,你们这个测完了过后做什么事呢?
02:03
呃,就是项目实施呗,看到没有就项目实施,所以说,呃,高凡同学呢,就是有点不敢说高大上的话,老想说他,他老想透露一个就是写代码呗,这叫什么呀,叫实施阶段。实施这个实施啊,实施阶段,实施阶段完了过后,还有一个什么阶段啊,是不是对一个好大一点的项目,其实还有一个阶段叫维护阶段。因为你你实施,你不敢保证你项目绝对没问题吧,哪个人敢说绝对没问题,就算微信这么牛逼的项目,这么牛逼的软件,你说他没bug吗?微软那么牛逼的一个一一个操,那那个公司他也经常经常搞个什么漏漏洞补丁呢,对不对?还有一个叫做维护阶段,各位朋友大体呢,就是这么六个阶段,那么六个阶段呢,时间怎么分配呢。你们要来做项目,别人问你,你做过项目没有,你们去了肯定要写好多项目经验的,对吧,管他是真的假的,先写上再说呗,那问你问你这个项目时间怎么分配,你说。
03:06
就写代码呗,那完了我们来看一下,首先告诉大家,没有一个很标准的,为什么呢?因为一个项目的大小决定于你这个分配,你比如说。这个项目就75656万块钱一个小项目,我估计需求分析都没有,直接上来就干代码了。对不对,但是好一点项目啊,稍微上一点档次的,比如说像上百万上上百万的,甚至上四五百万这种项目,它的需求分析占的比重是比较大的,一般来讲哈,各位这个地方我我们就说这个,我我们就按百万以上的级别好不好,咱们就别整那个1万块钱啊,有就说我接个小活。多少500块,500块我们就都都没这些啊,直接干代码直接就可能就是粘贴拷贝完活对吧,咱们呢,就是说按照一个项目稍微大一点的,比如是200万啊,或者200万到1000万的样子。有些项目投资很大的啊,有些项目投资很大,那么这个时候呢,一般来讲它占20%。
04:05
一般来说,呃,30%就项目大一点的啊,我们说我们说的是大项目啊,你不要说了,说我们需求分析好像从来没搞过,我们我们就按这个200万到500万的项目吧,好500万万啊,好大项目嘛,大项目才才会有这个分析。2ONE。那么这个时候呢,设计阶段啊,设计阶段呢,这个地方一般时间也比较长得有20%。啊,设计阶段2%,也就前两头占的比例就比较大了,实践阶段呢,说实话啊,卡梅的各位同学讲,其实时间阶段占的时间不一般来说不会超过设计阶段,一般来讲是这样子的,我在20%就够了,这样子就用去了我70%时间,余下的30%分给他们。一般就是3222这个,呃,3223这个比例,就说这个地方走了30%,这样走了20%,这样走了20%,统共就拿走了70%的时间,那余下的30%就他基本上是一个合理的分配,但是前提是一个大项目,如果是小项目的话,需求分析可能。
05:12
就很短了,你比如说没什么太多需求对吧,实际上实际上这个刚才你们做的项目大不大。有有大的,有有上几百万的吗?100多万是不是需求分析可能要长一点的吧,对,如果说说是10万块钱几万块钱,可能就分析就稍微稍微没那么长时间,那么我先说一下这个每个岗位啊,我简单聊一下,本身这个地方不想展开说,简单说一下需求分析呢,这个地方主要是一个叫需求分析师来说。需求分析师这个人来来做这个事情,需求分析师一般要懂什么呢?至少至少他需要满足两点,第一个他必须懂技术,但技术不一定是最强的,关键是要懂什么呢?懂业务。懂业务。
06:01
你们刚刚参加工作,你们先不要去搞需求分析师,因为呢,一般来说这个需要有一定这个阅历的人,需求分析师一定要懂技术,同时要懂业务。如果光懂技术,不懂业务,搞不了这个事,你打个比方说,现在咱们同学有些大学刚刚毕业的,大四毕业的,你去做一个电力软件让你,让你去搞这个需求分析,我估计你一头雾水。电力行业根本不了解,你去了国际完全不懂,而且真正搞需求分析的人,他一般是要干什么呀?是要到这个对方的公司里面去常驻啊,你比如说以前在用友的时候,我们用搞用在拥友工作的时候,那很多这个搞需求分析的人,你都看不到他在这上班,诶我好久没见,你最近还好吗?啊,我在还好,你在哪去了?我到那个石石石油那个搞勘探石油那地方去待了一个月,待了医院干什么?搞需求分析,为什么要到这去呢?因为你要搞清楚别人业务逻辑,你得跟人家那边管事的人沟通,你要跟谁管管事的沟通,你得给那边的那个说了算的人沟通,也就是说这里边有一个人。
07:10
我这有个笑脸,上哪去了?笑脸呢,在这这个笑脸这个人他是公司里面老大,这个人他是说了算的人。他这个人呢,就说你的需求分析要跟他沟通,他拍板你才敢做,不然做出来东西人家不要,他老大一般时间都比较紧张,所以他一般趁着趁着他工作有时间的时候赶紧,诶今天咱们约两个小时说一下这个需求你是怎么想的,好,那就赶紧跟你聊聊,说说你要要要到那边去上班,工资还是拥有给他发啊,啊整完了过后一个月,终于把这个需求分析搞定,需求分析就是要干什么呢?他要得到一个东西,他要得到一个最终这个结果啊,他出的这个结果是什么?同学们,他要得到一个需求分析报告。需求。
08:01
需求分析报告,也就是说他要搞清楚人家到底要做成什么样的东西,这个事他做完了,好,其他事我不管了,需求分析师基本上就不管这事儿了。当然,如果需求分析师是项目经理,他要跟着往下走下一个流程。好,第二个流程的设计阶段,设计阶段谁来做呢?告诉大家,这个一般是项目经理或者是架构师。为什么说或者呢?因为不同的公司不一样,你比如说有些公司他就项目经理,就本身负责全体,他整个就是包括整个设计啊,全管起来。对吧,像有些专业一点的公司搞架构的,他就搞架构,把架构搞起来,他架构主要干什么呢?第一个用什么技术,第二个用什么操作系统,第三个用什么框架,咱们用现有的SSM,还是自个儿搞一个框架起来,对不对?那肯定要研究这个东西嘛,用什么数据库,到时候我们这个服务器集群是一层、两层还是三层,撑不撑得住,因为你需求分析出来过后,你肯定要说我将来这个项目要按照支撑千万在线好,这个设计肯定不一样,你如果说一分析。
09:05
下来就说我们这就是一个内部系统,200多个人用。他随便用,随便用什么技术都行,这是第一个项目经理他要搞,他要把这个架构搞清楚,架项目经理他要把这个架构搞出来,诶架构出来了,诶very good嘛,架构第二个呢,他要搞什么,就是属于架构啊,这边就涉及到很多了,比如说呃,技术用什么开发语言,开发语言对吧,用什么这个框架对吧,用什么数据库,操作系统等等等等啊等等等等,包括包括其他的乱七八糟东西,然后呢,他还要干什么事情呢?他还要做一件事情就是选人。项目经常是要选人的啊,朱老师为什么要选人呢?因为他不可能自己一个人干,他得选人,你们将来参加工作以后,其实你们是属于开发部的,你们属于开发部,但是你属于哪个部门,属于哪个项目不一定,比如你跟这个小小田坐在这,坐在我旁边的,有可能我在这个U8部,U8这个项目组,他可能是在CRM组。
10:06
这是有可能的,所以说如果我这个U8这个项目呢,我这个U8这个项目做的非常漂亮好,我可能每一季度都会有奖金,有项目奖,每一季度我也给我发个2万,对吧,小田呢,因为他那个项目CRM不行,可能过了三年三个月过后就直接开掉了啊,我们不需要这样子的,是这样子的,你不相信一个微信,微信就是当时做的时候不是说有三有两个两个项目组还是三个项目组在搞嘛,最后张那个小龙的整出来了,其他的我们就淘汰了嘛。就这样子的,就这样子选人,那选人的时候就就很重要了,如果你的技术很牛逼,比如说这个人,诶小田,他又会Java,又会这个done,那有可能他能力很强,他同时跟两个项目组,那他拿到拿到公司就就是两份double。啊,所以说这个技术好是有好处的,那有些时候我们以前有些学生去了过,说韩老师,哎,我现在我叫这个PHP,现在你要我们转型了,要全部用Java,我不会我我被淘汰了,也有那样子,我说老师我会Java没要用PP,我不会,我我也被淘汰了,对吧?所这都有可能的,所以这选人呢,就是也是很重要的啊呃,所以说我们告诉大家一个小技巧,经常呢,要跟这个这个管事人交流交流交流,别人有一天做一个特别好的项目,你赶紧进去。
11:18
有前途的项目赶紧去进去,如果这个项目冷门项目,人家在做实验品,你还是画个问号啊,你说这个我我对这个项目不感兴趣,我比较喜欢什么东西,就该多交流,人家就把你拉过去了,明白吧,最后说说一个什么东西呢?各位这个要出的结果啊,结果就是一个设计文档。就是要设计文档要出来,这设计文档是什么玩意儿呢?比如说吧,最重要的就是各种图类图啊,什么类图啊,还有这个像这个什么优那个实例图啊,还有这个叫做流程图啊等等,还有什么呢?还有一个最重要的数据设计,这要出来了,基本上数据库要设计出来,这是最核心的,同学们都知道啊,数据库其实是一个项目的核心。
12:01
这个高凡你们做过项目,你们知道,呃,对一个大的项目来说,数据库设计一定是要有经验的人,对吧,没有经验的人是不让你去设计的,你你设计过数据库吗?没有是吗?看到没有来非常档次,我们去了过后,我们直接设计数据库,因为没有人嘛说,呃,老韩你赶紧设计一下,其实我也不太会搞了搞,然后又被骂了一通,所以我又想起被骂的经历,然后搞了完后,哎,那个我们那个CTO呢,这谁干的?我说是我好过来过后,你这个数据库设计有问题啊,你这个三方式都没满足对不对,你有个字段有问题,这个好他要告诉你怎么写,你这个成长是非常快的啊,数据库设计呢,我们没有专门的课程,说实话我们将来就是讲一个项目,两个项目,你对数据库设的设计的理解还不到位,你只有在在真正做过一个大项目的时候,你才知道数据库才是一个项目的核心,因为哪些表,哪些字段没有一点能力的人根本驾驭不住,你整出来就是个。
13:02
跑不起来的东西,好了,这个地方最重要,数据库核心那整完了过后,其实还有一个东西也要出来,各位同学现在比较流行的开发方式呢,是什么方式呢?叫原型开发,原型开发那个那个高反应该也听过,对吧,现在原型开发就是说在这种除了这些东西之外呢,还有个特别重要就是界面得出来。界面原型必须出来,如果界面界面原型出来有什么好处呢?各位朋友界面原型出来最大的好处就是可以直接可以直接跟这位朋友进行交流和沟通了,哪位朋友呢?就是我这我我趋向到哪去了,就是跟这位朋友大佬进行交流和沟通了。你可以跟这个大佬说,诶大佬,我们将来这个做出来样子大概是这样子的。你看满意不满意。颜色啊,功能啊,因为这个原型它有,它有专门那种画图工具,啪啪啪就画出来了,连页面都不需要,画的非常漂亮,也非常到位啊,我们将来做出来的东西就这样子的,你看OK不OK,大佬一看啊。
14:09
这个功能是不是还少了点加点好加的时候呢,这个地方就要跟他交流和沟通,一般来说功能他不会再加了,他只会对界面呢,还有一些这个稍微提点意见,其实他也不懂,因为我们中国的好多这个客户不成熟,中国的成中国的客户呢喜欢这么干。诶,那个软件有这个功能,我不加进去,诶那个软件有功我加进去,如果分析师不懂。啊,你叫我加加进去加进,等到最后设计的时候,这个架构是就要骂人的了。价格是这这这东西根本实现不了嘛,对不对,或者说一实现成本太高了。成本太高了,我昨天好些同学最喜欢问我这个问题,说话都说我现在接了一个活,你能告诉我我应该对问他要多少钱吗?你们知道这个项目怎么交钱吗?哎,高好,你们以前那个项目就是去跟人家谈这个要要问对方要多少钱,你们你们谈过没有。
15:07
一般三种标准呢?对对对,估计他也没谈过啊,那这这样子的,他大致知道,他大致知道实际上是这样子的啊高凡同学,其实这样子,我告诉你他是这样子的,他其实是这样子的,首先看功能,你这个功能有多大,这是一个功能,第二个你将来这个硬件开支,这是两大块,人工其实是很高的,那人工我就要算,诶你先告诉我你要多少时间完成,你先告诉我要多少时间完成,好对方说两个月出活,两个月出活我找的人和三个月出活找的人不一样。你比如说你说两个月把东西做出来,另外一个说半年做出来也行呢,好,如果是两个月,那我就要找熟练的,熟练的开发工程师,那熟练开发公师一天挣挣多少钱,这个大大是几个范围的,比如一个比较成熟的,比较有经验的Java工程师,一般来说每一天,每一天的薪水,我们假设按工作日啊,假设他是2万块钱,你合到每一天是多少钱,大概算下来。
16:09
啊,1000块钱,那1000块钱的话呢,好,你可能还些什么,其他开销就多算一点,比如说算1100,一千一好,这个我整个工时量,他算出来是多少人多少天,比如说我这20个人要20天完成的,就20乘20,再乘以这个,这个一千一千一好,这就是人工费,人工费这是我的成本啊成本还有硬件开销我要加进去,比如说你服务器,你这个带宽我要给你买起来,是你负责还是我负责好,这这硬件好,整个算下来过后,我要算我的利润率,比如说我的成本,假设整个是算下来是30万,我希望从30万我要赚到30%或者40%,OK,那我就50再乘以40%,再做20万,我总总价报70万。那么报了70万过后,看对方懂不懂行,如果不懂行的话,再加30万对不对,如果懂行的话就算了哈,懂行的话就就算了,别再这么搞了,好,这个地方你还要涉及到还有很多,还有很多突发事件,比如说有些人喜欢跑过来问你摘要功能,所以说这个原型很重要,原型就告诉他是不是要不要这个功能,我保证按照这个功能给你完成,对方一拍板说OK。
17:21
那你就签字画押,就写一个写一个大概是一个大概的是一个确认,说说诶什么什么时候完成,功能如何好确认了,这个家伙以后再也不能找你麻烦你,不然的话我跟你说你麻烦永远完不了,你刚刚做了一半,你把这个东西做完了交给他说。哎,这个不是我想要的哦。我现一般现在软件公司先付20%有30%有付一半的,后面钱不给你。啊,不给你天天找你,你也受不了,知道吧,你会受不了,好这个地方就是这个设计文档有内图的,到了第四个阶段,朋友们到了第四第三个阶段,实现阶段,实际上就是我们的所谓的软件工程师上,也就是我们经常所说的一个叫做什么什么的人呢,叫做这个东西叫叫马龙。
18:13
啊,马龙听过吗?你们先前要。干一段时间马龙,马龙就是种那个那个那个对代码的,那么实际上呢,这面也也有档次之分,有些马龙是很厉害的。高级马路。你们先去了,可能是初级马龙去了过后呢,去了过这个软件公司,说白了就是实现各个功能模块,因为你这地方已经已经把模块画出来,你就是实现各个模块,各个模块啊,各个模块,你要做的事情就是把各个模块写好,写好了过后呢,你一般来讲写好写完了过后这个这个测试阶段,这谁来干呢?软件测试工程师。软件测试工程师,他测你软件开发工程师的代码,他看诶好不好用好用过,如果不好用你就赶紧给我重重重新写啊,然后呢,这个他就不停的在这螺旋竞争,所以说你看以前我们在用友上班的时候,对吧,我们开发工程师和软件测试工程师我们不在一起吃饭啊,为什么呢,大家都怒目而视啊,因为有时这个这个这个这个bug给你发现了,你解决不了,还还很郁闷。
19:27
有些bug不好解决,为什么呢?因为你在调,因为A工程师调了B工程师的代码,其实这个错误是B的,但是人家软件工程说是我从你这发现的,你直接去找了一个B工程师。螺旋的知道吗?这个是最可怕的,所以说那那叫软件那个耦合度太高了,反正这两个人呢,在一般来说啊,就是呃,反正是经常交流啊,经常交流软件工程师,现在我以前我我见过在中国最好的软件工程师就是用友的啊用有的软件工程师特别牛逼的,为什么呢?跟他们做的这个东西有关系,他们做的是财务软件。
20:03
这个财务软件是要求很高的啊,当时那个拥有的软件测试工程师的人数几乎可以跟开发工程师达到1:1。就已经很高了,其实国外有一个理论叫做1:3,什么叫1:3呢?就一个开发人员,按理说应该配三个软件测试工程师,但实际上在中国反过来都没有啊,三个开发公司,一个测试都没有,甚至。都是自娱自乐啊,自个写完了自个测,测完了过后OK上线啊,就这么干的,因为这个软件工程师呢,就是现在不一样了,现在逐渐的在重视这个事了,因为现在已经各个公司PK很厉害了,现在你看中国人用这个软件也也很有这这种意思了,就说哪个软件好,哪个软件不出bug我就用谁,如果说你这个产品老出bug的话,麻烦了别人不要,你看这个微信还是很少bug的。对吧,所以他他这个软件工程师是非常厉害,就得测游戏也是你拿一个游戏拿过来过后,天天出bug,你好不容易打击升级,升级到了个十,突然一下,诶打开只有一级了,对吧,你你还跟他玩什么呢?对吧,这个很重要的,好这个地方就是软件工程师,那么这个地方呢,我们就各种软件工程师了,比如像这个Java,学Java的对吧,咱们学这个PHP的,咱们学donut的对吧,还有像这个go语言的等等等等很多语言。
21:26
软件公司,那么测这个测试工程师他要学什么技术呢?他至少要要有这么几个技术,他要黑核白黑盒测试。他会这个黑盒测试,还会白盒测试,白盒测试,这个白盒测试呢,还有一个叫灰盒测试。黑盒黑盒子啊,我就不写了,黑盒测试是最基本的黑盒测试,也不是说你随便找一个,呃,那个菜市场买菜的大猫就能干啊,他也干不了,K测试他是这个意思,就是说我用这个软件,我用第一下,第二下,第三下出了什么问题,我要写个bug报告提交过去,而且一定是点什么再点什么,再点什么就出现一个错误,这才是一个有效bug,不是说诶搞黑,我一用诶错了。
22:13
下次如果不出现这个错误,说明你这个软件工程师没有发现bug,明白我意思吧,这那种,如果你们以后参加工作以后,哪个工软件测试工程师给你说有bug,你就把它拉过来,你你就说怎么操作会出现bug,比如说我们第一步打开软件,第二步我们点击一个什么按钮,第三个输入什么数据,再一提交出现bug。这才是一个有效bug,而且一定要稳定的出现,如果说软件这个公司是告诉你说他有时候出现,有时候没有出现,那你告诉你说这个你再去找找。因为这种错误说实话很难,就是他找不到规律的那种,那种错误是最难的,说这个软件工程师也不是说白白拿钱的,白河测试就不一样了,白盒测试档次更高,他需要写代码,他是要懂代码的,他要懂代码才行。
23:03
他要懂代码。呃,像像这个我们我有个朋友,他在一家外企做了个电信的,电信的这个,嗯,这个测试的一个项目经理,他们就用Python啊,Python在Li下面做运维,写各种这个用例啊,也也行,所以你像现在这个软件工程师,好多人也要开始学程序了,不写不不懂代码是很难混下去的,好这个阶段终于你搞完了,过后呢,到了实施阶段,实施阶段谁来干呢?还有个工程师叫实施工程师。实施工程师也是一个职位,这个实施工程师是干什么事情呢?简单的讲,你这个项目写完了,你得上线,你得上线的话,你得搭服务器,你得各种配置好,这工作就要实施工程师去做,像好一点的公司,像惠普、IBM的实施工程师待遇还是很不错的,一般来说别人到了你们去出差是吧,一般是至少是三星级的这个宾馆对吧,还是还是很不错的,待遇还可以,一出差呢,有这个补助。
24:04
有补助,但是呢,如果是小公司就惨了,小公司的话,他让你把你发票到某个某某个地方去,好,那你自己就在那地方,呃,把这个东东西弄完,弄完了过后如果有问题就找你了。说实时工程师呢,就说我以前有些同学,有些学生呢,干一段这个软件开发,实在干不下去了,觉得干不下去就转实时工程师了,经常打电话说,诶,韩老师,我现在你知道我在哪吗?我在我在海南,又一打电话,你知道我在哪吗?我在新疆啊,所以说实施工程必须要具备一个一个最基本的素质,那就是身体要好啊不,你身体不好的话不是,呃,我有一个同学也也有点意思,那个以前我找Java是零几年,0706年带了个学生,他是北京人,哎呀,一上课的时候就天天睡觉啊,一睡觉吧,他流哈喇子,他流哈喇子吧,他有时候还打呼噜,那我受不了,我就跟他说,我说那朋友我们聊聊,我说你睡觉。
25:00
因为他们那些混的以混为主,知道吗?就把这个培训当成一个大幼儿园,我我也不敢说他,因为长到一米九,你知道吗,真的真的很高,他以前是干保安的,我又不敢说他,他每次在说韩老师,你讲课讲的可好了,我就是听不懂啊,不气人吗?然后说完了我就问你,我们聊了,你到后面去睡,我有一个要求你,你睡觉你就在后面,不要让人发现,而且呢,尽量不要发出声音好不好?哎,他还是比较配合我,还是很给很给老师面子,后面找工作找不到嘛,找了一个月还找不到我有一天他打电话给我包涵老说我找到工作,我说你还不错啊,我我很吃惊哦,他没有找到工作呢,他说。明天我就要出差了,而且公司给我配备了一个IBM笔记本,而且工资是8000,那个时候8000不错,我说你怎么要出差呢?他说我要到那个新疆有一个油田叫塔,那个塔林就就我忘是哪个油田,是新疆一家油田啊,去了过后,他说去了过后一呆待一年待一年,那实在是没人去了,你知道吗?他终于找到一份工作,我说你去成长吧,他说虽然他没怎么听,但是基本功还是有的啊,基本功还是有的,去了过后啊,他说那个后面大概干了十个月,提前回来了他,他说我还吃饭,韩老师,我去了过后存了不少钱。
26:17
我为什么?你不是挺爱花钱的吗?实在是花不出去,那边那边吃饭别人管,吃饭别人管,然后那个这个这个睡觉这住宿费也不用掏了,好那个地方又又不怎么通网,好他就自己说出了一点钱,呃,亏了,现在还是可以,你看这些也成长起来,我真是我,我真是发现一点啊,同学们真的坚持很重要,我有好多学生我都已经完全觉得不太可能了,人家扛下来了,现在动着项目经理还动不动说这句话,韩老师,我现在招了几个学,招了几个新来的,技术可差了啊,其实他当时真的差不多,我都不想说了,好,我们说实施工司,大家尽量先暂时不要去干实施工程师啊,等到以后想旅游全中国的时候可以去考虑啊,维护阶段,维护阶段呢,一般来讲没有专业人员,他一般这样子的啊用户。
27:08
他们是用户发现问题了,发现问题呢,他把这个问题返回,返回给这个一个一一个对接的人,肯定这边会对一个对接的人发现问题呢,诶,他就会在对接,对接这边就就进行这个调试修改啊,所以这个项目呢,就是这么一个流程啊同学们好,我就简单的讲到这里啊同学们。
我来说两句