转自:https://blog.csdn.net/hello_simon/article/details/19993343

最近公司在进行一系列新模块的开发,在痛苦开发的过程中,大家不时在一起进行总结等思维体操活动。上周六中午加班,几位同事一起聊了聊最近协同开发的感受,我从中受益匪浅。

首先提到过于民主化的开发模式导致了交流成本的增加,这些成本分散了研发人员真正用于开发的精力,显得很不划算,但是针对这个现象,一直没有可行的解决 办法。其次是一些具体的合作开发模式导致无法控制整体进度。我们按照自己的思路,针对目前的实际情况,勾勒了一个理想化的开发流程。

  点击左上角图片可以看到这个流程图,以下是对各个字母所代表的连线的注解:

  a、项目经理与公司决策层的沟通,以确定这个需求有没有足够的人手和可行性去实现,以及与现有产品的依存关系。
  b、公司决策层与市场/策划部门的交流,这个过程将进行的相当充分,并且是反复、长期的,它致力于从用户的角度对需求进行细化和分解。
  c、市场部门需要针对细节问题与项目经理交流,以确定这个需求有没有可行性去实现。
  d,e,j、这是整个产品的架构设计过程,分为ui架构设计和程序架构设计两部分。首先架构师需要与项目经理达成思想上的一致,随后进行设计。这个设 计必须是便于分工、维护和扩展的,而且要能够承受一定强度的原型开发压力。ui架构师将根据界面逻辑对产品实施分割,对每个界面上需要放置的内容了如指 掌。程序架构师在与全体开发人员民主讨论后,制定出自底至顶的程序层次(例如class、library等等),并划分出功能模块(例如首页、内容列表、 后台管理、帮助系统等等)。ui架构师与程序架构师之间需要就功能划分、文件命名规则等等达成一致意见,并不断在开发中完善思路。
  f、美工使用photoshop等工具设计界面,并完成图片切割工作。
  g、网页设计师负责书写静态模板。如果人手缺乏,这个位置可从程序开发人员中抽调。
  k、美工与网页设计师之间需要进行一些协调。一些美工的设计思维并不能完美的体现在网页上,因此需要不断的磨合与修正,达到双方都满意的结果。但相对来说,美工完成的作品并不需要做太多的改动,因此这里采用单向箭头标示。
  h、对底层逻辑(如类、方法、库的设计),以及相关文档的整理。如有精力可以进行小规模的测试,确保日后的开发工作顺利进行。
  i、当底层接口以及相关文档完成后,模块化的拼接将变的比较轻松,这个流程将完成基本模块到外部功能的构建工作。
  l、这是程序开发人员需要付出最多交流成本的地方。很多的底层模块在拼接过程中需要进行变动,例如增减参数,修改类、属性、方法的名称,将类、属性、方法移动位置等等。同时,外部的实现需要随着底层模块的更改、优化进行相应的调整。
  m、产品成型后,将交付测试部门进行测试。测试部门返回一个报告,发送给项目经理和程序开发人员。在小规模的开发团队里,项目经理可以充当质量保证的角色,前提是他对项目的开发过程有一定程度的了解,否则,应当指派一名专门的质量保证人员来处理bug列表。
  n、测试部门返回的报告本来是可以发给所有程序开发人员的,但不幸的是,测试人员只跟界面打交道,他们只注重结果,而不注重实现原理。因此bug列表 一般需要交给负责界面逻辑的开发人员进行整理,然后分发给各个成员加以更正。在小规模的开发团队里,界面逻辑和底层逻辑可能是由相同的一批人来实现的,那 么他们需要一个bugzilla来协同处理这些bug。我们也建议测试人员使用同一套bugzilla系统提交bug报告。

  最后总结几点:一、详细分工的目的是为了降低交流成本。二、实际情况会使得开发工作复杂化,所以流程模型要能适应原型开发工作。三、文档和标准化的规范是极其重要的,它可以使开发过程工厂化,提高代码质量和可维护性。

