Re:如何突破生产瓶颈管理
by ������
������������������������������Lenovo
�� �� �� ��
PK
5 years, 2 months
[PATCH] recipes: ovs-dpdk-pvp: add throughput too high check
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
Comparison to baseline will now also report a FAIL in case the
measurement is higher than the baseline which could indicate a problem
with the current baseline (should be adjusted) or a problem with the
setup (e.g. the pvp path network wasn't configured correctly).
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
recipes/regression_tests/phase3/ovs-dpdk-pvp.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/recipes/regression_tests/phase3/ovs-dpdk-pvp.py b/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
index 1b1f51f..5a5854e 100644
--- a/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
+++ b/recipes/regression_tests/phase3/ovs-dpdk-pvp.py
@@ -38,13 +38,16 @@ def compare_results(host, result, baseline, max_dev):
interval2 = (avg2 - dev2, avg2 + dev2)
if interval1[1] < interval2[0]:
- desc = ("Measured rate {:.2f} +-{:.2f} pps is lower "
- "than threshold {:.2f} +-{:.2f} pps".
+ desc = ("Measured rate {:.2f} +-{:.2f} pps is lower than threshold {:.2f} +-{:.2f} pps".
+ format(avg1, dev1, avg2, dev2))
+ custom_mod = ctl.get_module("Custom", options = {"fail": True})
+ elif interval1[0] > interval2[1]:
+ desc = ("Measured rate {:.2f} +-{:.2f} pps is much higher than threshold {:.2f} +-{:.2f} pps\n"
+ "This could indicate a low baseline or a problem with the setup".
format(avg1, dev1, avg2, dev2))
custom_mod = ctl.get_module("Custom", options = {"fail": True})
else:
- desc = ("Measured rate {:.2f} +-{:.2f} pps is higher "
- "than threshold {:.2f} +-{:.2f} pps".
+ desc = ("Measured rate {:.2f} +-{:.2f} pps matches the threshold {:.2f} +-{:.2f} pps".
format(avg1, dev1, avg2, dev2))
custom_mod = ctl.get_module("Custom")
--
2.16.1
5 years, 2 months
lnst-developers:如何与不同性格的客户打交道? 94400
by xln
大客户销售技能训练
【时间地点】2018年4月19-20日深圳, 4月23-24日上海,4月26-27日北京
【参加对象】销售人员
【学习费用】2800/人
【垂询热线】021-31006787, 0755-61280006, 13381601000 Tony
【QQ/ 微信】320588808
如不需此类新建信息,请发送tuiding02(a)163.xn--com,,-zl2hwkp7ss5dfr6bca934bosqe41co2h7w8a2h3bvpia1363c
课程背景:
如今市场竞争日益激烈,销售环境越来越复杂。特别是大客户销售,销售涉及角色多、销售周期长、决策复杂。买方越来越成熟,需求越来越复杂和个性化,客户内部管理制度和采购流程越来越标准化,传统的销售方式和关系销售手段已越来越难以适应如此复杂的环境。商场如战场,无论战略多么英明,战场上的胜利都要依靠士兵的表现来实现。销售人员就是在一线作战的士兵,他们需要掌握一整套大客户销售技能来达成业绩目标。可一些企业却忽视对销售人员的训练,让销售人员靠摸索和经验去开展工作。很多销售人员存在以下情况:销售行动目标不清晰,为行动而行动;习惯看点和线,不习惯看面;把“我认为”作为行动目标,不去探索客户的真正需求;当未知或搞不定时,习惯把领导或专家顾问推到前面;没有资源投入和费用的概念,投入不看效果;按竞争对手的行动而采取行动。
在日常工作中,大客户销售人员面对以下问题:
要成为优秀的大客户销售人员,自己应该发展哪些关键素质?
如何开发客户?
如何全面地找到能够影响结果的相关人?
如何知道客户的真正需求?
如何应对真正影响决策的人?
如何判断销售机会的真实性?
如何制定销售项目的竞争策略?
如何进行成功的销售拜访?
如何处理客户的异议?
如何处理抗拒的客户?
如何发掘和引导客户需求?
如何与不同性格的客户打交道?
课程收益:
通过本课程的学习,使学员能够:
1.认识大客户销售人员的角色及优秀销售人员的关键素质
2.树立以客户为中心的观念
3.了解销售推进流程,掌握通过销售推进流程及销售漏斗管理销售机会的方法
4.了解客户采购流程,认识客户采购角色及各角色的关注点
5.掌握售前调研和策划的方法
6.掌握激发客户兴趣,开发潜在客户的方法与技巧
7.掌握评估销售机会并制定销售竞争策略的方法
8.掌握销售拜访中的开场白技巧
9.掌握通过询问了解客户需求的销售技巧
10.掌握处理客户抗拒的方法
11.掌握发掘并引导客户需求的销售技巧
12.掌握说服客户,达成协议的销售技巧
13.掌握克服客户顾虑的销售技巧
了解性格类型,掌握向不同性格客户销售的技巧
课程大纲:
单元一、大客户销售的类型及销售人员的关键素质
①大客户销售的类型
客户价值倾向与销售模式的匹配
不同销售模式的特点
②优秀大客户销售人员的角色及关键素质
优秀大客户销售人员的角色
个人素质的冰山模型
优秀大客户销售人员的关键素质
③与客户建立信任关系的要点
本单元的练习有:
培训活动:画像游戏
单元二、采购过程与采购影响者分析及销售进程管理
①客户购买过程分析
客户购买过程的阶段分析
客户购买过程中客户考虑变动曲线分析
②采购影响者分析
经济采购影响者
用户采购影响者
技术采购影响者
指导人员
③销售进程管理
销售进程各阶段的关键任务
销售机会评估与竞争策略选择
运用销售漏斗进行销售机会管理
销售进程各阶段的里程碑及成功率
销售漏斗与销售机会管理
本单元的练习有:
销售流程案例分析
单元三、客户需求导向的专业销售技巧
①客户开发与售前调研
开发客户的途径
售前调研——了解客户的组织状况、关键人员及其问题
售前调研的信息来源
客户开发的基本原则
通过电话进行客户开发的方法与技巧
②销售拜访中如何进行“开场白”
“开场白”的目的和作用
“开场白”的三步骤
③如何通过询问了解客户的需求
什么是客户的需求及“需要背后的需要”
问题的类型和作用
④如何克服客户的不关心(客户的“不关心”是指客户对销售人员销售的产品和服务没有兴趣的状态),发掘并引导客户的需求
客户的“不关心”及其产生的原因
克服客户“不关心”的三步骤
如何通过背景问题、难点问题、影响问题及需求—效益问题来挖掘和引导客户的需求
⑤如何进行说服
“说服”客户的时机
说服的三步骤
如何介绍“特征”和“利益”
⑥如何克服客户的顾虑
客户顾虑的三种类型
正确面对客户的顾虑
消除客户“怀疑”的技巧
消除客户“误解”的技巧
克服“缺点”的技巧
⑦如何达成协议
“达成协议”的时机
“达成协议”的三步骤
成交技巧
处理“客户的拖延”
处理“客户的拒绝”
本单元运用的练习题和角色扮演有:
客户开发练习
练习题(针对各个销售技巧的练习题)
角色扮演(通过角色扮演练习各种销售技巧)
单元四、如何向不同性格的客户销售
①建立良好客户关系的要点
②客户性格分析
“控制型”客户的特点
“表现型”客户的特点
“友善型”客户的特点
“分析型”客户的特点
③如何更好地影响不同性格的客户
本单元运用的测评有:
个性风格测评
讲师介绍:Peter
在多家大型企业(中保、天音通信、华为)从事过销售、销售管理的工作。此外,龙老师还在管理咨询公司从事了多年的组织及人力资源管理咨询工作,担任过众多管理咨询项目的项目经理。龙老师从事培训工作已有十多年。龙老师98年进入华为,在华为从事了四年的管理及销售培训工作,是华为公司级高级讲师,在华为的营销干部培训中心,做华为的营销培训讲师多年。在十多年的培训工作中,龙老师开发了多门个人品牌课程。这些课程基于龙老师自身丰富的企业实践经历及作为管理咨询顾问帮助企业解决问题的经验,将理论与实践进行了有效的结合,深入浅出。在培训中,龙老师善于采用双向交流的互动培训方式,善于调动学员参与,激发学员思考。龙老师务实的培训内容及娴熟的授课技巧深受学员赞誉。
龙老师培训过的企业如:中国移动、中国电信、中国联通、华为、西门子、中国银行、建设银行、民生银行、招商银行、中集、中兴通讯、平安保险、TCL、三一重工、中联重科、艾默生、盐田港集团、深航、南航、天音通信、泰康人寿、华安保险、金蝶软件、浙大中控、迈瑞、康佳、北汽福田、方太、华润、柳州卷烟厂、德力西、联通卫星公司、隽思、金宏威、新太科技、亚都图形、新世纪饮水科技、力劲机械、达实智能、华工信元、日海通讯、当纳利旭日、南山石油、中山建筑规划设计院、华力特成套设备、安科医疗器械、宇龙通讯、嘉讯软件、京基百纳、华森科技、广哈通信、中电普瑞 、骆驼集团…
5 years, 2 months
[PATCH v2 0/8] Result summary patchset fixes
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
v2 changes:
* fix match description logging by Controller
- split format_match_description into lines
* fixed match description log by RunSummaryFormatter
- split format_match_description by lines
* Fixed filtering out Start/Finish logs for the same job in
RunSummaryFormatter
* added RunSummaryFormatter example to the example recipe:
commit: examples/python_recipe.py: print result summary
Ondrej Lichtner (8):
add lnst.Controller.RecipeResults
Controller: move print_match_description to MachineMapper
Recipe: add class RecipeRun
lnst.Controller.Controller: use the Recipe instance for test init
lnst.Controller.Machine: generate and store JobResult objects
lnst.Controller.Job: passed should reflect what was expected
add lnst.Controller.RunSummaryFormatter
examples/python_recipe.py: print result summary
lnst/Controller/Controller.py | 29 ++++------
lnst/Controller/Job.py | 5 +-
lnst/Controller/Machine.py | 13 ++++-
lnst/Controller/MachineMapper.py | 13 +++++
lnst/Controller/Recipe.py | 39 +++++++++++++
lnst/Controller/RecipeResults.py | 98 +++++++++++++++++++++++++++++++
lnst/Controller/RunSummaryFormatter.py | 103 +++++++++++++++++++++++++++++++++
recipes/examples/python_recipe.py | 8 +++
8 files changed, 286 insertions(+), 22 deletions(-)
create mode 100644 lnst/Controller/RecipeResults.py
create mode 100644 lnst/Controller/RunSummaryFormatter.py
--
2.16.1
5 years, 2 months
[PATCH 1/3] lnst.Controller.Job: refactoring
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
Removing the netns parameter from the __init__ method and renaming the
host parameter to namespace.
The parameter expects a Namespace instance (a Host or a NetNamespace),
the host can be accessed through a new property "host" and the "netns"
proerty now returns the original Namespace instance the Job was created
with (these two can be identical if the Job is running on the initial
namespace of a slave).
I also moved the id property higher since I think it makes a bit more
sense to have it at the beginning of the class definition....
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Controller/Job.py | 63 ++++++++++++++++++++++----------------------
lnst/Controller/Machine.py | 4 +--
lnst/Controller/Namespace.py | 3 +--
3 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/lnst/Controller/Job.py b/lnst/Controller/Job.py
index 1026938..1ed079f 100644
--- a/lnst/Controller/Job.py
+++ b/lnst/Controller/Job.py
@@ -26,13 +26,12 @@ class Job(object):
job = m1.run("ls ~/")
print job.stdout
"""
- def __init__(self, host, what,
- expect=True, json=False, netns=None, desc=None):
- self._host = host
+ def __init__(self, namespace, what,
+ expect=True, json=False, desc=None):
self._what = what
self._expect = expect
self._json = json
- self._netns = netns
+ self._netns = namespace
self._desc = desc
self._res = None
@@ -46,6 +45,32 @@ class Job(object):
self._id = None
+ @property
+ def id(self):
+ """id of the job
+
+ Used internally by the Machine class to identify results coming
+ from the slave.
+ TODO make private?
+ """
+ return self._id
+
+ @id.setter
+ def id(self, val):
+ if self._id is not None:
+ raise Exception("Id already set")
+ self._id = val
+
+ @property
+ def host(self):
+ """the initial namespace of the host the job is running on"""
+ return self._netns.initns
+
+ @property
+ def netns(self):
+ """network namespace the Job is running in"""
+ return self._netns
+
@property
def stdout(self):
"""standard output of the Job
@@ -109,30 +134,6 @@ class Job(object):
else:
return False
- @property
- def netns(self):
- """name of the network namespace the Job is running in
-
- Not relevant yet as network namespaces aren't supported yet.
- """
- return self._netns
-
- @property
- def id(self):
- """id of the job
-
- Used internally by the Machine class to identify results coming
- from the slave.
- TODO make private?
- """
- return self._id
-
- @id.setter
- def id(self, val):
- if self._id is not None:
- raise Exception("Id already set")
- self._id = val
-
def wait(self, timeout=0):
"""waits for the Job to finish for the specified amount of time
@@ -150,7 +151,7 @@ class Job(object):
return True
if timeout < 0:
raise JobError("Negative timeout value not allowed.")
- return self._host.wait_for_job(self, timeout)
+ return self._netns._machine.wait_for_job(self, timeout)
def kill(self, signal=signal.SIGKILL):
"""send specified signal to the remotely running Job process
@@ -164,8 +165,8 @@ class Job(object):
False if an exception was raised while sending the signal.
"""
logging.info("Sending signal {} to job {} on host {}".format(signal,
- self._id, self._host.get_id()))
- return self._host.kill(self, signal)
+ self._id, self._netns.hostid))
+ return self._netns._machine.kill(self, signal)
def _to_dict(self):
d = {"job_id": self._id,
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 09e7540..67907be 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -366,7 +366,7 @@ class Machine(object):
if job._desc is not None:
logging.info("Job description: %s" % job._desc)
- res = self.rpc_call("run_job", job._to_dict(), netns=job.netns)
+ res = self.rpc_call("run_job", job._to_dict(), netns=job.netns.name)
self._recipe.current_run.add_result(JobStartResult(job, res))
return res
@@ -436,7 +436,7 @@ class Machine(object):
if job.id not in self._jobs:
raise MachineError("No job '%s' running on Machine %s" %
(job.id(), self._id))
- return self.rpc_call("kill_job", job.id, signal, netns=job.netns)
+ return self.rpc_call("kill_job", job.id, signal, netns=job.netns.name)
def get_hostname(self):
""" Get hostname/ip of the machine
diff --git a/lnst/Controller/Namespace.py b/lnst/Controller/Namespace.py
index d84c327..1f9d199 100644
--- a/lnst/Controller/Namespace.py
+++ b/lnst/Controller/Namespace.py
@@ -98,8 +98,7 @@ class Namespace(object):
the Job object will be automatically updated.
"""
- job = Job(self._machine, what, expect=not fail, json=json,
- netns=self.name, desc=desc)
+ job = Job(self, what, expect=not fail, json=json, desc=desc)
try:
self._machine.run_job(job)
--
2.16.1
5 years, 2 months
[PATCH 1/5] lnst.Common: fix __autor__ typo
by olichtne@redhat.com
From: Ondrej Lichtner <olichtne(a)redhat.com>
Several Common modules had this typo for a long time without anyone
noticing.
Reported-by: Jan Tluka <jtluka(a)redhat.com>
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Common/Config.py | 2 +-
lnst/Common/GitVersion.py | 2 +-
lnst/Common/LoggingHandler.py | 2 +-
lnst/Common/Logs.py | 2 +-
lnst/Common/ProcessManager.py | 4 ++--
lnst/Common/ShellProcess.py | 2 +-
lnst/Common/Utils.py | 2 +-
lnst/Common/Version.py | 2 +-
8 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/lnst/Common/Config.py b/lnst/Common/Config.py
index 2edf854..c2044f7 100644
--- a/lnst/Common/Config.py
+++ b/lnst/Common/Config.py
@@ -6,7 +6,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
olichtne(a)redhat.com (Ondrej Lichtner)
"""
diff --git a/lnst/Common/GitVersion.py b/lnst/Common/GitVersion.py
index b24962a..fe088a2 100644
--- a/lnst/Common/GitVersion.py
+++ b/lnst/Common/GitVersion.py
@@ -8,7 +8,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
olichtne(a)redhat.com (Ondrej Lichtner)
"""
diff --git a/lnst/Common/LoggingHandler.py b/lnst/Common/LoggingHandler.py
index a236922..e2a5dff 100644
--- a/lnst/Common/LoggingHandler.py
+++ b/lnst/Common/LoggingHandler.py
@@ -10,7 +10,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
olichtne(a)redhat.com (Ondrej Lichtner)
"""
diff --git a/lnst/Common/Logs.py b/lnst/Common/Logs.py
index 36e0580..06c8217 100644
--- a/lnst/Common/Logs.py
+++ b/lnst/Common/Logs.py
@@ -6,7 +6,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
jzupka(a)redhat.com (Jiri Zupka)
"""
import os, sys, shutil
diff --git a/lnst/Common/ProcessManager.py b/lnst/Common/ProcessManager.py
index 1995d15..8c5f2e7 100644
--- a/lnst/Common/ProcessManager.py
+++ b/lnst/Common/ProcessManager.py
@@ -6,7 +6,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
jzupka(a)redhat.com (Jiri Zupka)
"""
import os, signal, thread, logging
@@ -91,4 +91,4 @@ lock.acquire()
if os.waitpid != ProcessManager.waitpid:
ProcessManager.std_waitpid = os.waitpid
os.waitpid = ProcessManager.waitpid
-lock.release()
\ No newline at end of file
+lock.release()
diff --git a/lnst/Common/ShellProcess.py b/lnst/Common/ShellProcess.py
index 58c4bd1..74c1c14 100644
--- a/lnst/Common/ShellProcess.py
+++ b/lnst/Common/ShellProcess.py
@@ -6,7 +6,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
jzupka(a)redhat.com (Jiri Zupka)
"""
import pty, os, termios, time, signal, re, select
diff --git a/lnst/Common/Utils.py b/lnst/Common/Utils.py
index 93e9560..0a903be 100644
--- a/lnst/Common/Utils.py
+++ b/lnst/Common/Utils.py
@@ -6,7 +6,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
jzupka(a)redhat.com (Jiri Zupka)
"""
import functools
diff --git a/lnst/Common/Version.py b/lnst/Common/Version.py
index b2da2d2..c7bacfd 100644
--- a/lnst/Common/Version.py
+++ b/lnst/Common/Version.py
@@ -7,7 +7,7 @@ Licensed under the GNU General Public License, version 2 as
published by the Free Software Foundation; see COPYING for details.
"""
-__autor__ = """
+__author__ = """
olichtne(a)redhat.com (Ondrej Lichtner)
"""
--
2.15.1
5 years, 2 months
转发:如何火眼晶晶识别合适人才?
by ���D��
Message-ID: <107469210746921074692107469210746921074692107469210746921074692>
From: = lnst-developers = <lnst-developers(a)lists.fedorahosted.org>
To: <zonaiguan(a)klompmaker.com>
��������:2018-03-26 15:33:39
5 years, 2 months
lnst-developers:如何培养整个公司的质量意识? 61904
by ecsrzdip
研发质量管理
【时间地点】2018年3月26-27日 北京 确定开课 燕山酒店
3月29-30日 上海 确定开课 中祥酒店
【参加对象】企业CEO/总经理、研发总经理/副总、公司总工/技术总监、公司人力资源总监、研发总经理/副总、质量部经理、QA经理、PMO(项目管理办公室)主任、测试经理等
【学习费用】2800/人
【垂询热线】021-31006787,1338160100 许先生
【QQ/ 微信】320588808
课程背景:
通过产品质量问题的根源分析,发现54%的质量问题源自研发阶段,客户对产品的质量要求越来越高,质量成为产品在市场竞争中脱颖而出的重要武器:
1.如何培养整个公司的质量意识?
2.如何把质量管理活动变成具体开发的人员的自觉行为?
3.如何避免质量管理体系和实际执行“两张皮”?
4.如何把设计中构建产品质量的理念落实到具体的产品开发活动中去?
5.如何通过全流程的质量管理活动获得产品全生命周期成本的竞争优势?
6.如何构建能很好支撑公司核心业务运作的研发质量管理体系?
7.质量管理的职能部门如何设置?如何考评?与业务部门如何协同?
8.什么样的人比较从事研发质量管理,同时这部分人员的出路在哪里?
9.质量管理如何从一个支撑辅助角色,转变为公司研发决策的关键支撑?
这些问题是业界研发管理人员普遍感到困惑的核心问题。本课程通过业界最佳实践的分享、具体的案例研讨等方式,详细介绍研发质量管理六根基,具体涉及:
1.研发质量管理的组织体系
2.结构化的产品开发流程体系与指标体系
3.产品质量策略和质量计划的制定方法
4.产品开发过程中的技术评审体系(产品级+模块级)
5.产品开发的量化管理方法(业务度量、质量度量)
6.质量管理人员的工作职责、方法、职业发展
7.如何避免研发质量管理体系优化虎头蛇尾
课程收益:
1.了解业界产品研发质量管理的最佳模式与实践
2.了解业务导向的研发管理体系在公司管理体系中的位置
3.掌握研发质量管理组织的架构、职责定位
4.掌握结构化的产品开发流程体系、层次间的接口关系
5.掌握产品质量策划和质量计划的制定方法
6.掌握产品开发过程中技术评审的分层分级与操作方法
7.掌握如何建立质量保证体系、开展质量保证工作
8.掌握度量管理的方法及度量结果在过程改进和绩效考核中的应用
9.掌握如何成功在公司内部实施研发质量管理体系优化
课程大纲:
一、案例分析
二、研发质量管理概述
1.研发质量管理体系的六个根基:
1)之一:研发流程与指标体系
2)之二:研发质量的组织保障
3)研发质量执行体系
之三:研发质量策划(质量计划、质量目标)
之四:研发质量控制(评审、测试)
之五:研发质量保证(引导、培训、审计)
之六:研发质量改进(度量、考核、能力基线)
4)根基之载体:文件体系、IT体系
2.研发质量管理在研发价值链中的位置
1)研发质量管理与研发业务流程、研发项目管理之间的关系
2)研发质量管理与市场、制造、采购、客户服务之间的关系
3.研发质量管理中常见的误区(责任主体错位、缺少全流程概念、……)
4.业界常用研发管理模式介绍
1)NPD(PDMA)
8大要素介绍(结构化流程、管道管理、……)
实施实例讲解
2)CMM/CMMI(SEI)
模型/级别/过程域/具体实践
实施实例讲解
3)两者对比分析(优点、改进点、相互配合)
5.研发质量管理体系
1)质量管理新老七工具(关联图、系统图、直方图、控制图、……)
2)研发过程资产库(PAL)(作用、内容、……)
6.实战演练与问题讨论
三、六根基之一:研发流程与指标体系
1.研发流程体系定义方法论:Designflow
1)基于角色、关注客户、锁定开始与结束
2)角色、活动、链接、分支、结束、多线头、返回点、终端与连接
2.研发流程管理体系:
1)L0:公司整体流程体系定义方法论 波特价值链分析模型
2)L1:产品开发流程概览
3)L2:产品开发阶段流程
4)L3:产品开发子流程(软件开发流程、硬件开发流程、测试流程、……)
5)L4:活动定义与角色说明
6)L5:模板、指导书、样例、检查表
7)实例讲解:某案例公司产品开发流程体系介绍
8)使能流程体系
定义
举例:缺陷反馈流程、技术评审流程、问题跟踪流程、审计流程
3.度量的基本概念(定义、作用和目的、度量与测量、驾驶窗、度量模型、……)
1)过程质量指标、交付件质量指标
2)度量模型、度量流程
3)实例讲解:某业界最佳的某公司研发过程能力基线(PCB)
4.质量指标的定义
1)质量目标的分解(逻辑分解、物理分解)
2)实例讲解:某案例公司级质量指标定义
3)实例讲解:某案例公司产品级质量指标定义
4)实例讲解:某案例公司项目级质量指标定义
四、六根基之二:研发质量的组织保障
1.如何设置研发质量管理组织
1)研发质量管理组织设计中存在的误区
2)公司级的质量管理组织如何定位
3)产品级的质量管理组织如何定位
4)项目级的质量管理角色如何定位
5)质量管理与测试、项目管理、文档管理混合在一起的弊端分析
6)质量管理人员的规模确定(业界经验、产品类型、行业竞争、……)
2.质量管理人员的任职资格与职业发展通道
3.什么样的人适合承担QA角色(PQA、SQA、HQA、TQA……)
1)员工不愿意作QA怎么办?
2)没有QA或者兼职QA可能会导致的后果
4.实例讲解:某业界最佳研发质量管理人员的任职资格体系介绍
5.如何培养QA人员?
6.实战演练与问题讨论
五、六根基之三:研发质量策划
1.制定质量计划的时机
2.产品质量策略与产品质量计划的关系
1)实例讲解:某案例公司产品质量策略
2)实例讲解:某案例公司产品质量计划(产品级、软件/硬件项目级)
3.产品质量计划相关的责任主体(谁制定、谁批准、谁配合、谁实施)
4.质量目标定义方法
1)目标、上限、下限
2)公司基线目标、公司基线上限、公司基线下限
5.产品质量计划与产品开发其他计划的配合关系
6.产品质量计划与PHB的关系
7.实战演练与问题讨论
六、六根基之四:研发质量控制之:技术评审(TR)
1.企业在评审操作中常见的问题
1)评审抓壮丁、评审先变科普会、再变批斗会、评审缺少标准靠拍脑袋……
2.业界最佳研发管理企业的评审体系介绍
1)三级评审体系(业务评审、技术评审、正规检视)
3.技术评审(TR)
1)TR的目的、原则
2)TR评审流程(主要活动、输入、输出)
3)各个角色在评审中的定义和职责(SE、PM、QA、技术专家、……)
4)各TR点的评审要素是如何相互支撑的(产品级、模块级、职能领域、……)
5)TR的三个结论
6)评审专家管理方法
7)谁决定TR是否通过?决策团队、项目经理、QA、还是技术专家?
8)如何避免技术评审流于形式?(任职资格、计划确定、评审标准、……)
9)实例讲解:某案例公司具体3级技术评审体系
4.实例讲解:TR的载体:TR IT化
5.实战演练与问题讨论
七、六根基之四:质量控制体系之:测试验证(V&V)
1.研发企业在测试操作中常见的问题
1)基于设计测试、测试过分重复、测试人员地位低下、……
2.产品级渐增测试模型
1)为什么尽早测试?
2)渐增测试的优点分析?(提前发现问题、并行开发、减少测试重复、……)
3.高效测试的前提条件 清晰、明确的需求定义
1)客户化测试思维
2)缺陷引入阶段分析
3)优秀需求的标准
4.高效测试的法宝 刚刚好,不多测,也不少测
1)场景用例设计法,案例讲解
2)边界值用例设计法,案例讲解
3)等价类用例设计法,案例讲解
5.业界测试经验汇总(NASA)
6.实战演练与问题讨论
八、六根基之五:研发质量保证
1.研发质量保证(QA)的理念
1)QA的独立性
2)QA与QC的区别
2.QA工作关系与汇报关系 (PQA、SQA、HQA、TQA……)
3.QA主要活动
1)主要活动之一:产品质量计划
2)主要活动之二:引导培训
3)主要活动之三:产品质量度量
4)主要活动之四:技术评审(TR)
5)主要活动之五:审计
6)主要活动之六:质量活动协调
7)主要活动之七:产品质量回溯
8)主要活动之八:质量报告
9)主要活动之九:准备PHB
10)主要活动之十:收集体系改进建议
4.实战演练与问题讨论
九、六根基之六:研发质量改进
1.企业在质量改进中常见的问题
1)缺少量化数据,管理拍脑袋、数据堆积如山但缺少分析……
2.度量是研发质量改进的基础(没有度量就没有改进,也无法考核)
3.度量结果的应用
1)度量结果应用的常见误区
2)不考虑无人度量、用于考核又导致造假、如何处理?
3)哪些度量指标用于过程改进?
4)哪些度量指标用于绩效考核?
4.质量体系构造方法论:
1)如何处理变革中的人的问题?
2)如何正视研发管理体系优化导致的短期绩效下降?
3)如何分步实施研发管理体系优化?
4)研发管理体系优化3步曲(现状诊断、设计、推行)
5)研发体系优化成功的关键要素
6)实例讲解:分享历史近10家企业研发管理体系优化过程、遇到问题和解决方法
7)高层领导在研发体系优化中的关键作用
讲师介绍
Don 研发咨询资深顾问 INCOSE(国际系统工程师联合会www.incose.org)会员
专业背景:
十多年高科技企业的研发与管理实践经验,在某著名高科技企业工作期间,先后担当项目经理、系统工程师、产品经理、软件部经理;先后作为三个产品的主任系统工程师,带领系统分析团队开展客户需求调研、产品特性定义和详细的需求分解与分配等端到端的需求管理工作,奠定了产品市场的成功;长期与国际顶尖咨询顾问一起工作,全程参与该公司研发管理变革项目。曾驻印度工作一年半,先后负责四个合作项目(合作方分别为:BFL、Infosys)的实施,全程参与印度研究所CMM四级认证过程;对业务导向的研发质量管理体系的构建有深入地研究。
研发管理咨询经验:
曾作为项目总监或经理主导了10多个研发管理咨询项目,帮助这些企业全面建立研发管理体系(流程、组织、绩效),有效地提升了这些公司的研发效率和创新能力:
1)华大电子
2)超图软件
3)上海格尔
4)网易
5)重庆奥普泰
6)佳讯飞鸿
7)广联达软件
8)京信通信
9)华胜天成
10)信利半导体
研发管理培训经验:
曾为海尔、研祥科技、宇通重工、康佳集团、北京移动、北大方正、阿里巴巴、华胜天成、南太电子、网易、富港电子、用友软件、星网锐捷、东软股份、格林威尔、金蝶软件、天马微电子、超图地理、华动飞天、新奥特、信利半导体、郎坤软件、深圳桑菲、久其软件、德信无线、新意科技、沈阳移动、光桥科技、斯特奇、合力金桥、蓝托扑、绿盟科技、建行总行开发中心、成都迈普、上海电信、佳讯飞鸿、德信无线、创维集团、威创日新、TCL、日电电子、展讯通信、易思科技、盛大网络、威科姆科技、协同集团、成都索贝、重庆奥普泰、京信通信、汇川技术、亿力吉奥、迈瑞医疗、同方威视、大唐移动、中软国际、北大方正、思源电气、南京华瑞杰、联想网域、天津通广、兴唐通信、寿力亚洲、浪潮计算机、上海华虹、浦发银行、恒宝股份、武大吉奥、广东电信研究院、华宁电子、三安光电、广西博联、东方通信、北京拓明等100多家企业提供了专业的研发管理培训,涉及的行业包括通信、软件、互联网、家电、运营商、芯片等。
5 years, 2 months
代--开发--票
by kdhge42q4ergreh@luy.com
代开发、票,验后付/款
周先生 13723449109 微信号:a449109
5 years, 2 months