Agile prototyping with justinmind prototyper in cas2010 en

21
Agile Prototyping with Justinmind Prototyper Workshop @ CAS2010 – June 11

description

www.justinmind.com - Along with mockups and wireframes, the new Justinmind Prototyper 3.0 allows you to create fully functional dynamic prototypes. This is very useful in Agile Development Methodologies because you can reduce the amount of documentation and it’s a faster way to gather, share and communicate requirements and functional specifications. From highly interactive softwares to mobile apps or complex dynamic websites (i.e. Facebook or Easyjet websites) you can prototype anything in minutes. Both on Windows and Mac, the desktop app is easy as PowerPoint. Justinmind 3.0 provides full drag and drop features to wireframe without any coding. Justinmind is also very powerful as the prototype is, for end users, virtually identical to the final product.

Transcript of Agile prototyping with justinmind prototyper in cas2010 en

Page 2: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 3: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 4: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 5: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 6: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 7: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 9: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 10: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 11: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 12: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 13: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 14: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 15: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 16: Agile prototyping with justinmind prototyper in cas2010 en

• 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

Page 17: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 18: Agile prototyping with justinmind prototyper in cas2010 en

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!!!

Page 19: Agile prototyping with justinmind prototyper in cas2010 en

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

Page 20: Agile prototyping with justinmind prototyper in cas2010 en

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