最近公司在进行一系列新模块的开发,在痛苦开发的过程中,大家不时在一起进行总结等思维体操活动。上周六中午加班,几位同事一起聊了聊最近协同开发的感受,我从中受益匪浅。

首先提到过于民主化的开发模式导致了交流成本的增加,这些成本分散了研发人员真正用于开发的精力,显得很不划算,但是针对这个现象,一直没有可行的解决 办法。其次是一些具体的合作开发模式导致无法控制整体进度。我们按照自己的思路,针对目前的实际情况,勾勒了一个理想化的开发流程。

  点击左上角图片可以看到这个流程图,以下是对各个字母所代表的连线的注解:

  a、项目经理与公司决策层的沟通,以确定这个需求有没有足够的人手和可行性去实现,以及与现有产品的依存关系。
  b、公司决策层与市场/策划部门的交流,这个过程将进行的相当充分,并且是反复、长期的,它致力于从用户的角度对需求进行细化和分解。
  c、市场部门需要针对细节问题与项目经理交流,以确定这个需求有没有可行性去实现。
  d,e,j、这是整个产品的架构设计过程,分为ui架构设计和程序架构设计两部分。首先架构师需要与项目经理达成思想上的一致,随后进行设计。这个设 计必须是便于分工、维护和扩展的,而且要能够承受一定强度的原型开发压力。ui架构师将根据界面逻辑对产品实施分割,对每个界面上需要放置的内容了如指 掌。程序架构师在与全体开发人员民主讨论后,制定出自底至顶的程序层次(例如class、library等等),并划分出功能模块(例如首页、内容列表、 后台管理、帮助系统等等)。ui架构师与程序架构师之间需要就功能划分、文件命名规则等等达成一致意见,并不断在开发中完善思路。
  f、美工使用photoshop等工具设计界面,并完成图片切割工作。
  g、网页设计师负责书写静态模板。如果人手缺乏,这个位置可从程序开发人员中抽调。
  k、美工与网页设计师之间需要进行一些协调。一些美工的设计思维并不能完美的体现在网页上,因此需要不断的磨合与修正,达到双方都满意的结果。但相对来说,美工完成的作品并不需要做太多的改动,因此这里采用单向箭头标示。
  h、对底层逻辑(如类、方法、库的设计),以及相关文档的整理。如有精力可以进行小规模的测试,确保日后的开发工作顺利进行。
  i、当底层接口以及相关文档完成后,模块化的拼接将变的比较轻松,这个流程将完成基本模块到外部功能的构建工作。
  l、这是程序开发人员需要付出最多交流成本的地方。很多的底层模块在拼接过程中需要进行变动,例如增减参数,修改类、属性、方法的名称,将类、属性、方法移动位置等等。同时,外部的实现需要随着底层模块的更改、优化进行相应的调整。
  m、产品成型后,将交付测试部门进行测试。测试部门返回一个报告,发送给项目经理和程序开发人员。在小规模的开发团队里,项目经理可以充当质量保证的角色,前提是他对项目的开发过程有一定程度的了解,否则,应当指派一名专门的质量保证人员来处理bug列表。
  n、测试部门返回的报告本来是可以发给所有程序开发人员的,但不幸的是,测试人员只跟界面打交道,他们只注重结果,而不注重实现原理。因此bug列表 一般需要交给负责界面逻辑的开发人员进行整理,然后分发给各个成员加以更正。在小规模的开发团队里,界面逻辑和底层逻辑可能是由相同的一批人来实现的,那 么他们需要一个bugzilla来协同处理这些bug。我们也建议测试人员使用同一套bugzilla系统提交bug报告。

  最后总结几点:一、详细分工的目的是为了降低交流成本。二、实际情况会使得开发工作复杂化,所以流程模型要能适应原型开发工作。三、文档和标准化的规范是极其重要的,它可以使开发过程工厂化,提高代码质量和可维护性。

