Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Architecting apps
Can we write better code by planning ahead?
Paul Ardeleanu
@pardel
Thank you
Architecting apps
Can we write better code by planning ahead?
Paul Ardeleanu
@pardel
Architecting apps
http://media.ofcom.org.uk/news/2015/five-years-of-tablets/
iOS apps available
100 000 000 000 app downloads
https://www.flickr.com/photos/officenow/2631533044/
http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
http://www.apple.com/live/2015-june-event/
http://agilemanifesto.org
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
Respect the process
Ask the right questions
• usually starts with an idea / project requirement
• sell the vision to the team
• shoot the idea...
Application Definition Statement
Application Definition Statement
“A concise, concrete declaration of the
app’s main purpose and its intended
audience.”
ht...
Solve real problems
"An app must solve a user's problem clearly and elegantly."
Eric Hope, User Experience Evangelist, App...
List of
features
too many
features?
Filter
Yes
Application
Definition
Statement
App
features
User journeys
Wirefames
Protot...
Prototype
Wireframes and/or Prototype
Wireframing
• identify main areas of the app
• identify screens
• identify relations between screens
• start from the simp...
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
Sketching
More sketching
start
Splash
screen
List of
sequences
Add
sequence
Sequence
edit
05:12start Timer
start
Add
timer
Sketching
• start from the most important task
• identify main areas of the app
• identify screens
• identify relations be...
Prototyping
• Web based
• Visual
• Presentation based
Divide & Conquer
C4 Model
C4 Model
C4 Model
Black Box
• Avoid side effects
• Control inter-dependencies
• Improve testability
Don’t follow blindly
Playgrounds
Testing
Faster is always better
Faster is always better
TDD vs BDD
• Test-Driven Development
• Behaviour-Driven Development
TBD
To Be Determined
Documentation
UML
The Unified Modelling Language (UML) is a general-purpose
modelling language in the field of software engineering, whi...
UML
Documentation
• Sanity
• Communication across multiple teams
• Inter-operability of features
• Good practices
• Sanity
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
Off by 1
Motivation
Your Why
Change one’s life
Charity
Help people
Solutions
A. Respect the process
B. Prototype
C. Divide & Conquer
D. Testing
E. Documentation
F. Motivation
Thank you!
}
twitter
pardel@pardel.net
}blog
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Architecting apps - Can we write better code by planning ahead?
Upcoming SlideShare
Loading in …5
×

Architecting apps - Can we write better code by planning ahead?

859 views

Published on

Creating a successful app is like erecting a house. The building part can become laborious, boring and dangerous at times, especially if very little attention is paid to the planning process and no blueprints are to be found; in some cases it leads to disastrous outcomes, unhappy stakeholders and overrunning costs.
The initial phase of understanding the client’s idea and expectations is the most critical and yet the least talked about: translating requirements into a well structure document is what makes or breaks an app – similar to creating a good architecture document before commencing work on a building.
In this talk, Paul will talk about the things a team should implement before writing a single line of code (diagrams, sketches, prototypes, etc) and affix yet another acronym to the corporate bingo list: DDD (Documentation-Driven Design).

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Architecting apps - Can we write better code by planning ahead?

  1. 1. Architecting apps Can we write better code by planning ahead? Paul Ardeleanu @pardel
  2. 2. Thank you
  3. 3. Architecting apps Can we write better code by planning ahead? Paul Ardeleanu @pardel
  4. 4. Architecting apps
  5. 5. http://media.ofcom.org.uk/news/2015/five-years-of-tablets/
  6. 6. iOS apps available
  7. 7. 100 000 000 000 app downloads
  8. 8. https://www.flickr.com/photos/officenow/2631533044/
  9. 9. http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
  10. 10. http://www.tiobe.com/index.php/content/paperinfo/tpci/Swift.html
  11. 11. http://www.apple.com/live/2015-june-event/
  12. 12. http://agilemanifesto.org
  13. 13. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation
  14. 14. Respect the process
  15. 15. Ask the right questions • usually starts with an idea / project requirement • sell the vision to the team • shoot the idea down and scale according to the platform constraints • communication, communication, communication • proposal
  16. 16. Application Definition Statement
  17. 17. Application Definition Statement “A concise, concrete declaration of the app’s main purpose and its intended audience.” https://developer.apple.com/library/ios/documentation/ UserExperience/Conceptual/MobileHIG/
  18. 18. Solve real problems "An app must solve a user's problem clearly and elegantly." Eric Hope, User Experience Evangelist, Apple
  19. 19. List of features too many features? Filter Yes Application Definition Statement App features User journeys Wirefames Prototype
  20. 20. Prototype
  21. 21. Wireframes and/or Prototype
  22. 22. Wireframing • identify main areas of the app • identify screens • identify relations between screens • start from the simplest things and build up • start from the main task of the app
  23. 23. Sketching
  24. 24. Sketching
  25. 25. Sketching
  26. 26. Sketching
  27. 27. Sketching
  28. 28. Sketching
  29. 29. Sketching
  30. 30. Sketching
  31. 31. Sketching
  32. 32. Sketching
  33. 33. Sketching
  34. 34. Sketching
  35. 35. Sketching
  36. 36. Sketching
  37. 37. More sketching start Splash screen List of sequences Add sequence Sequence edit 05:12start Timer start Add timer
  38. 38. Sketching • start from the most important task • identify main areas of the app • identify screens • identify relations between screens • Don’t worry! You won’t get it right the first time
  39. 39. Prototyping • Web based • Visual • Presentation based
  40. 40. Divide & Conquer
  41. 41. C4 Model
  42. 42. C4 Model
  43. 43. C4 Model
  44. 44. Black Box • Avoid side effects • Control inter-dependencies • Improve testability
  45. 45. Don’t follow blindly
  46. 46. Playgrounds
  47. 47. Testing
  48. 48. Faster is always better
  49. 49. Faster is always better
  50. 50. TDD vs BDD • Test-Driven Development • Behaviour-Driven Development
  51. 51. TBD To Be Determined
  52. 52. Documentation
  53. 53. UML The Unified Modelling Language (UML) is a general-purpose modelling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.
  54. 54. UML
  55. 55. Documentation • Sanity • Communication across multiple teams • Inter-operability of features • Good practices • Sanity
  56. 56. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation
  57. 57. Off by 1
  58. 58. Motivation
  59. 59. Your Why
  60. 60. Change one’s life
  61. 61. Charity
  62. 62. Help people
  63. 63. Solutions A. Respect the process B. Prototype C. Divide & Conquer D. Testing E. Documentation F. Motivation
  64. 64. Thank you! } twitter pardel@pardel.net }blog

×