-
Notifications
You must be signed in to change notification settings - Fork 15
/
06-customer-meetings.html
286 lines (245 loc) · 11.5 KB
/
06-customer-meetings.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CS 4970: 06-customer-meetings slide set</title>
<meta name="description" content="A set of slides for UVa's Service Learning Practicum course">
<meta name="author" content="Aaron Bloomfield">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="../slides/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../slides/reveal.js/css/theme/black.css" id="theme">
<link rel="stylesheet" href="../slides/css/slp.css">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="../slides/reveal.js/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../slides/reveal.js/css/print/pdf.css' : '../slides/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<!--[if lt IE 9]>
<script src="../slides/reveal.js/lib/js/html5shiv.js"></script>
<![endif]-->
<script type="text/javascript" src="../slides/js/dhtmlwindow.js"></script>
<script type="text/javascript" src="../slides/js/canvas.js"></script>
<link rel="stylesheet" href="../slides/css/dhtmlwindow.css" type="text/css">
</head>
<body>
<div id="dhtmlwindowholder"><span style="display:none"></span></div>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section data-markdown><script type="text/template">
# CS 4970
### Capstone Practicum I
<center><small>[Aaron Bloomfield](http://www.cs.virginia.edu/~asb) / [[email protected]](mailto:[email protected]) / [@bloomfieldaaron](http://twitter.com/bloomfieldaaron)</small></center>
<center><small>Repository: [github.com/aaronbloomfield/slp](http://github.com/aaronbloomfield/slp) / [↑](index.html) / <a href="06-customer-meetings.html?print-pdf"><img class="print" width="20" src="images/print-icon.png"></a></small></center>
## Customer Meetings
</script></section>
<section data-markdown><script type="text/template">
# Contents
[Introduction](/#intro)
[Driving a Customer Meeting](/#driving)
[Legal Issues](#/legal)
</script></section>
<section>
<section data-markdown id="intro"><script type="text/template">
# Introduction
</script></section>
<section data-markdown><script type="text/template">
## Ah, Meetings...
![meetings](https://cdn.shopify.com/s/files/1/0535/6917/products/meetingsdemotivator_large.jpeg)
</script></section>
<section data-markdown><script type="text/template">
## Ah, Meetings...
- Studies of software developers have shown that nearly 60% of your time as a developer is working with another person
- 28% working with just one other person
- 30% working with two or more people
- (these numbers came from somewhere valid, but I have no idea where...)
- Programming is NOT a solo activity!
</script></section>
<section data-markdown><script type="text/template">
## Meetings of All Flavors
- Meetings come in all different forms
- They change based on where you currently are in the project
- Early in the project (inception phase):
- Pitch meeting
- Vision meeting
- Contract negotiation
</script></section>
<section data-markdown><script type="text/template">
## Meetings of All Flavors
- Starting the project:
- Requirements elicitation and modeling
- Initial customer meetings
- End of the project:
- Post-mortem
- Customer wrap-up
- Maintenance planning
</script></section>
<section data-markdown><script type="text/template">
## ♫ [Stuck in the middle w/you](https://www.youtube.com/watch?v=DohRa9lsx0Q) ♫
- During the course of the project are the regular meetings that drive how a project progresses
- These are called different things in each process
- Daily meeting
- Stand-Up meeting
- Scrum meeting
- Iteration meeting
- In the end, these all drive the iterative process
</script></section>
<section data-markdown><script type="text/template">
## Scrum Iterations
<a href="http://en.wikipedia.org/wiki/Scrum_%28software_development%29#mediaviewer/File:Scrum_process.svg"><img src="http://upload.wikimedia.org/wikipedia/commons/5/58/Scrum_process.svg" style="background-color:white" alt="scrum overview" title=""Scrum process" by Lakeworks - Own work. Licensed under Creative Commons Attribution-Share Alike 3.0-2.5-2.0-1.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Scrum_process.svg#mediaviewer/File:Scrum_process.svg"></a>
</script></section>
<section data-markdown><script type="text/template">
## How do we differ?
- This is not your full time job
- You do not have an office to go to
- You do not have a clock to punch (i.e. you do your work at odd hours)
- You are not being paid (sort of...)
</script></section>
<section data-markdown><script type="text/template">
## How does this affect your meetings?
- Frequency
- Timing (ideally, held at same time/place)
- Accountability
- Routine (set questions to answer usually)
</script></section>
<section data-markdown><script type="text/template">
## What makes a bad meeting?
- We've all been in them... what do you think?
</script></section>
<section data-markdown><script type="text/template">
## What this should not affect
- Meetings with the customer need to "follow the rules"
- Even though our process is a little different, customers are still customers!
- If anything, we need to show that we're on top of what we're working on!
</script></section>
</section>
<section>
<section data-markdown id="driving"><script type="text/template">
# Driving a Customer Meeting
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Customers are fickle creatures
- Some will want to drive the meeting
- Some will want you to drive
- Some will wait for any requests for comments
- Some will offer comments so readily you won't get a word in
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #1: Do not wing it!
- These people are "paying" you
- You should have a well thought out demonstration / presentation ready to go
- You should have specific questions planned out
- You should have these items prioritized so you get through the high-value items first
- The customer will not come to the meeting with things to talk about -- they are going to follow ***your*** lead
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #2: Ask their opinion!
- Some customers will give you their thoughts no matter what
- Others, you need to draw it out
- The trick is to get them to comment specifically on things and not to give general answers
- Try to draw them into talking about a specific feature or question
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #3: Incomplete work can't be demonstrated
- Focus on your successes from the past iteration
- But don't hide the fact that you didn't complete something
- But also don't put it in their face that you didn't complete something!
- Keep the meeting on a positive note
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #4: Set priorities for the next iteration
- Based on what you show off this week, derive what are the next most important features that should be worked on during the coming iteration
- Remember: the customer chooses with your input, not the other way around!
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #5: Be professional
- Act professional -- watch your jokes, appropriate language, etc.
- Dress properly -- we aren't talking a suit here, but maybe comb your hair and put on a clean shirt
- (and pants)
- (okay, we can go a bit beyond this)
- Don't ask inappropriate questions
- Use the appropriate terminology and words
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #6: Understand the mentor's role
- The mentor is the grad student, in our case, and will not be present at the customer meetings
- S/he is there to offer advice
- This may be occasional guidance, or it may be a full walk-through of something
- S/he is there to make sure that the project is progressing
- S/he is NOT there to code
- In fact, for legal reasons, s/he can NEVER contribute code
</script></section>
<section data-markdown><script type="text/template">
## Driving a Customer Meeting
- Rule #7: Explain things as necessary
- Customers, for the most part, are not computer scientists
- They should understand everything you are discussing
- So explain as necessary, but don't "talk down" to them
- The time for technical discussions is probably not at a customer meeting
</script></section>
<section data-markdown><script type="text/template">
## Meeting Planning
- Develop an agenda
- Plan out your demo
- Come up with questions
- Come up with ideas on what will be in the next iteration
- Decide what is a reasonable workload in the next iteration
</script></section>
</section>
<section>
<section data-markdown id="legal"><script type="text/template">
# Legal Issues
</script></section>
<section data-markdown><script type="text/template">
## Legal rules for customers
- This was discussed in the [legal issues](01-legal.html#/) slide set (specifically [here](01-legal.html#/customers))
- The rules are:
- Never go to a customer meeting by yourself -- always in a group of 2 or more
- Never be in a situation where the customer gives you a ride home
- We'll pay transportation costs if you get stranded
- If anything feels "wrong", leave immediately and let us know ASAP
</script></section>
<section data-markdown><script type="text/template">
## The source of the rules
- The rules are in addition to the NDAs and overall legal agreement (found [here](../uva/legal.html)), which have been discussed previously
- The three rules have been created in conjunction with Rick Schupp, the director of [UVa's office of Risk Management](http://www.virginia.edu/riskmanagement/)
- They are not a judgment of your capabilities as an adult
- Nor is it a judgment of the customer
- It is simply a set of guidelines to keep you safe
- And to address a UVa liability issue
</script></section>
<section data-markdown><script type="text/template">
## A note about travel
- It is between you and the customer whether you travel to him/her, or s/he comes to you
- You can reserve a room in Rice
- However, you are not to travel to a non-Charlottesville
- The UVa office of Risk Management has deemed any address outside of Charlottesville as being "too far" to be safe
- Any non-Charlottesville customers have been made aware of this
</script></section>
</section>
</div>
</div>
<script src="../slides/reveal.js/lib/js/head.min.js"></script>
<script src="../slides/reveal.js/js/reveal.js"></script>
<script src="../slides/js/settings.js"></script>
</body>
</html>