MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options...

42
MAD FOR MOBILE John Frizelle Philip Hayes Cian Clarke #redhat #rhsummit 1

Transcript of MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options...

Page 1: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

MAD FOR MOBILEJohn Frizelle

Philip Hayes

Cian Clarke

#redhat #rhsummit

1

Page 2: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

THE MOBILEC E N T E R O F E X C E L L E N C E

APPS DON'T NEED TO

Cost $100kTake 6 months to developLive for decadesBe big monoliths on the client side

2

Page 3: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

THE MOBILEC E N T E R O F E X C E L L E N C E

WHY YOU NEED ONE

In-house skills for an important delivery channelNot Corporate IT => Fast IT

MOBILE IS DIFFERENT

Lots of small apps, fast update cyclesOffline support means backends can fail - records still existon mobile deviceMove fast & break stuff

3

Page 4: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

REINVENT THE RULES

AGILE DEVOPS MICROSERVICES

4

Page 5: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

MICROSERVICESDEVOPS

AGILE

5 . 1

Page 6: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

THREE SIMPLE TRUTHSO F S O F T WA R E D E V E L O P M E N T

1. It is impossible to gather all the requirementsat the beginning of a project.

2. Whatever requirements you do gather areguaranteed to change.

3. There will always be more to do than time andmoney will allow.

5 . 2

Page 7: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

WHAT IS AGILE?

A time boxed, iterative approach to softwaredelivery that builds software incrementallyfrom the start of the project, instead of trying todeliver it all at once near the end.

Break projects down into little bits of userfunctionality called user stories, prioritizingthem, and then continuously delivering themin short two week cycles called iterations.

5 . 3

Page 8: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

WHAT IS AGILE?

5 . 4

Page 9: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

HOW DOES IT WORK?

Make a list

Size things up

Set some priorities

Start Executing

Update the plan as you go

5 . 5

Page 10: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

HOW IS IT DIFFERENT?

Analysis, design, coding, and testing arecontinuous activitiesDevelopment is iterativePlanning is adaptiveRoles BlurScope can (and will) varyRequirements can (and will) changeWorking software is the primary measure ofsuccess

5 . 6

Page 11: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

HOW IS IT DIFFERENT?

5 . 7

Page 12: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE VS WATERFALL

Waterfall Agile

Quality Poor - testing at theend

Good - testing fromday one

Visibility Poor - have to waituntil the end

Good - ship fullfeatures incrementally

Risk High - schedule,technical, product

Low - early & iterativefeedback

Change Poor - stick to theplan

Good - welcome &adapt to change

5 . 8

Page 13: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

HOW IS IT DIFFERENT?

5 . 9

Page 14: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

BACKLOG PRIORTISATION

Backlog = All remaining work

Frequent & Small reviews

Managed by Product Owner

Constant refinement - break down stories

Look 3 to 5 sprints out

5 . 10

Page 15: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

USER STORIES

High level features or requirements

Just enough to start a conversation

Stories can split or join

No more than a few days work each

5 . 11

Page 16: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

ESTIMATION

Don't use days - itnever works

Relative sizing basedon complexity

Agree what a 1, 2, 5point story is

Use Planning Pokerto avoid consensusbios

5 . 12

Page 17: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

PLANNING

Velocity = speed from story to product

#Iterations = total effort / velocity

Ongoing & adaptive

Use Burndown Charts

5 . 13

Page 18: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

PLANNING

5 . 14

Page 19: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

ITERATIONS

Time Boxed - Usually 2 weeks

Take highest priority stories from Backlog

Produce a shippable increment

Past performance is a guide to futureperformance

5 . 15

Page 20: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

ITERATIONS

5 . 16

Page 21: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE MANIFESTOHTTP://AGILEMANIFESTO.ORG/

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items on the right, we valuethe items on the left more.

5 . 17

Page 22: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE MICROSERVICES

DEVOPS

