Agile Prototypingwith Justinmind
PrototyperWorkshop @ CAS2010 – June
11
Workshop Objetive (Today we will prototype, not program)
Explore rapid prototyping within an agile project context. Know about benefits of
prototyping in:
1. Visual requirements capturing2. Funcional validation together with the
cliente and w/o tecnicians3. Let participate the user in the
definition of his applicationsTheory
JP
Validate
Prototype
Workshop Structure1. Prototyping and agile methodologies (theory)2. Justinmind Prototyper and rapid prototyping3. We are going to prototype a real case!. New
functionality for the conference web site-4. Basic JP functionality for the workshop5. Prototyping new funcionality (pair prototyping or
not)6. Agile-Spain community will validate new
funcionality with Justinmind On-demandBETA.7. We will do different iterations until we are
running out of time …
Theory JP ValidatePrototype
Concepts
• Why do prototyping? What’s the usage of the prototype?
• Prototyping within an agile development process• Agile prototyping• Final objective: testing together wit users from the
beginning (and not only at the end)...)
Theory JP ValidatePrototype
Benefits of prototyping• Improve requirements quality• Get client approval• Adopt user and client language• Improve developer understanding• Get end user feedback• Get business experts involved• Eliminate scope ambiguities
Theory JP ValidatePrototype
Prototypes and agility
Agile Methodologies using prototypes:
• BDD. Behavior Driven Development• XP, Scrum... (TAKE A LOOK AT THE BIBLIOGRAPHY IN APPENDIX)
• PDD (Prototype Driven Development)• APDD = BDD + rapid prototyping
Common objectives:• Requirements capturing and definition• Functional validation
Theory JP ValidatePrototype
How fit prototypes in an agile context
• A the beginning of every iteration• During functional and technical definition• Depending on concrete use case• Project size is not important• Very useful in distributed environments (Off-
shore/Near-Shore)• Preferible: Agile Prototyping!
Theory JP ValidatePrototype
1/2
Theory JP ValidatePrototype
2/2How fit prototypes in an agile context
Agile Prototyping
Prototyping is agile if:• Separate documentation is reduced or
even eliminated• Fast prototype are available• Client involvement is obtained (High
Definition Prototype)
Important: Prototype must be dynamic and not static: Data and behavior simulation.
Theory JP ValidatePrototype
1/2
http://agilemanifesto.org/iso/en/ • Individuals and interactions over processes and tools• Working software over comprehensive documentation
Elimina documentos largos y ambiguos por la precisión de un prototipo.• Customer collaboration over contract negotiation
'El usuario es el rei'. La mejor manera en la que el usuario final puede participar en el desarrollo, dé su feedback y entienda lo que se va a desarrollar es viendo e interactuando con un prototipo, con una simulación de lo que se va a constriur y a poder ser un prototipo en alta definición.
• Responding to change over following a planImplementa el cambio rápido sobre el prototipo, verifica que todo es consistente y no tendrás sorpresas en el desarrollo y eliminarás prácticamente el 'rework'.
Theory JP ValidatePrototype
2/2Agile Prototyping
Simulation Hi-Fi involves end user
The end user is the KING::
• Finally he is going to use the application
• No technical users involves if they can touch and experiment
• Experiment with a high definition prototype or a simulation
Theory JP ValidatePrototype
Fast prototyping
• Methodologies like BDD describes that you have to prototype, but not how
• Prototyping only makes sense if it’s much faster and easier than programming
• Change must be applied in a short timeframe
• With JP changes are incorporated together with the client
Theory JP ValidatePrototype
Justinmind Prototyper
• Problem: HI-FI Prototyes are expensive• Solution: Justinmind Prototyper• Fase prototyping tool• Instantaneous simulation• Data simulation• High definition simulatrion (HI-FI)
Graphical design / native controls and behaviorInteractional and rule-based business logic
Theory JP ValidatePrototype
How are we going to prototype?
• Pair prototyping or individual prototyping
• Anyway two different hats:– The cliente or end user– The technician or business analyst
Theory JP ValidatePrototype
Scope of new functionality of
CAS2010 web siteThat’s only a proposal. Feel free to add other
requirements!• Forum• Self-registry• Contact with speakers• Reputation of speakers and sessions
1/2
Theory JP ValidatePrototype
• Login / private web site.• User roles:
– Administrator. – Contributor.– Conference assistant– Registered user, but not assistant
• Votation of sessions• Commenting conference• Social network associated with conference
2/2
Theory JP ValidatePrototype
How to do the changes?
We already have a web site, so we “only” have to improve the site.
• How prototyping of the already existing web site was done?
• Let’s learn JP “on the road”
Theory JP ValidatePrototype
Prototyper Fast Track
• Events, graphical design, scenarios• Fix elements on the screen• Show and hide events• Linke screens by drag’n drop• Brush to paste events• Business logic with regular
expressions
Theory JP ValidatePrototype
Let’s go!!!
Prototype validation• HTML generation• Upload prototype on Justinmind On-demandBETA.
– Publish– Invite end users and everybody who should participate– Validate and test
• Recover comments in JP• Automatica documentation generation (if somebody
needs)• Test-before-build process
Theory JP ValidatePrototype
BibliographyPrototypes and
agilityAll agile meth. and DSDM (use functional prototypes) http://balagan.org.uk/work/agile_comparison.htm http://en.wikipedia.org/wiki/Rapid_Application_Development
Agility@Scale: Strategies for Scaling Agile Software Development
https://www.ibm.com/developerworks/mydeveloperworks/blogs/ambler/entry/strategies_for_distributed_agile_teams?lang=en
Dynamic Systems Development Methodhttp://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method http://www.dsdm.org/
Theory JP ValidatePrototype