Wiki-like collaborative development
for seamless customer involvement
How can we make a seamless workflow where
“Business people and developers work together daily”?
paolo.predonzani@manydesigns.com
carlo.bonamico@nispro.it
The problem: communication
in real life
2
An exciting new project
We're having a public event next month. We want to have
online registrations.
Chris
CEO

Who is going to use the system?

Sandra of marketing is in charge of that

Albert
Analyst

Chris
CEO

What goal do you want to achieve?
Albert
Analyst

At least 400 registrations. The more, the better.
Chris
CEO

3
Hi, I'd like to discuss your requirements for the new event
registration system
Good, we need to get going quickly. Time is money, can
we have it by the end of the week?
Sandra
Marketing

I'll see what we can do. What is your #1 priority?

The registration form must be online ASAP
Sandra
Marketing

Albert
Analyst

And your second most urgent priority?

We need the list of registered participants so we can
send them updates about the event by email
Sandra
Marketing

Albert
Analyst

Any ideas about what to ask in the form?

We did an event last quarter and there was a paper form.
Basic stuff: name, business contacts.
Sandra
Marketing

Albert
Analyst

May I have a copy of the form?
Albert
Analyst

Sure
Sandra
Marketing

Sandra
Marketing

Albert
Analyst

Any other requirements?
Nothing that I can think of

Albert
Analyst

4
By the end of the week...
Here is a first version of the system. The form is on-line
and the list of participants is available.
Let's have a look. Hmm, looks good but the branding is
wrong. We have a special branding for this event.
Sandra
Marketing

Ok, we can sort it out. Just send me the branding files by
email.
I want Martha, who is a colleague of mine, to have a look
at this. Martha....

Sandra
Marketing

Albert
Analyst

Albert
Analyst

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?

Martha
Marketing

We'll need to improve the back-office functionality a bit
All right, all right, see you next week
Sandra
Marketing

Albert
Analyst

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
Three months later, the development team
handles a new requirement
The client has asked for a new feature
John
Designer

Ok, what is it about?
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.

John
Designer

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.
Good, are you available for the implementation?

John
Designer

Robert
Developer

Sure just install the SDK, the platform, the IDE, the build
system, the application server and you're good to go
Hmmm, I don't think I'm ready for that...

John
Designer

Robert
Developer

Not for the next three weeks

Ouch. Can I implement it myself?
John
Designer

Robert
Developer

Robert
Developer

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

Where is the documentation?
Mark
Training

Documentation?

Yes we're rolling out the system to a new office and they
need to learn how to use the system
Mark
Training

Albert
Analyst

We've exchanged some documents with the customer
that could serve the purpose, but they're almost one year
old.
Albert
Analyst

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
So what are the plans for this year's christmas party?
John
Developer

Not sure. Who's coming anyway?

Our team is definitely going, but I'm not sure about the
others. Should we send an email to everybody?
John
Developer

Tom
Developer

We could use the event reservation system to find out
No way, it's too complicated. I'll hack an online form in
php over the lunch break.

Tom
Developer

John
Developer

11
Ideas for discussion

• Remember to scale down, not only scale up

12
Wiki-like development: the practice

A collaborative workflow is possible in
the common ground
13
A skills perspective

Specs
Analysis

Testing

Coding

Docs

Users/
Business analysts

Developers
14
A formality perspective

Free text
Wiki

Informal

Executable
specs
In-system help

Code
Docs

Formal
15
A size perspective
Methodology
Quick hacks
Best tool
for the job

Pragmatic
solutions

Standard
tools
Repeatability

Smaller applications

Larger applications
16
A refinement perspective

Mockups

Frameworks/
platforms

Mature code

Mock code

Rough

Refined
17
} Presentation
} Customization
} Security
} Data access

18
An example

19
20
21
22
23
24
25
26
Lessons learnt
27
Do’s
•
•
•

One installation, from the beginning, shared by all

•
•

Configuration AND customization (not VS)

Testing and validation early (by/with end users)
Requirements, implementation and help on the same
page
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 Predonzani
MANYDESIGNS srl founder
paolo.predonzani@manydesigns.com
@manydesigns
Carlo Bonamico
Solution Architect & Trainer
carlo.bonamico@nispro.it
@carlobonamico

