在公司待了近2年的时间,做了几个项目,做失败了几个项目,现在是时候做一个小小的总结。老板技术出身,自己出来创业,公司规模10人左右,主要做外包项目,由销售人员去接单,老板亲自去做需求分析,产出一个“系统需求”文档,然后把需求文档交给我(所谓的技术总监),我看着文档开始系统的设计。公司技术方向Java,我来之前公司基本上都是基于SSH的架构做项目,所以我自然遵循这个架构。刚刚开始做系统设计的时候自己恶补了一下UML,也尝试过使用PowerDesinger,EA做过一些类图、流程图等,后来发现做出来没人看,老板不看,开发人员更不关心(每个项目配备的开发人员就几人,而且有些是项目后期加入),再后来我就直接以代码的形式去做设计了,采用OOA/OOD的思想把系统的每个模块的实体(Entity)建立,随着自己对需求的全面深入了解,实体会不断完善起来,这样在系统开发之前基本上能有一个稳定的领域模型提供开发人员使用。除了设计以外,我还会做一些技术难点攻克,比如系统需要调用外部短信接口发送短信等,其实就是公司之前从来没有涉及到过的技术领域。
当设计完成,技术难点被排除,这个时候老板开始让我带队开发了,说到带队很惭愧,到目前为止本人也就是带过3-5人的队伍。一开始我们没有制定过开发计划,没有计划大家可想而知,一片混战。我接手的项目大部分都是web项目,老板会先让美工按照那份“系统需求”中的"原型图"设计出效果图,效果图和客户确认过,那基本上就是让美工做静态页面了(html)。当然与我共事的美工们都很牛,设计加静态页面一个人搞定。就这样我们从“原型图”到了静态页面,我从美工那里拿到一个压缩包,里面的结构如下:
/images/
/css/
xxx.html
就这样我把这些静态资源加入到web工程中,开发人员采用eclipse开发,SVN做代码管理。后面遇到的问题就是美工的工作无法纳入到SVN中来,需要修改一个页面,我都要和美工沟通,然后得知如何修改。后来老板发现这个问题,让美工也用eclipse做开发,这样就解决了版本控制问题。
回到上面,我将开发任务分解到开发人员手上,开发人员拿着自己分到的index.html,login.html,register.html....开始开发了,没有需求,每个人脑子里就看着页面来吧,1个,2个,3个。。。一拍脑袋的说这里有哪些哪些功能要做,Action编写,Service编写,Dao编写,js编写,同事们基本都是从后端写到前端,我们没有定义过什么接口,有些同事有意识,会找我沟通一些接口定义,如何定义,是否已经存在接口可以调用。这是遇到喜欢的沟通的同事,有些同事则不善于沟通,不主动暴露问题,后面遇到的问题就大了,到处散落着冗余代码。
项目要交付了,老板天天盯着开发进度,每天找我要开发进度。没错,我是最了解项目目前的情况,哪些功能还没有实现,哪些模块还没有联调;说实话我心里也没个底,客户逼着老板,老板逼着我,我其实就一光杆司令,于是乎一拍脑袋的报给老板一个天数。就这样我是承诺给了老板,下面就是加班吧,今天不是这个同事被调去做另外的项目(我们总是几个项目一起走,虽然我们就10个人),就是那个同事被叫去维护上一个项目(改bug,需求变更),所有的压力在我身上,苦不堪言,就这样我们做了几个项目。
公司没有测试人员,老板拉着销售人员做测试,销售人员就是这里点点,那里点点,业务浑然不知,就是哪里点出问题了然后记录下来,就这样我们完成了项目测试,项目终于要"上线了",老板在某网租了台windows2000的服务器(独立主机2G内存),跑着1个mysql,1个apache,5个tomcat,由于我们的项目费用里包含了服务器费用,所以基本上公司接的项目都部署在上面,我把apache做虚拟机配置,后面tomcat跑应用,这台机子基本上每天内存都被挤爆,mysql也经常挂掉。
不管怎样项目可以让客户看到了,也就是走到交付这个流程,客户那边测试了,每天交给我们一个测试文档,上面是密密麻麻的问题,有的是bug,有的是体验问题,有的则是最恐怖的,说这个功能不是他要的,他要的是那样的。疯了,于是开始了新一轮的工作,改代码。不改客户不给钱,老板没钱,我们就更没钱,开始新一轮的加班。由于都是外包项目,啥样的客户都有,也都是些小公司,项目本身预算就不高,更可怕的是有些客户没有一个很强烈的愿望想把这个系统做出来,也不愿意投入那么钱,总是挑三拣四的,最后一拍脑袋说这个做出来的系统不是他想要的,后面就可想而知了。需求内容不明确,没有加以严格的确认,客户最后就是不给你钱,你改吧,有的客户给你时间,有的则直接终止合同,很不幸的在我接手过的项目里面就遇到过这样的情景,那个项目做的真是让人心痛,记得那年过年放假前一天我们还加班到晚上11点,其中的苦衷我想只有经历过的人才懂吧。
失败不怕,问题是要学会总结,新的一年又开始了,老板依然信心百倍,发现了我们在项目管理方面的一些问题。之前做原型图是基本上就是拿个execl画画,现在他开始使用RP了(Axure RP Pro),他基本上是去客户那里做需求分析,然后把需求转化成原型图,但我们没有做过原型图的评审,原型图基本是客户那边定了,我们就定了。当需求“全部”转化成原型图的时候,老板要和客户发一封确认邮件,客户确认了以后,这个原型设计就定稿了,不会修改,除非是一些设计十分不合理的地方影响到系统的实现,这个时候跟客户发一封需求变更邮件,要求客户确认,按照这个方式客户开始重视起来需求的确认,验收的时候就是按照这个原型图验收(客户并不知道这个原型图所表达的全部东西是什么,如有哪些是非功能性需求)。
和之前做项目一样,需求确认完毕,又开始了系统设计,总结之前的教训,我现在不仅仅要提供一个稳定的模型,还要定义每个业务的接口,我发现在我定义接口的过程中,不得不深入的了解需求,结合原型图,定义了一堆接口,把整个项目的模块划分,每个url都定义好,甚至是前端的每个页面我都建立好提供给前端工程师使用。这样整个项目的接口定义,类的命名,页面命名,在还没开发之前就基本搞定了,如果后面有新页面加入也需要我来完成。
我们开始制定开发计划了,老板给我一个派单表,上面大概就是这样的格式:
功能组 编号 页面 完成进度 责任人 记录时间
权限体系 1 后台-登录 100% xxxx ########
按照原型图到页面,每一个页面划分成一个任务,计划只需要做到每个页面需要的工时。在做的过程中我们发现站在客户的角度上就是看到了一个可以用的界面,但实际上这个界面所提供的功能后面具体实现很复杂,比如需要调用其他模块服务,我之前提到过,我已经把系统的接口都定义完毕,不会存在等待其他模块服务完成才能写自己的那块,大可放心的调用使用那个接口,至于有没有实现,不必关心。我们没有测试人员,于是我开始尝试做“开发测试”,针对自己的写的每个服务做单元测试,发现必要的单元测试很重要,一定程度上保证了代码的质量。但是后来老板不高兴了,说这个浪费时间,就这样我们走的还算顺利。殊不知,之前的的问题又来了,张三被拉去做那个项目,李四被拉出去维护上个项目,我不知道大家玩过"知乎"这个应用吗,如果给你是老板,你认为应该配备多少人手?不瞒大家,目前项目就2个人开发(包括我)。项目本来就出于客户的压力在工数估算上予以妥协,怎么办?加人手哇!这么简单道理老板能不懂吗?悲剧的是如何加呢,今天不是张三离职,明天就是李四离职,有点经验的人都选择跳跳槽涨涨干粮了。
最后我选择了离开公司,要感谢这近2年的工作,让我看到了一个创业公司的艰难,更深知项目管理的重要性。也许今天的离别是为了明天更好的相聚!再见那些曾经一起奋战的兄弟们,祝你们美梦成真!只要我们脚踏实地,相信明天的软件行业会更加美好!
分享到:
相关推荐
因为USB设备标准是在Windows 95之后才制定的,而当时DOS的老东家微软早已决定放弃继续发展其MS-DOS了。这样一来,当您想在DOS下操作USB设备的时候,往往只能望洋兴叹了。即使您使用的系统是Windows,当Windows崩溃要...
我自己是本科毕业后在老东家干了两年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时候是非常非常虚的。迫于心慌,我好好思考了...
红色在网页设计中常常被用来传递能量、激情和力量,因此这种色彩选择可能适合那些想要传达强烈信息或吸引特定目标受众的公司。模板设计通常包括预设的颜色方案、布局、字体和图像,这些元素都是精心搭配的,以确保...
- **好聚好散**:在决定离职后,要确保与老东家保持良好关系,提前一个月提交离职申请,保证工作的平稳过渡,避免留下不良印象。 - **模糊处理**:在回答离职原因时,可以使用较为中性或个人化的理由,不直接批评...
为什么每一次跳槽他总能收到老东家真心实意的祝福?作为第一职业经理人,他如何规划职业生涯?如何面对职场和企业危机?唐骏日记,告诉你唐骏最真实的成功经验。经济危机时刻,看唐骏,学本领,创造人生辉煌!马云、...
,然后16年6月工作,然后半年后跳到前司(一个创业型互联网金融公司,换句话说,是放贷的)做风控工程的开发,主体而言,在老东家做的事偏向于基础服务和组件,同时偶尔会做一些业务需求。因为离职比较突然,同时我...
【文档标题】提到的核心主题是跳槽后的职场规则和注意事项,主要针对的是那些在IT行业中频繁转换工作的人群。...跳槽者需要谨慎处理与老东家的关系,同时在新公司中展现出专业性和适应性,以获得长期的职业发展。
这些特质使得他们能够在激烈的市场竞争中迅速崛起,有的甚至与老东家建立了紧密的合作关系,共同拓展生态系统,如滴滴打车的程维和蘑菇街的陈琪,他们的创业项目都与阿里巴巴有着深厚的渊源。 其他派系虽未详尽列出...
2. **工作交接**:文中提到“对老东家的最后一次的交代,也是对自己在公司工作的一个总结”,这强调了离职时应进行详细的工作交接,确保下一任接手者能够顺利接替职责,避免因信息缺失造成的工作延误或错误。...
* 老东家商业秘密致富 —致使原公司损失136万:该公司原技术人员王某、陈某、饶某3人曾在“东进”公司参与D160A电话语音卡的研制开发及生产,并与公司签订有保密协议,领取保密费用,对其在“东进”公司加密的经营...
- 在技术研发方面,PICO与周宏伟的老东家歌尔声学保持着紧密的合作关系,歌尔声学不仅在PICO的发展过程中起到了关键作用,还在PICO被字节跳动收购后与其签订了长期战略合作协议。 #### 三、PICO的市场表现 ##### ...
我的老东家是一家大型跨国电信设备开发商,曾具有辉煌的历史。我还记得在公司110周岁的生日庆典上,一位高管致辞说:“110年,这不是奇迹,是成绩”,令人不胜欷歔。遗憾的是,公司在.com泡沫中遭遇重创,一蹶不振。...
我是腾讯的杨春文,老东家在百度,目前在深圳腾讯,做的主要产品是web相关。我本身做NOW直播,所以会讲基于腾讯云的直播小程序,然后是小程序终端开发,总结一些经验点,更注重于开发者和一线工程师所关注的包括性能...
近从老东家离职,跳出来跟这几个以前的老同事,拉了一个创业团队,准备干一票,去之前也了解了一番,此次将使用C语言来开发,对于毕业之后一直从事C++面向对象思维编码的我来说,虽然不舍,但是仔细想了下,这都不是...
离开老东家快一年了,在半休息半工作的轻量负荷下,终于可以系统的做一点事情:1、把快给管理荒废了的撸码捡起来;2、补补 DeVOps 这条 Pipeline 各种工具生态发展;3、看看 React,VUE,Flutter 这些之前根本没有...
离开老东家快一年了,在半休息半工作的轻量负荷下,终于可以系统的做一点事情:1、把快给管理荒废了的撸码捡起来;2、补补 DeVOps 这条 Pipeline 各种工具生态发展;3、看看 React,VUE,Flutter 这些之前根本没有...