1 Setup - Training & Preparation 2
1.1 Agile Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Why Agile? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Agile Manifesto’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Working in an Agile way . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3.1 The Timebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3.2 Iteration Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3.3 Handling Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Team Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Product Owner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Tech Lead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.4 Business Analyst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Project Timebox Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Project Timebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Sprint Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.3 Reference Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Demand - Application Estimation 13
2.1 Business Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Team and Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1.1 Who drives the Business Vision? . . . . . . . . . . . . . . . . . . . . . 15
2.1.1.2 Who else is involved? . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1.3 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1.4 High-Level Workshop Agenda . . . . . . . . . . . . . . . . . . . . . . 16
2.1.2 Business Vision Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2.1 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2.2 Document Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.2.3 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 UX Concept Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.4 Architecture Design Document . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4.1 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4.2 Solution Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4.3 4-Layer Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.4.4 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.5 Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.5.1 Project Sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.5.2 Project Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.5.3 Alignment and Value . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.5.4 Wrap-up Presentation and Agreement . . . . . . . . . . . . . . . . . . 22
2.1.5.5 Business Vision Guidelines . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Infrastructure Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 OutSystems Platform Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1.1 Code Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1.2 Deployment Services - Service and Controller . . . . . . . . . . . . . . 24
2.2.1.3 Application Services - Scheduler and Log . . . . . . . . . . . . . . . . 24
2.2.2 Service Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
, 2.2.3 Integration Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.4 Service Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.5 LifeTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.6 OutSystems Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.6.1 Environment Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.6.2 Setup / Types for an Infrastructure . . . . . . . . . . . . . . . . . . . 28
2.2.7 Setup an Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Delivery - Application Initiation 31
3.1 Project Initiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Write the Project Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 Create the Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2.1 Storytelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2.2 Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.3 Be Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.3.1 Business Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.3.2 Information Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.3.3 Mock-ups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.4 Create the Backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.4.1 User Story Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.4.2 MoSCoW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1.4.3 Minimum Viable Product . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.4.4 Minimum Lovable Product . . . . . . . . . . . . . . . . . . . . . . . . 42
4 Delivery - Architecture Design 44
4.1 Architecture Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Why is Architecture Important? . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.1 Building Quality Solutions . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.2 Lack of Architecture Concerns . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1.3 Why is Architecture Important? . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 The 4-Layer Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2.1 Services Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.3 The Architecture Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.3.1 Disclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.3.2 Organise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.1.3.3 Assemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.1.4 Designing an Architecture (an example) . . . . . . . . . . . . . . . . . . . . . . 52
4.1.5 Typical Module Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1.6 Module Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2 Architecture Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.1 Library Module Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.1.1 Extension Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.1.2 Connector Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2.1.3 Granularity of API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.2 Core Module Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.2.1 Core Entity Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.2.2 ECS Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.2.3 Transparency Service Pattern . . . . . . . . . . . . . . . . . . . . . . . 60
4.3 Mobile Apps Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1 Local Storage & Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1.1 Use Local Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1.2 Limit server-side calls . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.1.3 Synchronisation tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.2 Plugins, UI & Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2.1 Plugin services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.2.2 UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.2.3 Security Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.4 Style Guide Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.4.1 Base Style Guide Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
, 4.4.2 Custom Style Guide Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.2.1 Specialise a Base Style Guide . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.2.2 Customise a Base Style Guide . . . . . . . . . . . . . . . . . . . . . . 69
4.4.2.3 Build from scratch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.2.4 Sharing a Style Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5 Validating and Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5.1 Validating an architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5.1.1 Validating architectures with Discovery . . . . . . . . . . . . . . . . . 73
4.5.1.2 Top architecture mistakes . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.5.2 Refactor applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.5.2.1 Prioritisation criteria for fixing violations . . . . . . . . . . . . . . . . 74
4.5.2.2 Promote loose coupling . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.5.2.3 Moving elements between modules . . . . . . . . . . . . . . . . . . . . 75
4.5.3 Extracting elements (without impacting consumers) . . . . . . . . . . . . . . . 76
4.6 Composing LifeTime Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6.1 Application Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6.1.1 Composition Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6.2 Validating Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5 Delivery - Iteration Development 80
5.1 Project Iterations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1 Shape an Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1.1 Write Backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1.2 Groom Backlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.1.1.3 Iteration Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.2 Drill Down User Stories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.2.1 Small yet valuable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.2.2 Make it personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1.2.3 Independent yet connected . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.2.4 Less is more . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.2.5 Manage Ongoing Discussions . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.2.6 Structure of a final User Story . . . . . . . . . . . . . . . . . . . . . . 85
5.1.3 Building in an Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.1.3.1 Develop & Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.3.2 React to Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.3.3 Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.4 Accept an Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.4.1 Accept Moment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.4.2 Retrospective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6 Delivery - Solution Release 89
7 Run - Operation & Tuning 90
, List of Figures
1 Tech Lead Journey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Project Timebox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Project Timebox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Sprint Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Reference Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Solutions Overview Example: Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Solutions Overview Example: Roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 4-Layer Canvas Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 OutSystems Platform Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Outsystems Infrastructure representation. . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 PaaS Infrastructure: Add New Environment. . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Project Initiation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Initiation Workshop example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Project Initiation: Business track. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4 Storytelling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Persona example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.6 Business Process example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.7 Information Architecture example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.8 The three level structure of the User Story Mapping technique. . . . . . . . . . . . . . 39
3.9 Epics ordered in sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.10 User Stories sorted according to MoSCoW technique. . . . . . . . . . . . . . . . . . . . 40
3.11 Minimum Viable Product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.12 Henrik Kniberg example of MVP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.13 Iterations crossing the structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.14 Minimum Lovable Product. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.1 The 4-Layer Canvas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 OutSystems in an Enterprise Ecosystem. . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Services Architecture example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Claim Handling example: Disclose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.5 Claim Handling example: Organise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6 Claim Handling example: Assemble and grouping concepts. . . . . . . . . . . . . . . . 51
4.7 Claim Handling example: Assemble and matching patterns. . . . . . . . . . . . . . . . 51
4.8 4-Layer Canvas: Qualtity Control example. . . . . . . . . . . . . . . . . . . . . . . . . 52
4.9 Library Layer: Extension Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.10 Library Layer: Connector Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.11 Library Layer: Granularity of Application Program Interfaces (APIs) . . . . . . . . . . 57
4.12 Core Layer: Core Entity Pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.13 Core Layer: External Core Service (ECS) variations. . . . . . . . . . . . . . . . . . . . 59
4.14 Core Layer: ECS variations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.15 Transparency Service Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.16 Mobile example: Banking System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.17 Mobile example: Insurance Simulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.18 Base Style Guide: Lisbon Template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.19 Custom Style Guide: Specialise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68