Xcode eXtreme Programming - #pragmamark 2014, Milan
-
Upload
giulio-roggero -
Category
Software
-
view
352 -
download
0
description
Transcript of Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming
@giulioroggero
Milan, October 4 2014
CEO Agile ReloadedCTO MakeItApp.eu
Do you want to reach the island?
Motorboat?
How much time to build it?Do I need it?
Agile approach
MotorboadFinal product
Comfortable and fast
Rowing BoatMinimum viable product
Reliable and useful
RaftEmbarrassing Validate my hypothesis
Agile approach
MotorboadFinal product
Comfortable and fast
Rowing BoatMinimum viable product
Reliable and useful
RaftEmbarrassing Validate my hypothesis
Is the motorboat really useful?
Agile approach
FerryThe Useful Final product!
Cheap and capacious
Rowing BoatMinimum viable product
Reliable and useful
RaftEmbarrassing Validate my hypothesis
The product with value for the customer!
HOW?
Plan
Do
Check
Act
Deming Cycle
continuousimprovement
http://agilemanifesto.org
“Individuals and interactionsover
processes and tools”
The first value of Agile
http://agilemanifesto.org
“Working softwareover
comprehensive documentation”
The second value of Agile
A WAY TO FOLLOW?
eXtreme programming
XP
"XP is the practice and pursuit of effective simplicity, as applied to software development.”
Victor (from the XpMailingList)http://c2.com/cgi/wiki?ExtremeProgrammingPhoto by Yogendra Joshi
XPis a trial and
error programming
Photo by Giulio Roggero
design first
Photo by Scott McKittrick
write tests to that design
program
test
refactor
iterate!
Design
Write Test – Test Fail
Program
Run Test – Test Pass
Refactor-Test Pass
incremental
Spaghetti code
Clean code• Less bugs• Easy to understand• Simple to modify• Quicker loading time• Save time and money
What do you need?
• Cross functional team.• Customer involved.• Collaborative people.
XP Values
Communication
Simplicity
Courage
Feedback
XP Practices
• The Planning Game• Small Releases• Metaphor• Simple design• Testing• Refactoring
• Pair programming• Collective Ownership• Continuous Integration• Sustainable Pace• One-Site Customer• Coding Standard
XP Practices
• The Planning Game• Small Releases• Metaphor• Simple design
• Testing• Refactoring
• Pair programming• Collective Ownership
• Continuous Integration• Sustainable Pace• One-Site Customer• Coding Standars
TDD
Do you know what TDD is?
Yes 90%
Do you think TDD is a good practice?
Yes 75%
Do you use TDD?Yes 5%
CI
Source Control
Build
Test
Continuous Integration
Developers
XCTest
Developer on local Xcode
OS X Server
Xcode Bot
Push Monitor
Build and Test
Virtual and physical
Source Control
Build
Test
Continuous Integration
Developers
Git on OS X Server
XCode on OS X Server
XCode local
XCode on OS X Server
Xcode Continuous Integration
Multiple devices testing!
Demo
https://macserver.makeitapp.eu
Next steps…
www.agileday.it
Italian Agile Day 14-15 november 2014
http://www.extremeprogramming.org/
http://c2.com/cgi/wiki?ExtremeProgramming
http://nshipster.com/xctestcase/https://www.apple.com/osx/server/
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/testing_with_xcode/Introduction/Introduction.html
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/000-About_Continuous_Integration/about_continuous_integration.html#//apple_ref/doc/uid/TP40013292
Co-founder and CEO of Agile ReloadedCo-founder and CTO of MakeItApp.eu
@giulioroggero
Password: Elparainbow1