Skip to content
This repository has been archived by the owner on Feb 22, 2019. It is now read-only.

persona_innovator_pablo

Pavel Vlasov edited this page Feb 8, 2016 · 6 revisions

#Pablo

The Innovator

Pablo works in an Innovation/R&D lab of the consumer line of business of a large global financial institution.

One of Pablo's responsibilities is development of new product prototypes. Most new products have to communicate with multiple back-end and third-party systems and as such Pablo has to work with multiple teams - business, IT, vendors and other third-parties - which often use different lingos.

Goals

  • Collect knowledge from different teams - business requirements, data structures and integration interfaces of existing systems.
  • Design a solution.
  • Build a prototype.
  • Present the prototype to all the parties involved to verify that is solves the problem.

The above steps can be iterated over several times as new details pop-up and more people and teams get involved.

Challenges

  • In a large organization it is a challenge of its own to come up with an elegant solution to a tough problem because the solution has to account for many minutia of different existing systems - data structures, interfaces, performance. However it is even bigger challenge to communicate the details of the solution to all the teams involved as different teams have different areas of focus, different expertise and use different jargon.
  • Also the teams are distributed across the globe and operate in different time zones.
  • As the project progresses more and more people get involved and provide input. Already accumulated knowledge shall be communicated to the new stakeholders and their input shall be incorporated into the product body of knowledge and communicated to other stakeholders.

NFS to the rescue

Pablo starts with generating a new project workspace with Nasdanika Application Workspace Wizard.

Then Pablo creates a new ECore model in the generated model project and captures the problem domain in the model leveraging ECore Tools class diagram editor. He documents model elements - classes, attributes, references, and operations - using markdown. It allows to link model documentation to external documentation resources and also cross-reference model elements. UML diagram pre-processor generates UML diagrams from textual definitions. It allows to insert UML diagrams into documentation, e.g. a state transition diagram for a particular class attribute.

Pablo also creates a story model to capture information about users/actors/personas, their user stories and acceptance criteria. Story model element descriptions may include references to the domain model elements and vice versa.

Once the first version of the models is ready Pablo generates Java code from the model, builds the product with Maven and Tycho and deploys it to the company intranet. The documentation route of the product serves model documentation including auto-generated context UML diagrams for packages and classes. It also serves the story model documentation with auto-generated UML diagrams as well. 1

In addition to auto-generated UML diagrams, images of diagrams from the ECore diagram editor can also be linked to the documentation. While auto-generated UML diagrams are always in sync with the model and don't take any effort to build, diagram images taken from the editor may be more effective in communicating domain knowledge.

Pablo leverages Nasdanika HTML and company's Bootstrap theme to build Web and hybrid mobile UI compliant with the company branding guidelines. The UI code is implemented in the form routes - it is linked to the generated model classes and uses the model data to produce HTML.

Connectivity to back-end systems is done through helper reusable bundles, mapping between the domain model and back-end data structures is either implemented in the model itself or in helper classes.

Along with development of the prototype UI Pablo creates automated UI tests with Nasdanika Webtest. Pablo annotates test methods and actor/page classes to link them to acceptance criteria and actors/users/personas in the story model. Nasdanika Webtest framework outputs test results in a form of a model with associated screenshots. Test results are wrapped into an OSGi bundle, which becomes a part of the prototype product. The documentation route links test results to user stories' acceptance criteria. Test results are presented in the form of automatically generated slide-shows, sequence diagrams and SWF videos. The videos are generated from collected screenshots and test steps descriptions leveraging a Text-To-Speech engine. Generated slide-shows and videos are especially beneficial in communicating mobile UI flows.

Pablo checks-in all sources in a version control system and creates a build job on a CI server which automatically builds, tests, and deploys the product when changes are checked-in to the version control system.

The above process allows Pablo to effectively and efficiently communicate project knowledge to multiple teams, quickly incorporate feedback, and demonstrate end-to-end traceability from requirements in the form user stories and acceptance criteria to a working application as proven by recorded results of UI tests linked to the acceptance criteria.


1 Story model documentation and linking of test results to the story model is work-in-progress.

Clone this wiki locally