Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons from mobile...

35
Enterprise Architecture and True Agility Lessons from Mobile Development

Transcript of Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons from mobile...

Enterprise Architecture and True Agility

Lessons from Mobile Development

When we put amazing technology into people’s handsamazing things become possible.

“Today, companies have to radically revolutionize themselves every few years just to stay relevant. That's because technology and the Internet have transformed the business landscape forever. The fast-paced digital age has accelerated the need for companies to become agile”.

Nolan Bushnell

Topics• How mobile application development illustrates

important issues for the future

• Moving away from architectural design as a purely up-front activity

• The benefits of architects’ complete engagement in the solution delivery process

Mobile Application Development

• Mobile is the future

• The evolution of mobile development

Mobile is the future• The huge effects that were being

predicted as a result of the wide distribution of technology are being realised through our mobile devices first and foremost.

• Many of the things that are happening in mobile will propagate everywhere

The evolution of mobile

The evolution of mobile

Past, Present and Future

The evolution of mobile

The evolution of mobile

The evolution of mobile

Types of Mobile App

Development Technologies

Level of Effort

Native Hybrid

• Often needs larger, specialised teams to cover multiple platforms

• Longer duration projects

• Higher overheads

• Smaller teams with more general development skills

• Apps are cross-platform• Much shorter

development projects• Lower overheads

Integration approaches for mobile

Integration Approach Desirability

RESTful web service based APIs specifically designed for mobile applications

1. Most desirable. Minimises cost of mobile solutions while maximising efficiency.

SOAP web service based APIs used for general enterprise integration

2. Useful but not always ideal. Sometimes too heavyweight for direct use in mobile solutions.

Direct database access 3. Less desirable. This approach often only allows reads as writes and are often not supported by system vendors.Offers poor scalability.

Screen scraping from existing web application user interfaces

4. Less desirable but occasionally effective for simple lightweight mobile front-end development.

Agile Software Development

• What it is• What it can

deliver• What can go

wrong

The Agile Manifesto

Agile Principles1. Customer satisfaction by early and

continuous delivery of useful software

2. Welcome changing requirements, even late in development

3. Working software is delivered frequently (weeks rather than months)

4. Close, daily cooperation between business people and developers

5. Projects are built around motivated individuals, who should be trusted

6. Face-to-face conversation is the

best form of communication (co-location)

7. Working software is the principal measure of progress

8. Sustainable development, able to maintain a constant pace

9. Continuous attention to technical excellence and good design

10.Simplicity—the art of maximizing the amount of work not done—is essential

11.Self-organizing teams12.Regular adaptation to changing

circumstance

Scrum Methodology

What does Agile deliver• Systems that are fit for purpose

– Especially when that purpose only emerges over time.

• Systems that are cheaper– Because they’re leaner– Omitting features that users don’t need

What can go wrong?

What can go wrong?• Hidden technical debt - Hygiene factors• Being dogmatic about roles:

– “Scrum does not define a role Architect and therefore an architect is not needed in an agile IT project".

• Not documenting adequately: – “Agile means more talk and less documentation,

doesn’t it?”

Relationship with Stakeholders

Relationship with Stakeholders

Relationship with Stakeholders

Relationship with Stakeholders

True Agility• Reducing overheads in the delivery

process• Applying best practice to get things right

first time, more of the time• Application templates• Component re-use• Writing only as much software as

necessary

Architectural Design

• More important now than ever

• Not just an up-front activity

Architectural Design• Starts with:

– High-level, easily grasped diagrams of the system

– Identifies the class of the solution along with:• The solution’s key components and interfaces• The services it consumes and publishes along with

formal definitions

Architectural Design• Continues to evolve:

– As new requirements emerge– As new technology gets factored in

The need for complete engagement

The benefits of architects' complete engagement with the solution delivery process

Questions