6 . 1

Page 23: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE AND DEVOPS

6 . 2

Page 24: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

WHAT IS DEVOPS?Agile relationship between Development

and IT Operations

6 . 3

Page 25: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

Devops toolsCI Server (JenkinsCI - recommended, CodeShip, CircleCI etc.)

Git SCM

Ansible

Red Hat Mobile Application Platform

CI Server plugins (JenkinsCI pipeline, GitHub, Bitbucket plugins etc.)

Build tools (Gulp, Grunt, Maven, Gradle etc)

Testing frameworks (Mocha, Jasmin, Cucumber etc.)

Command line tools (fhc, oc, custom tools).

External services (GitHub, GitLab, BitBucket, Slack, IRC etc.)

Monitoring (Nagios)

6 . 4

Page 26: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

INTEGRATION LIFECYCLE6 . 5

Page 27: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

Text

TYPICAL PIPELINE6 . 6

Page 28: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

Unit and Acceptance test best practices

Flexible deployment options

Lifecycle management

Health endpoints

Controlled UAT and Production deployment(cloud and MBaaS services)

App builds (build farm)

App deployment (MDM integration)

RED HAT MOBILE & DEVOPS6 . 7

Page 29: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE

MICROSERVICES

DEVOPS

7 . 1

Page 30: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

1

TRADITIONAL APPROACH

System of Record

Monolithic

Multi Featured

Long Development Cycle

Costly

Infrequent, Large Updates

THE MOBILE WAY

System of Engagement Simple, Nimble Apps Highly targeted to need Fast Development Cycle Affordable CD & CI

WHY MOBILEMICROSERVICES?

7 . 2

Page 31: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

MICROSERVICESI T ' S J U S T S OA R I G H T ? !WHAT ARE THEY?

Small, composable servicesResponsible for small pieces of workTalk over "dumb" pipes, with "smart" endpoints

WHAT ARE THEY NOT?

MonolithsA "Silver Bullet"Just SOA Again

7 . 3

Page 32: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

1

FAST TO DEPLOY

•Quick release cycle

•Loosely coupled API Integrations

PERFORMANT NETWORKCONNECTION

•Can make any request

•Payload size not a big concern

SLOW TO DEPLOY

•Release cycle up to 1-weekwith public app store reviews

•Tightly coupled API Integrations

LOSSY EDGE NETWORKS,3G BEST CASE

•HTTP overhead slow –need to make fewer requests

•Payload must be small- trimmed for mobile

MOBILE ISDIFFERENT

7 . 4

Page 33: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

U P DAT I N G I S

DIFFERENT

7 . 5

Page 34: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

P E R F O R M A N C E I S

DIFFERENT

7 . 6

Page 35: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

MICROSERVICESA R E

Suited to mCOE Development Practices Suited to mobile Different from developing a monolith

7 . 7

Page 36: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

AGILE DEVOPS MICROSERVICES

MOBILE COEBrings new release cycles

Brings a new pace of business

Delivers software differently

Gives greater ROI on $ IT spend

8

Page 37: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

youtube.com/Red Hat

facebook.com/redhatinc

THANK YOU!

linkedin.com/company/red-hat @johnfriz

@deewhyweb

@cianclarke

9

Page 38: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

SECTION HEADLINE

#redhat #rhsummit

10

Page 39: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

SECTION HEADLINE

#redhat #rhsummit

11

Page 40: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

SECTION HEADLINE

#redhat #rhsummit

12

Page 41: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

MAJOR HEADLINES U BT I T L ESMALLER TITLE

normal text

#redhat #rhsummit

13

Page 42: MAD FOR MOBILE - Red Hat · Unit and Acceptance test best practices Flexible deployment options Lifecycle management Health endpoints Controlled UAT and Production deployment (cloud

LEARN. NETWORK.EXPERIENCE OPEN SOURCE.

#redhat #rhsummit

14