“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 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
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 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
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?• 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?”
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• 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