精华内容
下载资源
问答
  • 文章里从项目经理--开发者--测试者--客户之间的微妙而又重要的关系入手,和文档细节、交流工具的使用,分析了如何避免误解。 本文作者Dmitriy Kharchenko是一家乌克兰软件开发公司Acceptic Ltd的CEO。该公司的...
    摘要:优秀的软件是多部门齐心协力的产物,在软件开发项目里,一旦交流不当,误解是避免不了的。文章里从项目经理--开发者--测试者--客户之间的微妙而又重要的关系入手,和文档细节、交流工具的使用,分析了如何避免误解。

    本文作者Dmitriy Kharchenko是一家乌克兰软件开发公司Acceptic Ltd的CEO。该公司的核心运营项目包括创建复杂的客户端App,专注于为开发者团队提供专业服务。在本文中,主要讲述在软件开发项目里,项目经理--开发者--测试者--客户之间的微妙而又重要的关系。产品的质量需要开发团队和客户双方协作才能完成。(以下是编译内容)

    经常遇到在软件开发里各种各样的误解所导致的奇怪事情。不过说来也很费解:对于这样不正常的待遇,尽然很少有人提出质疑,也没有人问开发者是什么导致了误解和交流上的障碍。可能大部分人都觉得问这样的问题为时已晚或者没人关心这样的问题。所以,跟踪调查软件开发里开发者之间引起误解的来龙去脉是一件很有趣的事情。

    因此,下面就围绕对开发者和项目经理的采访来探讨在开发项目里导致误解的普遍性原因所在。根据这些经验丰富的IT技术人员所说的,一起来学习并避免这样的事情出现在自己的开发团队里。

    和客户端:交流没有最多,只有更多。

    文档和记录

    能够说客户的语言并理解客户的意思其实是特别重要的,理解不一致难免会出现问题。比如:因为语言不一致,导致双方的程序员在技术层面上无法完全理解使用说明规范。

    有的时候客户拒绝编写任何文档也会引起开发者的误解。因为我们的开发团队要对产品的功能性进行多个测试、评估,还要不断地多次重写功能代码,团队里每个人对产品功能都有自己的见解,因此,花费在迷茫上的时间不在少数。其次,没有功能说明书的前提下测试人员也很束手无策,根本不了解这些功能是怎样运行的,也没有文档可参考。这些都难免会引起误解。

    另一个产生误解的源头是信息不完全。例如:客户和开发团队的成员交流产品细节,客户希望开发人员将数据分类,而不是在Skype上进行群组交流。有经验的人都会知道,客户在和开发者之间的误解肯定会涉及到工作完成的标准与否。这也就是为什么有人觉得定价的服务项目对双方都不利。因为它是不可能将所有可能的产品描述写入产品验证的。对于这类问题,解决办法总是有的。

    信任、开放的态度

    当客户不信任开发团队的时候,采取闭门会议、给出一小部分信息的话,那障碍就会出现,最终的结果只能是重写代码,重设架构。在一个团队里,如果没有信心,即使是正常的开放式交流也对高效率和创新性毫无裨益。没有一个团队会把于己无关的项目放在心上。有的时候,客户只给出模糊不清的需求,任何人都可以想象得到,开发团队为了获得更详细的信息多多少少都会和客户产生一点小分歧乃至是小冲突,直至造成更大的误解。

    目标清晰、详细阐述

    当交流进程失败了,只能面对下面的情形:

     

    • 客户会给出一个评估任务并找到一个实现方法,但团队开始开发而不是仅仅发送一个报告而已。
    • 开发团队在实现阶段也要和客户进行协作,可能会出现的情况是客户根本不选择你所提供的解决方案。
    • 有的时候开发者开始处理一个指定的bug,即使严重的功能改变可以保证性能的提升,但是客户还是不同意你的做法。

     

    个人认为,误解的出现主要是对问题没有做充分的讨论,懒惰、时间紧、外语障碍都是阻止寻求建议的主要因素。所以,解决误解的关键就是不管什么事都要和你的团队、项目经理、客户进行讨论。

    及时反馈信息

    有时候客户不重视用户评论,或者是忘记将这些用户评论传递给开发团队,这也就导致开发者没办法即使关注产品的反馈信息。误解就这样产生了——因为在项目结束之后,客户需要重新开发/调整项目,是的双方都不是很满意。

    不同的加班理念

    也许客户和开发团队在加班这件事上会存在理念上的不同,客户需要开发团队在没有真正必要性的事情上加班,例如:

     

    • 客户:在产品发布之前,我们每周都会加班一次,所以希望开发团队也尽可能的抓紧时间按时完成任务。
    • 开发:长时间的加班会打击团队的积极性,降低工作效率。

     

    对于加班这样的误解,最简单实效的办法就是双方之间做出真诚的协商,给对方吃一颗定心丸:绝不会延缓进程、影响产品质量。

    小结

    交流,交流,再交流,而且是双向交流!客户尽可能多的列举细节,开发团队得到的完整而清晰的信息有助于更好的理解项目的目标,对项目的圆满完成不无益处。通常情况下,为开发团队提供全面的反馈信息,也不滥用不必要的加班时间,有利于双方创造一个和睦的工作氛围。

    团队VS.项目经理

    在有的开发团队里项目经理根本不会就客户的需求去和团队进行有效的沟通。例如,有可能会出现这样的情形:项目经理在和客户主导一个讨论会议,而团队里的主要人员却在蛮干,这就是为什么信息最终不能被团队全面接收的原因。

    首先呢,交流误解出现在项目经理和他的团队之间,这的确是一个让人失望的案例,因为项目的日程安排、截止日期、和客户的信息传递都是由项目经理定义的,目前这样的问题带有个人原因,所以解决方法就是项目经理需要更多的自我反思,寻求出路。

    小结

    努力遵循敏捷开发的方法,千万不要忽略常识和人性特点。

    开发者VS.测试员

    世上没有相同的两个东西,所以出现在开发团队和测试团队之间的误解,大部分是原因是需求过于模糊。为了克服这样的难点,建议两个团队需要加强更加紧密的协作:

     

    • 在文档开发过程里
    • 在架构/数据库工程里使用QA环节
    • 在测试案例开发中邀请开发人员加入

     

    通常情况下,在开发项目里任何形式的误解都是一个大麻烦。它可能是缺乏良好的管理、缺乏团队建设、失效的软件开发方法、未定义标准等等。每个交流误解案例都应该仔细分析,并单独处理。

    小结

    在开发者和测试者之间的误解代价是最高的,所以避免这样的误解需要双方之间透明工作细节以及有规律的刷新文档,或者是双方之间更亲密、永久性的交流沟通。尤其是在项目计划的后期。除此之外,开发团队必须清晰地意识到QA环节的重要性,还要考虑到和测试者是一个整体团队,对产品负有共同的责任。

    沟通工具:语音聊天工具(Skype)VS. E-mail

    考虑到敏捷开发方法里所追求的速度与效率,E-mail的特点是有较高的延迟性,所以不可取。所以对于集思广益的讨论需要向Skype或其他的多媒体工具。但是,我建议项目经理能够鼓励开发者多写邮件,这样可以锻炼他们用一个干净和简洁的方式表达自己的想法,所以很多事情通过他们的邮件就可以解决了。不过在开始Skype会议之前最好是通过E-mail将要讨论的话题发给大家,包括客户。

    毫无疑问Skype能够确保即时沟通紧急情况/议题,而E-mail是储存历史记录的最好工具。这两个沟通工具各有利弊,只需要遵循合理的使用,减少团队误解几率是毋庸置疑的。

    总结

    在软件开发项目里,对于交流标准需要强调五条规则:

     

    • 每个环节都要沟通:业务计划、项目目标、财务问题、交付模型等等。每一个技术性能都要彻底的讨论。如果你想呈现什么样的想法,那就通过E-mail文档的方式来证明它。
    • 个性化你的工作。和团队成员交流的时候尽量鼓励大家表现出自己真实的一面,这样有助于激发队员的创造力,做出更出色完美的结果。
    • 持续提供反馈。反馈信息就相当于一面镜子,时刻反映工作成果的好坏。作为项目经理,一定要避免一个现象,那就是责怪队员,因为所有的人都只有一个目标——好产品。
    • 在问题变质之前解决它。突出强调你很想知道摆在面前的所有狭窄的地带。鼓励大家提出疑问!
    • 使用E-mail解决真正重要的问题,这样有助于避免在无关紧要会议上浪费开发者和自己的时间。

     

    作为一名工作经验丰富的管理者,希望以上的内容对IT工作者有用。   

    --------------------------------------

    偕行软件欢迎您光临我们的博客

    我们的官网:http://www.udchn.com

    我们的空白开发框架:HTTP://DEMO.UDCHN.COM:8082

    我们的集团式人力资源管理系统:HTTP://DEMO.UDCHN.COM:8081

    转载于:https://www.cnblogs.com/udsoft/p/3386811.html

    展开全文
  • 的关系---包含

    2020-05-28 20:56:37
    人和大脑: 整体和部分的关系,不可分割,同时出现或消失 聚合–>车和车轮子: 整体和部分的关系,创建时有可能是分开的 关联–>人和汽车: 整体和部分的关系,可以分割,后来在一起 eg: Wheel.java package...

    涉及到的类越来越多,需要一个管理类的工具包(package),
    一个类中package只可以有一个,并且放在第一行
    一个类中import可以有多个

    has-a 包含(组合 聚合 关联)

    通过一个类的对象当做另一个类的属性来存储

    1. 组合–>人和大脑: 整体和部分的关系,不可分割,同时出现或消失
    2. 聚合–>车和车轮子: 整体和部分的关系,创建时有可能是分开的
    3. 关联–>人和汽车: 整体和部分的关系,可以分割,后来在一起

    eg:
    在这里插入图片描述
    Wheel.java

    package contains;
    //车轮子
    public class Wheel {
        //属性
        public String brand;//车轮子的品牌
        public int size;//车轮子的尺寸
        public String color;//车轮子的颜色
        //方法
        public void turn(){
            System.out.println("车轮子可以旋转");
        }
        //构造方法
        public Wheel(){}
        public Wheel(String brand,int size,String color){
            this.brand = brand;
            this.size = size;
            this.color = color;
        }
    }
    
    

    Car.java

    package contains;
    //汽车
    public class Car {
        //属性
        public String brand;//品牌
        public String type;//型号
        public String color;//颜色
        public Wheel wheel;//车里有轮子---->包含关系(聚合)
        //方法
        public void showCar(){
            System.out.println("这是一辆"+brand+"牌的"+type+"型号的"+color+"色的小汽车");
            System.out.println("车上是"+wheel.brand+"牌"+wheel.color+"色"+wheel.size+"号的车轮");
            wheel.turn();//方法一定是对象调用的 车轮子的方法由车轮子对象来调用 可以放在任何地方
        }
        //构造方法
        public Car(){}
        public Car(String brand,String type,String color,Wheel wheel){
            this.brand = brand;
            this.type = type;
            this.color = color;
            this.wheel = wheel;
        }
    }
    
    

    Test.java

    package contains;
    
    public class Test {
        public static void main(String[] args){
            Car car = new Car("八手奥拓","Z4","大酱色",new Wheel("米其林",5,"lv"));
            car.showCar();//展示汽车
        }
    }
    
    
    展开全文
  • 本体提供某些专门知识领域模型化概念和关系的结构性框架。本体支持生成专门领域参考知识储存—领域知识库,供人和应用程序之间传输和共享这些知识。特别是,本体还为计算机化知识处理执行推理任务而提供结构化...
  • 依赖与关联关系

    2020-02-28 10:20:42
    比如说人要探亲需要交通工具人和交通工具之间的关系就是依赖关系;工人用挖掘机进行工作,工人和挖掘机之间就是依赖关系。大多数情况下,依赖关系体现在某个类的方法当中使用另一个类的对象作为参数。 依赖关系在...

    依赖关系

    依赖关系是一种使用关系,对于特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另外一个事物时使用依赖关系。比如说人要探亲需要交通工具,人和交通工具之间的关系就是依赖关系;工人用挖掘机进行工作,工人和挖掘机之间就是依赖关系。大多数情况下,依赖关系体现在某个类的方法当中使用另一个类的对象作为参数。

    依赖关系在面对对象语言当中有三种情况:
    1、A类是B类中(某种方法的)局部变量
    2、A类是B类方法当中的一个参数
    3、A类向B类发送信息,从而影响B类发生变化
    对应的Java代码片段:

    public class CourceTable {
     public void addCource(Cource cource) {
      // 依赖关系
      cource.show();
      System.out.println("增加课程");
     }
      public void reCource(Cource cource) {
      // 依赖关系
      cource.show();
      System.out.println("删除课程");
     }
    }
    public class Cource {
     public void show() {
      System.out.println("课程为…");
     }
    }
    public class CourceTest {
     public static void main(String[] args) {
      CourceTable t = new CourceTable();
      Cource c = new Cource();
      t.addCource(c);
      t.reCource(c);
     }
    }

    上述课程表类中用课程的对象作为参数,进行增加课程和删除课程的功能。课程的变化同时会引起课程表的实时变更,即为课程表依赖于课程。

    关联关系

    关联关系是类与类之间最常用的一种关系,它作为一种结构化关系,代表了类的对象之间的一组连接。比如客户与订单、老师和学生,人体与大脑,这些关系并不是使用的时候才有的联系,二十一种长期存在并且稳定的关系。
    关联关系也分为双向关联、单项关联和自关联等等。

    双向关联

    我们这里一般指都知道双方的存在,都可以调用对方的公共属性和方法,默认的情况下,关联都是双向的。比如供应商和顾客之间的联系,一家供货商可以向多个顾客供货,一个顾客也可以向多家供应商进货。
    对应的Java代码片段:

    // 顾客类
    public class Customer {
     // 供应商对象组作为Customer的属性成员
     private Supplier[] supplier;
    }
    // 供应商类
    public class Supplier {
     // 顾客对象组作为Supplier的属性成员
     public Customer[] customer;
    }

    单向关联

    对应的Java代码片段:

    // 顾客类
    public class Customer {
     private Address address;
    }
    // 地址类
    public class Address {
    }

    自身关联

    在系统中可能存在一些类的属性为对象类型为该类本身,这种特殊的关联关系称为自关联。

    // 顾客类
    public class Customer {
     private Customer customer;
    }
    展开全文
  • 收集需求-常用工具

    千次阅读 2017-03-01 18:34:57
    收集需求:是为实现项目目标而确定、记录并管理关系需要和需求过程。 工具如下: 1)访谈 :典型做法,向被访者提出预设和即兴问题,记录他们答案 2)焦点小组:召集干系人和主题专家,了解他们对产品...


    收集需求:是为实现项目目标而确定、记录并管理关系人的需要和需求的过程。

    工具如下:

    1)访谈 :典型做法,向被访者提出预设和即兴的问题,记录他们的答案

    2)焦点小组:召集干系人和主题专家,了解他们对产品、服务、成果的期望或态度

    3)引导式研讨会

    4)群体创新技术

    5)群体决策技术

    6)问卷调查

    7)观察

    8)原型法

    9)标杆对照

    10)系统交互图

    11)文件分析


    收集到的需求有很多种类,如下:

    1)业务需求:高层级需要,以及实施项目的原因

    2)干系人需求:干系人或干系人群体的需求

    3)解决方案需求:满足业务、干系人,产品、服务或成功必须具备的特性、功能、特征。

         A)功能需求,如流程、数据,以及与产品的互动  B)非功能需求,如可靠性,安防性、性能、安全性、服务水平、可支持性、保留/清除等。

    4)过度需求:从当前-》未来 所需临时能力,如数据转换和培训需求

    5)项目需求:需满足的行动、过程和其他条件

    6)质量需求:达成目标所需的条件或标准。



    展开全文
  • 在繁忙的芝加哥市区,有一个类似于实验室的机构,在其中工作的科学家们正在通过新的方法,研究科技与人和商业间的关系。这就是Accenture 技术实验室,它是Accenture公司的技术研发部门,任职于其中的科学家可以说...
  • 寻找值得支持的人和团体。 在依赖图中确定风险。 通过构建他们软件,对您暗中信任所有贡献者进行分析。 这可能同时具有发人深省效果。 用法 运行“ cargo install cargo-supply-chain以安装此工具。 安装...
  • 一、了解问题领域软件是一种工具,是用来辅助人们解决某一问题。软件价值就在于它能够符合问题领域需要,并达到人们解决...涉众是与要建设业务系统相关一切人和事,他们与项目有利益关系,都可能对系统...
  • 使用价值是商品的自然属性,它反映的是人和的关系,不是商品的特有属性。 商品价值的含义:凝结在用于交换的劳动产品中的无差别的人类劳动,就是商品的价值。 理解时应注意: ①正确理解“无差别的人类劳动”。...
  • 人和工具生成Dart代码与纯净分离共存约定,并且多个代码生成器集成在同一项目中约定。 它主要目的是在或等较低级别包之上公开对开发人员友好API。 您不必使用source_gen以生成源代码; 我们还公开了...
  • 这也就是把员工简单地当作服务于企业老板赚钱目的的工具,没有意识到相对于企业发展,实现“人和”是关键。 形成了多大人和”,就能成就多大企业辉煌。没有企业人和”,也就不可能有企业稳定发展和辉煌...
  • 程序优化几个层次

    千次阅读 2016-09-20 20:10:32
    计算机是人类发明最强大的工具,而程序是人和计算机交流的工具,从我们遇到一个问题到cpu中进行电位运算,这个过程大致可以分为四个步骤:建模、编码、翻译、执行。这几个过程完成质量关系到我们问题是否...
  • 001-破局而出智慧

    千次阅读 2017-06-19 20:21:56
    宁向东读书笔记 管理学讲什么? 管理学是一种“破局”智慧。那什么是管理学“破局”智慧呢?想法设法去创造一些工具或手段,让自己处于一个比较有利位置,...所谓‘局’就是人和资源之间相互关系。而资源,则
  • UI和GUI区别

    2009-03-31 11:29:00
    UI UI本意是用户界面,是英文User... UI本意是用户界面( user interface ) ,概括成一句话就是——人和工具之间界面。这个界面实际上是体现在我们生活中每一个环节,例如我们切菜时候刀把手就是这个界...
  • 一把椅子,一本书,一个人都可以是对象,,当某个实物变成对象后,人和书、人和椅子的关系就能够抽象为两个对象之间的关系,从而实现对真实世界的模拟。 (2)对象是一个容器 对象是一个容器,里面能够存放许多特征,...
  • 现代软件工程

    2017-12-19 22:42:37
    早期的软件开发仅考虑 人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。 面向对象的分析、设计方法(OOA和OOD)的...
  • 人机交互论文

    2014-01-09 10:12:41
    自计算机以一个庞然大物的笨拙体态出现直到现在,它已经越来越紧密地融入了人们的日常生活,...就是连接人和计算机的桥梁,它使人和机器的关系已从“人围着机器转”向“机器围着人转”的方向发展,变得更加自然、和谐。
  • MySQL — 数据库设计

    2020-02-02 19:57:47
    MySQL 5.7 — 数据库设计一、多表之间的关系1. 分类2. 实现关系二、数据库设计范式1. 第一范式(1NF)2. 第二范式(2NF)3. 第三范式(3NF)三、数据库的备份和还原1. 命令行2. 图形化界面工具2. 图形化界面工具 一...
  • servlet mvc day05

    2017-11-02 16:34:17
    表间关系1对1关系:人和身份证 ...1、创建web工程–>添加所需要jar包—>所需要的工具类 2、根据开发需求—>创建javabean (1)Dept private int did;// 部门id private String dname;// 部门名 (2)Pe
  • 除了大量有关自动化或自定义DevOps游戏的工具的讨论之外,对于那些既考虑业务方面又考虑技术方面的人们来说,还出现了一些有趣的趋势(有些是长期存在的,有些则不是)。 “做”开源 显而易见的第一件事是,...
  • 第 1 套 1现代管理信息系统是 C A 计算机系统 B 手工管理系统 C人和计算机等组成系统 D 通信网络系统 2 关系模型是把数据逻辑结构归结为满足一定条件 D 模型 A 层次 B网状 C一维表 D二维表 3 系统开发过程中...
  • 楔子:人和相遇并不总是富有戏剧性,至少我和她就不是。我们相遇只是平凡生活中点滴。这次相遇带来光芒要等到很久以后才显现出来。- 东野圭吾《黎明之街》 1.今日书签 PowerDesigner 16.5 画 ER 关系图...
  • 敏捷宣言

    2007-08-12 12:52:07
    人和交互重于过程和工具。 --加强开发人员交互(也许pair),加强与客户交互 可以工作软件重于求全责备文档。 --有可工作软件,完善,不过分文档 客户合作重于合同谈判。 --引导客户明白,签订...
  • 记录人生点点滴滴

    2015-12-17 14:20:27
    人和动物最大区别是会使用工具,但是我觉得根本原因在于是将知识传流下来,可惜人类知道知识通过语言留下来不到原意80%,被人看到学习为己所用又只剩下60%!所以好好记录生活点点滴滴!
  • UML为软件系统建立一个供项目组全体成员共享模型,成为软件开发人员沟通与交流的工具 不是软件开发过程和开发方法 提供一种标准表达方式 UML版本 1997年被OMG接收为标准建模语言 1.0—1.5(2003) 2.0(2004)—2.5...
  • 人和范冰冰之间的关系? 类和对象 HelloKitty和猫之间的关系? 对象和类 引用:对象的名字 *:一个对象同时可以有多个名字 但是不能一个 名字都没有 如果一个对象一个名字都没有的话 会被gc回收掉 -》 零引用...
  • 2.3.1 模型、外部系统间的关系 2.3.2 各种模型与需求模型间的跟踪关系 2.4 模型对象的快捷方式 2.4.1 快捷方式的目标对象 2.4.2 产生快捷方式的方法 2.5 模型对象的复制品 2.5.1 复制品的源对象 2.5.仑产生复制品的...
  • 2.3.1 模型、外部系统间的关系 2.3.2 各种模型与需求模型间的跟踪关系 2.4 模型对象的快捷方式 2.4.1 快捷方式的目标对象 2.4.2 产生快捷方式的方法 2.5 模型对象的复制品 2.5.1 复制品的源对象 2.5.仑产生复制品的...
  • 2.3.1 模型、外部系统间的关系 2.3.2 各种模型与需求模型间的跟踪关系 2.4 模型对象的快捷方式 2.4.1 快捷方式的目标对象 2.4.2 产生快捷方式的方法 2.5 模型对象的复制品 2.5.1 复制品的源对象 2.5.仑产生复制品的...
  • 符合对象(object)和类(class)关系的是: D  A、人和老虎 B、书和汽车  C、楼和凉亭 D、汽车和交通工具 B3.关于选择结构下列那个说法正确?B  A、if语句和else语句必须成对出现 B、if语句可以没有else语句...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

人和工具的关系