Xcode eXtreme Programming - #pragmamark 2014, Milan

Post on 27-Nov-2014

352 views 0 download

Tags:

description

Speed up the development and increase the app quality are the keywords for success. Good points, not so simple to achieve…. eXtreme Programming (XP) is an agile discipline of software development based on values of simplicity, communication, feedback, courage, and respect. The software is built around the needs of the customer through a continuous release of working software and creating a learning loop that dramatically improves the quality of the final product. Some XP practices, like TDD and Continuous Integration, can benefit of the support of software tools and frameworks. In this session we will see how XCTest and Xcode Continuous Integration can streamline the process of the iOS XP team.

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