agile ios
TRANSCRIPT
Stewart Gleadow
@stewgleadow
Agile iOS
iOS something something
Stewart Gleadow
@stewgleadow
Stewart Gleadow
@stewgleadow
My ramblings about iOS development in large teams
Outline
Outline
• [ObjectiveC release];
Outline
• [ObjectiveC release];
• Problems with iOS in large teams
Outline
• [ObjectiveC release];
• Problems with iOS in large teams
• Team process
Outline
• [ObjectiveC release];
• Problems with iOS in large teams
• Team process
• Testing strategies
Outline
• [ObjectiveC release];
• Problems with iOS in large teams
• Team process
• Testing strategies
• Design & development
iOS in large teams
iOS in large teams
Building the
wrong product
iOS in large teams
Building the
wrong product
Low utilisation
iOS in large teams
Building the
wrong product
Long lead time
Low utilisation
iOS in large teams
Building the
wrong product
Long lead time
Low utilisation
Bugs and
regressions
iOS in large teams
Building the
wrong product
Long lead time
Low utilisation
Bugs and
regressions
Meetings
iOS in large teams
Building the
wrong product
Long lead time
Low utilisation
Bugs and
regressions
Meetings Documentation
Agile
Agile
“You keep using that word. I do not think it means what you think it
means.”
be agile
“You keep using that word. I do not think it means what you think it
means.”
Why is agility
important for iOS
development?
Why is agility
important for iOS
development?
• Rich user experience
Why is agility
important for iOS
development?
• Rich user experience
• New devices and platform
Visibility and Measurement
Visibility and Measurement
Visibility and Measurement
Everyone cares about the details
Everyone cares about the details
To Do Doing Done
Corner Cases
Corner CasesNormal
Corner CasesNormal
No Network
Slow Network
Old Devices
PersistentState
DeviceCapability
PowerUsage
RetinaDisplay
Multi-Touch
Bad Data
Testing strategies
Delivering quality apps...whose requirements change constantly
Delivering quality apps...whose requirements change constantly
External
Delivering quality apps...whose requirements change constantly
External Internal
Testing strategies
Testing strategies• Manual, automated, assisted
Testing strategies• Manual, automated, assisted
Testing strategies• Manual, automated, assisted
Testing strategies• Manual, automated, assisted
Manual testing using cucumber
Manual testing using cucumber
Scenario: User tries posts a message before logging in
Manual testing using cucumber
Scenario: User tries posts a message before logging in
Given I am not logged in
Manual testing using cucumber
Scenario: User tries posts a message before logging in
Given I am not logged inWhen I try to post a message
Manual testing using cucumber
Scenario: User tries posts a message before logging in
Given I am not logged inWhen I try to post a messageThen I should be prompted to sign in
Unit
Integration
UI
Unit
Integration
UI
60%
30%
10%
Refactoring
Refactoring
Red
Green Refactor
Refactoring
Are we fighting the laws of physics?
Red
Green Refactor
Design & Development
How developers see designers
How designers see developers
How developers see themselves
How designers see themselves
Photoshop
driven
development
Photoshop
driven
development
Get fast feedback5w\V\iforü t tlorr¡
c_:-_l
tL
Prototype
Test Refine
Continuous feedback loops
“If you want to go fast, go alone. If you want to go far, go together.”
“If you want to go fast, go alone. If you want to go far, go together.”
...but we need to go far, quickly.
Thanks
Stewart Gleadow
@stewgleadow