2.Web开发过程流程图的更多相关文章

  1. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

  2. 基于jQuery的web在线流程图设计器GooFlow

    简易的流程图设计控件,效果图: JavaScript源文件在GooFlow.js中,样式文件是GooFlow2.css.可以自定义样式. GooFlow_item类是每个项的样式属性. 但估计实现任务 ...

  3. web开发过程中关于路径问题的总结

    约束: 相对路径概念-./代表当前目录.../代表上级目录 示例的所有文件都基于http://127.0.0.1:8080/test路径开放,test为对应的contextPath 前端 HTML标签 ...

  4. 我的成长比价系列:java web开发过程中遇到的错误一:sql语句换行错误

    字符串换行导致的错误,确切的说是马虎的错误,自己在编写简单的servlet项目时,在StudentDao.java 中的  查询语句:String  sql= "SELECT Type,fl ...

  5. java web开发过程中的“\”指的是什么,如何区分

  6. 关于移动web开发过程中的”点透“问题

    先说说故事发生的场景,举个栗子如下图: A是遮罩层,B是正常的DOM,C是B上的某个元素,这里是链接.场景是点击A的时候A消失,结果点到了C,页面发生了跳转,这显然不是咱想要的~ 下面我们来监测点击事 ...

  7. [原创]一种专门用于前后端分离的web服务器(JerryServer)

    如果你还不了解现在的前后端分离,推荐阅读淘宝前端团队的前后端分离的思考与实践 1.问题 随着现在整个软件开发行业的发展,在开发模式上逐渐由以前的一个人完成服务端和前端web页面,演变为前端和后端逐渐分 ...

  8. JAVA web 框架集合

    “框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...

  9. spring boot(二):web综合开发

    上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spring boot的其它 ...

随机推荐

  1. 推荐的JavaScript编码规范

    http://www.qdfuns.com/notes/26812/7825414125719306fa409c709ee7b2a3.html

  2. JQ each 各种标签

    类选择器: $("input[class=class1]").each(function(){ alert($(this).val()); }); ID选择器: $("i ...

  3. 洛谷 P1913 L国的战斗之伞兵

    P1913 L国的战斗之伞兵 题目背景 L国即将与I国发动战争!! 题目描述 为了在敌国渗透作战,指挥官决定:派出伞兵前往敌国!然而敌国的风十分强烈,能让伞兵在同一高度不停转悠,直到被刮到一个无风区… ...

  4. 学一下gconv, gprof等知识

    scons.gcc.gdb.valgrind.gcov SCons 是一个用 Python 语言编写的类似于 make 工具的程序.与 make 工具相比较,SCons 的配置文件更加简单清晰明了. ...

  5. 2.CURL命令

    转自:https://blog.csdn.net/ligang2585116/article/details/46548617 curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在 ...

  6. LAMP环境搭建成功后的部分相关配置

    LAMP环境搭建成功后,通常还需要做一些其他配置来完善,本文主要记录常用到的一些设置. 所有的配置是基于Ubuntu 16.04 + Apache2.4 + Mysql5.7 + Php7.0,对于其 ...

  7. react-native React Native version mismatch

    android/app/build.gradle     file: dependencies { compile fileTree(dir: "libs", include: [ ...

  8. 今日题解------uvalive 2689

    今天学到了代码以外的东西,就是你在vj上挂了content ,然后你想更新它,你就要刷新一下,不然你提交的那题可能提交到别的地方. 好了回到重点,本题的题意是: #include<bits/st ...

  9. .Net 程序在自定义位置查找托管/非托管 dll 的几种方法

    原文:.Net 程序在自定义位置查找托管/非托管 dll 的几种方法 一.自定义托管 dll 程序集的查找位置 目前(.Net4.7)能用的有2种: #define DEFAULT_IMPLEMENT ...

  10. win8用久了变得非常慢, 磁盘占用100%

    完美解决方式:  直接重装win7 完美解决这个问题 在网上查了非常久也没找到有效方法, 求教