+ All Categories
Home > Technology > GMO'less Software Development Practices

GMO'less Software Development Practices

Date post: 16-Apr-2017
Category:
Upload: lemi-orhan-ergin
View: 19,747 times
Download: 0 times
Share this document with a friend
47
software development practices GMO { the art of developing software in a natural way } Lemİ Orhan ERGİN Principal Software Engineer @ Sony @lemiorhan ‘LESS
Transcript

software development practicesGMO

the art of developing software in a natural way

Lemİ Orhan ERGİNPrincipal Software Engineer Sony

lemiorhan

lsquoLESS

Lemİ Orhan Ergİn

Principal Software Engineer in Sony

has worked in Tuumlsside BYM GittiGidiyoreBay and Sony as developer team leader technical coordinator and scrum master

got CSM certificate from Jim Coplien

year as Scrum Master

sprints and 4 years as team member and scrum master

experienced in agile transformation and building agile culture in teams amp organizations

2001

2013

20091

56

agile

lemiorhan

projectsfailedHave you ever had

We wonrsquot make it we need extra timeI know itrsquos impossible but wersquove already promisedWe have to cancel the project before going liveWe are facing critical bugs in productionWe have to re-write the project from scratchNo one knows when the project will be finishedIt was obvious that the project was going to failEverything was going fine but what the

ldquo

rdquoProject management Team

Itrsquos very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again

ldquo

rdquoSoftware Developer

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Lemİ Orhan Ergİn

Principal Software Engineer in Sony

has worked in Tuumlsside BYM GittiGidiyoreBay and Sony as developer team leader technical coordinator and scrum master

got CSM certificate from Jim Coplien

year as Scrum Master

sprints and 4 years as team member and scrum master

experienced in agile transformation and building agile culture in teams amp organizations

2001

2013

20091

56

agile

lemiorhan

projectsfailedHave you ever had

We wonrsquot make it we need extra timeI know itrsquos impossible but wersquove already promisedWe have to cancel the project before going liveWe are facing critical bugs in productionWe have to re-write the project from scratchNo one knows when the project will be finishedIt was obvious that the project was going to failEverything was going fine but what the

ldquo

rdquoProject management Team

Itrsquos very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again

ldquo

rdquoSoftware Developer

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

projectsfailedHave you ever had

We wonrsquot make it we need extra timeI know itrsquos impossible but wersquove already promisedWe have to cancel the project before going liveWe are facing critical bugs in productionWe have to re-write the project from scratchNo one knows when the project will be finishedIt was obvious that the project was going to failEverything was going fine but what the

ldquo

rdquoProject management Team

Itrsquos very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again

ldquo

rdquoSoftware Developer

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

We wonrsquot make it we need extra timeI know itrsquos impossible but wersquove already promisedWe have to cancel the project before going liveWe are facing critical bugs in productionWe have to re-write the project from scratchNo one knows when the project will be finishedIt was obvious that the project was going to failEverything was going fine but what the

ldquo

rdquoProject management Team

Itrsquos very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again

ldquo

rdquoSoftware Developer

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Itrsquos very expensive to add these featuresOne guy left and the project failedPeople in development team is always changingTechnology and design of the project are too oldI fixed a bug and new ones appearedNo one has touched some modules for yearsI cannot add new features while fixing bugs all dayWe are doing same manual tests again and again

ldquo

rdquoSoftware Developer

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

11I have worked in enterprise level projects in my career

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

Each one isat least

6 monthsprojects

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

B2B ecommerce site for the mould industryIBM based product management systemProduct management system for EuropeDocument management system for militaryMarketing sites for European countriesCommon toolbar for European countriesBackend services components and APIsCommon data services for EuropeCommon syndication services for EuropeCore data services for US and CanadaVertical ecommerce module

6 of themcancelled before go-live

closed after a whilewill be closed soon

55

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

are failingSoftware projects

ldquo50 of IT projects go into trash in TurkeyrdquoAgile Turkey

mercer consulting

ldquoWhen the real costs are added up 80 of the technology projects costs more than they returnrdquo

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

why

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

of reasons to faila lotwe have

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

companypolitics

some of themare due to

we are unable to do anything here

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

developingsoftware in unnatural way

but the reason of all the others is

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

The nature of software

and 9 main rules

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

The ultimate goal iscustomer satisfaction

1

Customers have rights to get software developed with the

features they need in a fast way

of course you might not satisfy your

customer at this level thatrsquos fine

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

UNCERTAINITYexists in every step of development process

3

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

requirements

always change

4

Start Point

Target Point

2

1

3

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Software development is not just

5

Programming

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

ıncreases total real cost9 compromising quality

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agilityconcept emerges for helping developers

to let them develop in natural way

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agilewhat is

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Agile meansAdapting to change