Wiki-like collaborative development for seamless customer involvement

  • 1.
    Wiki-like collaborative development forseamless customer involvement How can we make a seamless workflow where “Business people and developers work together daily”? paolo.predonzani@manydesigns.com carlo.bonamico@nispro.it
  • 2.
  • 3.
    An exciting newproject We're having a public event next month. We want to have online registrations. Chris CEO Who is going to use the system? Sandra of marketing is in charge of that Albert Analyst Chris CEO What goal do you want to achieve? Albert Analyst At least 400 registrations. The more, the better. Chris CEO 3
  • 4.
    Hi, I'd liketo discuss your requirements for the new event registration system Good, we need to get going quickly. Time is money, can we have it by the end of the week? Sandra Marketing I'll see what we can do. What is your #1 priority? The registration form must be online ASAP Sandra Marketing Albert Analyst And your second most urgent priority? We need the list of registered participants so we can send them updates about the event by email Sandra Marketing Albert Analyst Any ideas about what to ask in the form? We did an event last quarter and there was a paper form. Basic stuff: name, business contacts. Sandra Marketing Albert Analyst May I have a copy of the form? Albert Analyst Sure Sandra Marketing Sandra Marketing Albert Analyst Any other requirements? Nothing that I can think of Albert Analyst 4
  • 5.
    By the endof the week... Here is a first version of the system. The form is on-line and the list of participants is available. Let's have a look. Hmm, looks good but the branding is wrong. We have a special branding for this event. Sandra Marketing Ok, we can sort it out. Just send me the branding files by email. I want Martha, who is a colleague of mine, to have a look at this. Martha.... Sandra Marketing Albert Analyst Albert Analyst 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? Martha Marketing We'll need to improve the back-office functionality a bit All right, all right, see you next week Sandra Marketing Albert Analyst 5
  • 6.
    Ideas for discussion •Some requirements come out only when the system is available • Some users are involved only when the system is available 6
  • 7.
    Three months later,the development team handles a new requirement The client has asked for a new feature John Designer Ok, what is it about? 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. John Designer 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. Good, are you available for the implementation? John Designer Robert Developer Sure just install the SDK, the platform, the IDE, the build system, the application server and you're good to go Hmmm, I don't think I'm ready for that... John Designer Robert Developer Not for the next three weeks Ouch. Can I implement it myself? John Designer Robert Developer Robert Developer 7
  • 8.
    Ideas for discussion •Simple changes should be simple to make • End-user computing (use with caution) 8
  • 9.
    One year later,the system is mature and has been used successfully for several events Where is the documentation? Mark Training Documentation? Yes we're rolling out the system to a new office and they need to learn how to use the system Mark Training Albert Analyst We've exchanged some documents with the customer that could serve the purpose, but they're almost one year old. Albert Analyst 9
  • 10.
    Ideas for discussion •Separate documentation gets old and outdated • In-system help is kept aligned more often 10
  • 11.
    Two years later,at the coffee machine So what are the plans for this year's christmas party? John Developer Not sure. Who's coming anyway? Our team is definitely going, but I'm not sure about the others. Should we send an email to everybody? John Developer Tom Developer We could use the event reservation system to find out No way, it's too complicated. I'll hack an online form in php over the lunch break. Tom Developer John Developer 11
  • 12.
    Ideas for discussion •Remember to scale down, not only scale up 12
  • 13.
    Wiki-like development: thepractice A collaborative workflow is possible in the common ground 13
  • 14.
  • 15.
    A formality perspective Freetext Wiki Informal Executable specs In-system help Code Docs Formal 15
  • 16.
    A size perspective Methodology Quickhacks Best tool for the job Pragmatic solutions Standard tools Repeatability Smaller applications Larger applications 16
  • 17.
  • 18.
    } Presentation } Customization }Security } Data access 18
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Do’s • • • One installation, fromthe beginning, shared by all • • Configuration AND customization (not VS) Testing and validation early (by/with end users) Requirements, implementation and help on the same page Prototypes: make them pretty 28
  • 29.
    Do’s (2) • • • • Let developershave their local environment if needed Require common skills Integrate nicely with current technologies Integrate nicely with the tools (IDEs, build automation, CI) 29
  • 30.
    Don’ts • Don’t makea single skill critical • End-user computing doesn’t scale well (for complexity) • Don’t ignore trade offs, learn from them 30
  • 31.
    Ideas for futurework • Better integration with versioning • Better integration with project/process management • More fluid workflow: sketch -> spec -> prototype -> implementation 31
  • 32.
  • 33.
    Thank you Paolo Predonzani MANYDESIGNSsrl founder paolo.predonzani@manydesigns.com @manydesigns Carlo Bonamico Solution Architect & Trainer carlo.bonamico@nispro.it @carlobonamico