随笔分类 -  研发管理

摘要:以往的开发都是模拟一般的传统工业进行的。人们把软件当做一个产品,一个流水线上的产品。所以就出现了先搞可行性分析(其实真正开发的时候没人去搞这玩意儿,既然都要开发了还分析个什么劲~),然后是需求分析,遇到负责的开发团队偶尔会画画图,要是遇到奇葩的开发团队很有可能一个需求闯天下了。整个软件的开发周期中只有一个需求文档其他的什么都没有的开发团队随处可见,因为没有文档所以做不了升级所以只能推倒重来,于是开发人员感觉文档更加没用,如此一来恶心循环。(这个关于文档的内容不属于本篇博客讨论的话题)下面就带着读者来看一下敏捷开发是如何从传统的开发模式演变而来,或者说软件开发是如何一步一步的走向“成熟”(成熟是 阅读全文
posted @ 2013-09-29 17:54 郗晓勇 阅读(1070) 评论(0) 推荐(0)
摘要:好吧,我承认题目就是个噱头,无聊的时候自娱自乐是一种病,得治!今天要说的话题就是单元测试。从题目说起,厨师和司机都是非常常见的职业,在他们的职业生涯中有着各自的单元测试(其实单元测试无处不在,这里只是举一个简单的例子而已,请大家领会精神)。菜桌上的每一道菜所经历的每个步骤都有单元测试。从种菜开始菜的种子要经过精心挑选的必须成活率符合标准才会发放到各地的种子站。然后农民伯伯辛苦种菜拉到菜市场,到了菜市场想卖出去必须得有营业执照(不怕城管的好汉们除外)还得有卫生许可等等吧,每一步都是一个单元测试。相比而言那种自产自销的农家作业要么规模小要么质量达不到保证。和司机有关的事物更是如此,每辆在马路上行驶 阅读全文
posted @ 2013-09-25 15:57 郗晓勇 阅读(554) 评论(1) 推荐(1)
摘要:刚接触敏捷开发时候很是不适应,单单就没有文档这一项就感觉很别扭。什么都需要去问旁边的同事。开发团队的人也说这是敏捷开发没有文档。我也就信以为然了。现在重新审视一下文档这个东西不觉发现其实敏捷开发的出现是有其道理的。软件开发虽说是开发,但是从整个软件的生命周期来看大部分的时间都是在维护,以前一直把软件开发当作修建建筑,现在想想这么比喻是有缺陷的。建筑一般盖好之后轻易不改变,要改变就是推倒重来。但是软件不是这样的,一旦产品上线这个产品会经历用户的检验然后产品升级通过一遍又一遍的迭代,逐渐的这个软件变得越来越好,就像windows系统似的。与其说软件开发是一个制作过程还不如说软件开发是一个从普通逐步 阅读全文
posted @ 2013-09-04 22:58 郗晓勇 阅读(580) 评论(2) 推荐(0)
摘要:概念(来自度娘)系统优化原来是系统科学(系统论)的术语,现在常用作计算机方面的术语。它尽可能减少计算机执行的进程,更改工作模式,删除不必要的中断让机器运行更有效,优化文件位置使数据读写更快,空出更多的系统资源供用户支配,以及减少不必要的系统加载项及自动启动项。当然优化到一定程度可能略微影响系统稳定性,但基本对硬件无害。系统优化的一般步骤分为五步,不同的公司可能会省略其中的部分文档,但是大体的思路是一致的。1、发现问题一般性能的问题无非是系统工作效率低下,最常见的就是对数据库的CRUD操作缓慢、导出数据无响应等。有了问题我们应该精准的定位问题,尽可能的将问题的描述量化。在这里可以借助相应的工具进 阅读全文
posted @ 2013-05-28 10:44 郗晓勇 阅读(375) 评论(0) 推荐(0)
摘要:开发当中常常听说“业务”这个词,什么“业务为王”之类的词不绝于耳,那么什么是业务?百度上的解释是:“‘业务’更白话一些来说,就是各行业中需要处理的事务……”。软件开发的目的就是利用计算机帮助人们完成自己工作中的事务,可见业务对于软件开发来说多么的重要,也就是说只有把业务搞清楚了才能进行软件开发,否则一切都是空中楼阁。那么到底什么是业务,怎样才能搞清楚业务?听到的故事一个农民出钱请科学家帮一忙,农民的要求很简单,请科学家让自己家耕地的牛吃的是平时的十分之一,干的活是平时的十倍。然后科学家开始想办法,最终得到的结论是:要满足农民朋友的需求就必须改变牛的基因,于是科学家们开始了这个宏大的生物工程…… 阅读全文
posted @ 2012-11-12 09:12 郗晓勇 阅读(327) 评论(0) 推荐(1)
摘要:自己之前的想法是项目经理应该是技术大牛,或者起码应懂一些技术,因为只有这样才能更好的确定客户所提出的需求是不是可以实现。但是现在又有了一些新的想法,项目经理不需要懂技术,或者说项目经理不懂技术反而更好。讨好客户如果项目经理懂技术就会被技术所束缚,简单来说就是在客户提出需求的时,项目经理根据自己已有的技术水平做出判断:这个需求无法实现,或者实现起来工作量过大。于是很有可能当面就把客户的需求给回绝了,一次两次还是可以接受的,如果不巧这个项目经理的技术水平低、见识少,那么就会把大多数有难度的需求都给回绝。长此以往,客户便对这个开发团队失去信心,“怎么什么也做不了呢?”。但是如果项目经理丝毫不懂技术那 阅读全文
posted @ 2012-10-31 23:37 郗晓勇 阅读(501) 评论(0) 推荐(0)
摘要:项目快结束了,这次自己是以外包人员的身份参与的这个项目,学到了很多,感触也很多。虽然说自己所在的团队是一个很年轻的团队,但所处的公司还是比较大的,所以说项目开发算正规。笔者今天就根据自己所了解的情况来谈一谈,一般情况下开发团队中人员的大致配置。希望这篇博文可以帮助读者找到自己的位置,更重要的是找到自己的目标。各个角色公司项目负责人无疑这是开发团队中职位最高的,所谓最高并不是事无巨细,样样过问。他只负责这个项目的大致的进度,甚至于大致的进度都不管,只关心项目是否按时完成,用户是否满意。需要他做的就是根据项目经理的汇报,做出决定。比如说项目缺乏人手,那么负责人就会调配其他团队人手,或者招外包人员。 阅读全文
posted @ 2012-10-18 00:10 郗晓勇 阅读(256) 评论(0) 推荐(0)
摘要:一个公司想扩大、想盈利,管理上不去是不行的。这次外包到一个全球500强的公司,自己最大的感触就是公司的管理对公司的发展具有决定性的作用,或者说管理的水平直接决定了公司的定位。下面就简单从一件事说说自己这次对公司管理的感受。遵纪守法尊重版权外包到别的公司去做项目,刚开始的时候打算用自己的机器,后来才接到通知说用公司的电脑。本来环境已经配置好了,但是突然通知换电脑,心里多少有些抱怨。得到的解释是公司为了避免发生版权的纠纷,所以决定使用公司的电脑(当时很纳闷用公司的电脑和版权有什么关系)。因为对于自己的电脑来说,公司很难进行控制,限制个人电脑上装什么软件是不合法的,但是如果在开发期间用了自己电脑上的 阅读全文
posted @ 2012-09-30 23:44 郗晓勇 阅读(336) 评论(0) 推荐(0)
摘要:一个项目需求确定了(需求这个东西永远没有确定的哪一天,时时刻刻都是在变化,但是经理认为确定了那就是确定了:P),然后项目经理给了一份需求文档就算真是开始开发了。大致用了一天的时间数据库就由一个开发人员设计了出来(其实对于这个速度我还是比较“惊讶”的,一天就把数据库设计出来,可见数据库中丢字段、字段设计不合理等等问题一定在后面等着我们),数据库经过大家统一“审查”过一遍之后没有什么异议(时间这么紧没有认真的去研究怎么会有异议呢?也只有到真正开发的时候才能发现问题),然后项目经理就开始分配任务准备进行开发了,但是这个分配任务也是大有学问的,笔者今天要谈的不是前期需求也不是数据库设计而是关于项目开发 阅读全文
posted @ 2012-09-30 22:21 郗晓勇 阅读(570) 评论(0) 推荐(0)
摘要:不说“不知道”项目经理是一个项目的直接负责人,其最大的作用就是和客户沟通获取需求,然后根据需求合理安排自己团队的资源。于是在开发过程中项目经理一定不要将“不知道”挂在嘴边,做到十“知”八九是本分之内的事情。在开发过程中面对自己团队的开发人员遇到的业务问题,千万不能说不知道。下面是一段经典问答开发人员A:这个按钮在这里是干嘛的?项目经理:我哪知道,……(这是客户的意思)开发人员A:……(你他妈干啥吃的!)往往当项目经理的回答是类似不知道的时候,还不等他说“这是客户的意思……”,开发人员已经开始大骂了,但是碍于大家都是同事所以那句“干啥吃的”是心中默默的骂。项目经理对问题的回答如果是类似“不知道” 阅读全文
posted @ 2012-09-30 15:18 郗晓勇 阅读(526) 评论(0) 推荐(0)
摘要:去年的八月份左右也就是在软考之前为了体验工程的感觉(或者说更好的准备软考)我们进行了教务平台的开发。从准备软考的角度来说这个教务系统是成功的,而且非常的成功!因为在做教务的过程中我们遇到了很多问题和疑惑,而这些问题在后面准备软考的学习当中都有相应的解答,所以说对于软考来说那一遍做的教务是非常成功的。但是就教务本身而言是及其失败的,虽然说可以跑起来,甚至于个别的小模块独立使用的时候效果还不错。但是如果整体的教务跑的话必定会出这样和那样的问题。安照相对正规的开发流程做完了DRP,回头再看看我们当时的教务,又有新的感触,特记录于此和组员们共勉,权且当为第二次开发教务做准备吧。Web开发(无论是jav 阅读全文
posted @ 2012-02-20 19:39 郗晓勇 阅读(266) 评论(0) 推荐(0)
摘要:这次项目的主要任务是用jsp做界面,下面模块由filenet完成无需我们进行参与,我们只需要保证给用户一个比较美观,比较可靠地界面层就好。工欲善其事必先利其器,初步画界面采用Dreamweaver,后期写代码的时候如果页面需要微调就直接在eclipse里面编辑。界面整体来看还是非常非常不错滴,做页面的四人组就是给力啊。页面做好了就是后面搞定servlet部分了,在写后台的过程中渐渐熟悉了jspjsp的优势这次开发并没有使用我们熟悉的asp.net而是使用了jsp,相比而言开发过程大同小异,无非就是语法以及配置上有些困难。相比这些困难而言jsp的巨大优势还是很诱人的。(1)和java一样,一次编 阅读全文
posted @ 2011-11-24 01:01 郗晓勇 阅读(213) 评论(0) 推荐(0)
摘要:这几天验收系统的时候,我们小组补充了很多文档,这让我想了很多。l为什么文档大部分是后补的,或者是做完系统之后做了大量的修改?l真正意义上的文档应该什么时候写?l为什么很多团队不愿意写文档?程序员在看别人的代码的时候常常抱怨没有注释,没有文档……但是当自己该写注释或者文档的时候却懒懒的能少写就少写。这本身就是一个巨大的讽刺,一个喜欢注释和文档的人却常常不写注释和文档,俨然就是典型的只许自己放火不许别人点灯的行为。下面是程序员们不想写文档的种种理由:“写文档多浪费时间,有这个时间老子七八个类都写完了!”“写他妈的文档也没有人看,写个磷啊!”“现在的开发一般都是从零开始,在原有的基础之上开发简直就是 阅读全文
posted @ 2011-08-24 01:12 郗晓勇 阅读(256) 评论(0) 推荐(0)
摘要:为系统而生,为框架而死,为bug奋斗一辈子;吃符号的亏,上大小写的当,最后死在需求上!----悲催的程序员最近又在合作开发,带着两个人做教务系统中的其中一小部分,主要的功能就是计算教师的工资,计算教师的工作量,还有就是排整个学校的课程表。由于这个系统是仿照着上一个不太成熟的系统做的,也就是说我们需要重新理解需求,重新设计数据库。这两天一直在做那个教务系统,让我感觉最难的部分就是需求那部分,从着手开始做的第一天起脑海里就不断的在理解需求,问了问六期的师哥师姐,基本上对需求了解了一点了,但是大姐(学宇)要求把系统要做活,做活,做活……*(……%¥&*(%*()……&()纵有千般无奈 阅读全文
posted @ 2011-07-31 22:45 郗晓勇 阅读(199) 评论(0) 推荐(0)
摘要:一套软件无论做成什么样子终归是要给客户用的,而且客户对你做出的系统是否满意直接关系到他是否买你的单。我们嘴中都在说要重视用户体验,要重视用户体验…可是什么样的用户体验才算是好的?最近接到一个项目,大致的要求是:把一个学校的管理系统从C/S模式改为B/S模式,而且系统功能尽量和先前的功能保持一致。接到任务后就开始着手做需求分析,恩!你猜对了!悲催的历程开始了……首先拿到这个系统首先映入眼帘的就是上面大排的菜单,以及大量的眼花缭乱的、琳琅满目的、纷繁复杂的、乱七八糟的二级、三级、四级菜单。这还不算啥,真正点开之后才觉的是“天山深处有人家”啊!大概看了看类似于下面这种菜单项少说也有一百多个,崩溃!点 阅读全文
posted @ 2011-07-10 23:06 郗晓勇 阅读(217) 评论(0) 推荐(0)
摘要:在做项目当中发现很多开发人员没有单元测试的习惯,往往是写完代码后直接右键——commit,然后就完事大吉。这样做的严重后果就是在开发后期的集成测试中Bug百出,而且都是类似于变量忘记赋值、字符串拼接错误、界面忘记显示全部信息等等一系列非常小的Bug。这些Bug的存在直接导致集成测试的时候效率低下,工期延长……试想仅仅因为一个string中的一个拼接错误,或者变量忘记赋值这些小错误,测试人员还要写个文档发送给开发人员,告诉他“错误显示可能是***个文件的***行的字符串拼接错了”或者“错误显示可能是***个文件中的用于显示模块有问题”,如果真的是这样那么不是测试人员先累死就是开发人员先郁闷死。效 阅读全文
posted @ 2011-06-10 20:03 郗晓勇 阅读(364) 评论(0) 推荐(2)
摘要:一向认为软件开发就像是在搭房子或者说是在构建一座宏伟的大厦,当然这根据工程的大小而定。其实细细想来软件工程的很多地方都是借助于建筑方面的知识,就从“工程”这个词来说就是从建筑学引进的,类似的还有设计模式等概念也是来源于建筑学。如此说来软件的开发和建造房屋一样,一般是多人合作完成的。如果您非要自己动手盖一个小平房也不是不可以,但请注意那一定是一个足够小的小平房。其实要说起团队开发让人最头疼的不是什么技术问题,而是队员之间的合作问题。尤其是遇到矛盾重重的团队,那项目的进度一拖再拖将是家常便饭。团队开发绝不是架个SVN拉几个有水平的程序员就可以开始的事情!需要注意很多方面才有可能出色的合作完成一项工 阅读全文
posted @ 2011-05-23 09:57 郗晓勇 阅读(256) 评论(0) 推荐(0)
摘要:注释能使代码更加容易理解,更加容易跟踪。出色的注释就像一幅好的设计蓝图,能够引导阅读者通过你的应用程序的曲折之处,能够说明预期的运行结果和可能出现的异常情况。注释可以为后来的维护者带来极大的方便,无论是类说明注释,方法说明注释,还是变量说明注释,这些都是不可或缺的。没了注释代码就是“天书”,有的读者可能会说花点时间来看也不费劲嘛!想象一下阅读类似于上文中的那样没有注释的几千,几万,几十万代码是多么费时费力的事,但是这些时间原本是可以通过几行注释节省的。书接上回还是以上次文中的代码为例。可悲的是文中代码和大多数人写的代码一样——没有注释。1.写注释的人有着共同的特点,不写注释的人各有各的理由。l 阅读全文
posted @ 2011-05-18 23:43 郗晓勇 阅读(317) 评论(0) 推荐(0)
摘要:看过很多人找工作的经历,从他们的言语中感触最深的几句话就是“应届生不好找工作”,“没有工作经验根本没戏”如此云云。那么为什么应届生不好找工作,为什么用人单位想要有工作经验的人?简单说来就是,用人单位希望它花钱雇的人可以马上为他创造效益,他们要的是“鹰”不是“雏”!这么说来其实并不是应届生不好找工作,也不是没经验不好找工作。而是你不能直接为企业创造效益所以不好找到工作,这才是根本。那么怎样让用人单位认为你可以为它创造效益,或者说怎样让用人单位认为你是专业人士而不是个新手?当然了区别专业与业余的标识除了基础知识以及专业技能之外,还有一个最基本的也是很多人最容易忽视的地方——编码规范。基础知识以及专 阅读全文
posted @ 2011-05-11 23:38 郗晓勇 阅读(319) 评论(0) 推荐(0)
摘要:新的VS支持多屏幕开发,解决了程序员们屏幕紧张的问题。昨天有机会尝试了一把,果然不错。一、准备工作l显卡如果你用的是台式机要首先确保显卡支持双头输出,或者你有一个视频转换器以及三根视频线。如果用的是笔记本那就方便了,大部分的笔记本都支持外接显示器(本文以笔记本为例)。l显示器如果是台式机需要准备两个屏幕(废话,不然双屏个茄子啊!)。如果是笔记本则需要另外准备一个显示器(也是废话……)。二、将第二个屏幕与电脑相连(无脑操作,不赘述,直接看图)。三、将屏幕显示切换到扩展(Win7下快捷键为Win+P)。四、一切前期工作结束,直接将VS的代码编辑窗口拖出VS,拖至另一个屏幕!PS:感觉这两个屏幕好有 阅读全文
posted @ 2011-05-02 09:05 郗晓勇 阅读(496) 评论(0) 推荐(0)