rapidlyand sending a feature or a fix to market rapidly

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agile meansevolving design and

development

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Agile software developmentAgile planning and managementSoftware development practices

Customer satisfactionTeamworkMotivation

this is the topic we are interested in

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

agendaThe Nature of SoftwareNaturalness of Software AgilityAgile Software Development Practices

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

working on the correct designwith newest and best technologies

in a short time

We aim to complete the projects by

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

However we always face with issues related withhumans

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Getting feedback rapidlyAgile ve lean prenciples focus on the following

Speeding up feecback loops

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Letrsquos develop a projectby using

agile development practices

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

See your developers not as resources but talents (No headcount calculation)Work with people who loves to share knowledge and experiences (Collaborative amp Volunteer)Educate people about agile practices and the philosophy behind (Up-Front Education)Build your team with passionate and disciplined developers (Passionate Developer)ldquoDonrsquot pick the right technology pick the one thatrsquos cheapest to changerdquo by chris matts

Before the start

Developer

Business Analyst

Tester

Product Owner

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Developer

Make teams with cross functional people (Cross functional teams)Sit close to your team mates (Sitting CLOSE)Define the minimum set of features that you can get feedback (Minimum Viable Product) Focus on features valuable to the customer (Prioritization)Avoid doing big fat up-front design (Short Up-Front Design)Document enough donrsquot go deep into details (Agile Documentation)

Letrsquos start the project

Business Analyst

Tester

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Keep your code in a version control system (Version Control System)Program in pairs (Pair Programming)Review othersrsquo code (CodePeer Review)Develop each feature in a new branch (Code Branching)Follow clean code principles (Clean Code Principles)Do code katas to improve your technical capabilities (Code Kata)Use idiomatic and architectural patterns in addition to design patterns (Idiomatic Patterns)Develop from customersrsquo point of view by BDD (Behaviour Driven Development)Develop from developersrsquo point of view by TDD (Test Driven Development)

Software development and social coding

VersionControlSystem

Developer

Business Analyst

Tester

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Pull othersrsquo commits and integrate with yours at least once a day (Continuous Integration)Let the existing tests run automatically and get feedback about the failed ones (Continuous Build)Detect untested areas in your code and improve the code coverage (Code Coverage)Donrsquot afraid of deleting code improve your design with the help of written tests (Refactoring)Full feedback loop of continous integration should take at most 10 minutes (10 min build)

Continuous Integration

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Prepare a working copy of your software available in your CVS (SNAPSHOTs daily builds)Make the latest working copy of your software ready for deployment (Continuous delivery)

Continuous Delivery

Package Repository

Messaging Services (emails messages)

VersionControlSystem

ContinuousDeployment

Developer

Business Analyst

Tester

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

DEV TEST amp QA STAGING PROD

Prepare an environment where developers can do experiments and test their code (DEV)Have an environment where performance and load tests can be done (TESTQUALITY ASSURANCE)User acceptance tests should be done on an environment similar to production (STAGINGUATSIT)

Development Environments

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Package Repository

Messaging Services (emails messages)

VersionControlSystem

Make releases frequently (SHORT RELEASES)Deploy your applications with one click (Continuous DEPLOYMENT)Shorten release and boot times of your software (Fast bootup)Raise DevOps that knows software development and IT operations at the same time (DEVOPS)

Release Management amp Deployments

DEV

TEST amp QA

STAGING

PROD

ContinuousDeployment

Developer

Business Analyst

Tester

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Clouds force you to follow the practices to some extent

Software development on clouds

DevOpsDevOps DevOps DevOps

VersionControlSystem

Developer

Business Analyst

Tester

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

You cannot talk about agility without eXtreme Programming practices And XP can only be achieved by pashioned programmers

last words

ldquordquoİsa Goumlksu

Agile Practice Lead

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Photos used in the slidES

httpwwwflickrcomphotosemmanuelecontini2558211856httpwwwflickrcomphotosthecampbells5103649471httpwwwflickrcomphotosrobbiemacphotos7875854334httpwwwflickrcomphotosw4nd3rl0st7174403872https590photobucketcomuserasmithjmediaCPCgirl_2_computer_arms_raised2jpghtmlhttpwwwflickrcomphotosusnavy5488581781httpwwwflickrcomphotospurplemattfish3489639831httpwwwflickrcomphotosthomashawk7215052318httpwwwflickrcomphotosnuwandalice4764805046httpwwwflickrcomphotoslauter-als-der-rest6898114788httpwwwflickrcomphotos31288116N024008216690httpwwwflickrcomphotosa2gemma1448178195httpwwwflickrcomphotosnuudls3281779141

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

The slides were presented on 13th of June 2013 at Agile Talks which is a set of seminars organized by Agile Turkey few times in a year in Turkey

The content of this presentation is originally in Turkish The author translated into English by purpose


Recommended