Upload
paolo-predonzani
View
472
Download
0
Embed Size (px)
DESCRIPTION
Presentation at the Italian Agile Day (Reggio Emilia - Nov 30th, 2013)
Citation preview
Wiki-like collaborative developmentfor seamless customer involvement
How can we make a seamless workflow where “Business people and developers work together daily”?
[email protected]@nispro.it
The problem: communication in real life
2
Who is going to use the system?
AlbertAnalyst
We're having a public event next month. We want to have online registrations.
ChrisCEO
Sandra of marketing is in charge of that
ChrisCEO
What goal do you want to achieve?
AlbertAnalyst
At least 400 registrations. The more, the better.
ChrisCEO
An exciting new project
3
I'll see what we can do. What is your #1 priority?
AlbertAnalyst
Good, we need to get going quickly. Time is money, can we have it by the end of the week?
SandraMarketing
The registration form must be online ASAP
SandraMarketing And your second most urgent priority?
AlbertAnalyst We need the list of registered participants so we can
send them updates about the event by email
SandraMarketing
Hi, I'd like to discuss your requirements for the new event registration system
AlbertAnalyst
Any ideas about what to ask in the form?
AlbertAnalystWe did an event last quarter and there was a paper form.
Basic stuff: name, business contacts.
SandraMarketing May I have a copy of the form?
AlbertAnalystSure
SandraMarketing Any other requirements?
AlbertAnalystNothing that I can think ofSandra
Marketing4
By the end of the week...
Ok, we can sort it out. Just send me the branding files by email.
AlbertAnalyst
Let's have a look. Hmm, looks good but the branding is wrong. We have a special branding for this event.
SandraMarketing
I want Martha, who is a colleague of mine, to have a look at this. Martha....
SandraMarketing
We'll need to improve the back-office functionality a bit
AlbertAnalyst
Here is a first version of the system. The form is on-line and the list of participants is available.
AlbertAnalyst
All right, all right, see you next week
SandraMarketing
Hi. The list of participants is great, but I know some participants will never register online. They call me on the phone and ask me to add them. Others call me to cancel the registration. How can I handle this on the system?
MarthaMarketing
5
Ideas for discussion
• Some requirements come out only when the system is available
• Some users are involved only when the system is available
6
Ok, what is it about?
RobertDeveloper
The client has asked for a new feature
JohnDesigner
The number of speakers has become so high that the marketing office cannot handle the load. They want the speakers to log in and be able to do a bunch of stuff, like viewing the people interested in their talk or the answers to the feedback form.
JohnDesigner That doesn't sound difficult. The system already has this
functionality for the marketing office. We just need to create a similar view for the speakers.
RobertDeveloperGood, are you available for the implementation?
JohnDesigner Not for the next three weeks
RobertDeveloperOuch. Can I implement it myself?
JohnDesigner
Sure just install the SDK, the platform, the IDE, the build system, the application server and you're good to go
RobertDeveloperHmmm, I don't think I'm ready for that...
JohnDesigner
Three months later, the development teamhandles a new requirement
7
Ideas for discussion
• Simple changes should be simple to make
• End-user computing(use with caution)
8
One year later, the system is mature and has been used successfully for several events
Documentation?
AlbertAnalyst
Where is the documentation?
MarkTraining
Yes we're rolling out the system to a new office and they need to learn how to use the system
MarkTraining We've exchanged some documents with the customer
that could serve the purpose, but they're almost one year old.
AlbertAnalyst
9
Ideas for discussion
• Separate documentation gets old and outdated
• In-system help is kept aligned more often
10
Two years later, at the coffee machine
Not sure. Who's coming anyway?
TomDeveloper
So what are the plans for this year's christmas party?
JohnDeveloper
Our team is definitely going, but I'm not sure about the others. Should we send an email to everybody?
JohnDeveloper
We could use the event reservation system to find out
TomDeveloperNo way, it's too complicated. I'll hack an online form in
php over the lunch break.
JohnDeveloper
11
Ideas for discussion
• Remember to scale down, not only scale up
12
A collaborative workflow is possible in the common ground
Wiki-like development: the practice
13
Users/Business analysts Developers
Specs
Testing
Docs
CodingAnalysis
A skills perspective
14
Informal Formal
Executablespecs
In-system help
Code
Docs
Free text
Wiki
A formality perspective
15
Smaller applications Larger applications
Pragmaticsolutions
Methodology
Standardtools
Repeatability
Quick hacks
Best toolfor the job
A size perspective
16
Rough Refined
Frameworks/platforms
Mock code
Mature codeMockups
A refinement perspective
17
} Presentation
} Customization
} Security
} Data access18
19
An example
20
21
22
23
24
25
26
Lessons learnt27
Do’s
• One installation, from the beginning, shared by all
• Testing and validation early (by/with end users)
• Requirements, implementation and help on the same page
• Configuration AND customization (not VS)
• Prototypes: make them pretty
28
Do’s (2)
• Let developers have their local environment if needed
• Require common skills
• Integrate nicely with current technologies
• Integrate nicely with the tools (IDEs, build automation, CI)
29
Don’ts
• Don’t make a single skill critical
• End-user computing doesn’t scale well (for complexity)
• Don’t ignore trade offs, learn from them
30
Ideas for future work
• Better integration with versioning
• Better integration with project/process management
• More fluid workflow: sketch -> spec -> prototype -> implementation
31
References
Portofino:https://sourceforge.net/projects/portofino/http://www.manydesigns.com/en/portofino
32
Thank you
Paolo PredonzaniMANYDESIGNS srl [email protected]@manydesigns
Carlo BonamicoSolution Architect & [email protected]@carlobonamico