42
Software engineering practices of an agile developer how do you build Lemİ Orhan ERGİN Principal Software Engineer @ Sony @lemiorhan agilistanbul.com software @lemiorhan ?

How Do You Build Software? Software Engineering Practices of an Agile Developer

Embed Size (px)

DESCRIPTION

These are the slides of my latest talk about agile software engineering practices in Etohum's Software Developers Day. In my talk, I am trying to figure out how to build software by obeying the rules of the nature of software development.

Citation preview

Page 1: How Do You Build Software? Software Engineering Practices of an Agile Developer

Software engineering practicesof an agile developer

how do you build

Lemİ Orhan ERGİNPrincipal Software Engineer Sony

lemiorhanagilistanbulcom

software

lemiorhan

Lemİ Orhan ErgİnPrincipal Software Engineer at Sony

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

got CSM certificate from Jim Coplien

year as Scrum Master

sprints in 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

CSM PSM1

05M total number of views of his presentations

but it suckssoftware development is cool

because we hardly find successful software

missing deadlinesextra costs

never used featuresunknown risks

unmotivated employeesbugs failures errors

legacy systemsincompetent developers

micro managing managershuge technical debts

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

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 2: How Do You Build Software? Software Engineering Practices of an Agile Developer

Lemİ Orhan ErgİnPrincipal Software Engineer at Sony

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

got CSM certificate from Jim Coplien

year as Scrum Master

sprints in 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

CSM PSM1

05M total number of views of his presentations

but it suckssoftware development is cool

because we hardly find successful software

missing deadlinesextra costs

never used featuresunknown risks

unmotivated employeesbugs failures errors

legacy systemsincompetent developers

micro managing managershuge technical debts

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

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 3: How Do You Build Software? Software Engineering Practices of an Agile Developer

but it suckssoftware development is cool

because we hardly find successful software

missing deadlinesextra costs

never used featuresunknown risks

unmotivated employeesbugs failures errors

legacy systemsincompetent developers

micro managing managershuge technical debts

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

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 4: How Do You Build Software? Software Engineering Practices of an Agile Developer

missing deadlinesextra costs

never used featuresunknown risks

unmotivated employeesbugs failures errors

legacy systemsincompetent developers

micro managing managershuge technical debts

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

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 5: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 6: How Do You Build Software? Software Engineering Practices of an Agile Developer

only very few can make it

by following non-traditional ways

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 7: How Do You Build Software? Software Engineering Practices of an Agile Developer

how

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 8: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 9: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 10: How Do You Build Software? Software Engineering Practices of an Agile Developer

developingsoftware in unnatural way

but the reason of all the others is

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 11: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 12: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 13: How Do You Build Software? Software Engineering Practices of an Agile Developer

In general the customersdo not know

what they really want

2

UNCERTAINITYexists in every step of development process

3

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 14: How Do You Build Software? Software Engineering Practices of an Agile Developer

UNCERTAINITYexists in every step of development process

3

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 15: How Do You Build Software? Software Engineering Practices of an Agile Developer

requirementsalways 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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 16: How Do You Build Software? Software Engineering Practices of an Agile Developer

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

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 17: How Do You Build Software? Software Engineering Practices of an Agile Developer

Software should always be

maintainedafter go live

6

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 18: How Do You Build Software? Software Engineering Practices of an Agile Developer

Software development is asocial activity

7

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 19: How Do You Build Software? Software Engineering Practices of an Agile Developer

BIG-Up-front detailed estimation amp Design are

UNNECESSARY

8

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 20: How Do You Build Software? Software Engineering Practices of an Agile Developer

Today or later

9You have to pay

the technical debt

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 21: How Do You Build Software? Software Engineering Practices of an Agile Developer

requirementsdesign

Implementationverification

maIntenancerequirements design Implementation

development process of our dreamsone step starts after another completes

Maintenanceverification

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 22: How Do You Build Software? Software Engineering Practices of an Agile Developer

THE REALITY IN SOFTWARE DEVELOPMENT

requirements

requirements

requirements

requirements

DESIGN

DESIGN

DESIGN

DESIGN

DESIGN

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

IMPLEMENTATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

VERIFICATION

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

MAINTENANCE

IGN

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 23: How Do You Build Software? Software Engineering Practices of an Agile Developer

agilityconcept emerges for helping developers

to let them develop in natural way

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 24: How Do You Build Software? Software Engineering Practices of an Agile Developer

Agile development is not onlyabout project planning

Project planning is just a part of agile software development

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 25: How Do You Build Software? Software Engineering Practices of an Agile Developer

Agile software developmentAgile planning and managementSoftware engineering practices

Customer satisfactionTeamworkMotivation

this is the topic we are

interested in

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 26: How Do You Build Software? Software Engineering Practices of an Agile Developer

Letrsquos develop a projectby using

agile development practices

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 27: How Do You Build Software? Software Engineering Practices of an Agile Developer

message to companiesSee your developers not as resources but talentsldquo rdquo

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 28: How Do You Build Software? Software Engineering Practices of an Agile Developer

Define your valuesand let everyone know

Educate everyoneup-front

Define your teamrsquos norms

and values

the manifesto

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 29: How Do You Build Software? Software Engineering Practices of an Agile Developer

Build your teamone team per product not per project

Cross functional

teams

swat team

sit together

Cultivate collaboration

culture

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 30: How Do You Build Software? Software Engineering Practices of an Agile Developer

Developmentthat will never be the same again

use git code branching

code Peer review

Pair Programming

Clean code principles

collective ownership

build as if itrsquos open source

refactoring

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 31: How Do You Build Software? Software Engineering Practices of an Agile Developer

Start the projectand follow these basic practices

Minimum viable

product

Emergentsimpledesign

shortup-front

designAgile

Documenting

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 32: How Do You Build Software? Software Engineering Practices of an Agile Developer

testing strategyyou can never succeed without it

TDDATDDBDD

Testing legacy

systems

ABTesting

chaosmonkey

MULTI LAYER TESTING

design

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 33: How Do You Build Software? Software Engineering Practices of an Agile Developer

never release an unreviewEd code to production

NEVER

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 34: How Do You Build Software? Software Engineering Practices of an Agile Developer

reproduce the bugs with tests before fixing itor the fixed bugs may rise again

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 35: How Do You Build Software? Software Engineering Practices of an Agile Developer

get feedbackas soon as possible as much as possible

code coverage

continuous ıntegration

continuous build

code analysis

10 min build

evergreenbuild status

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 36: How Do You Build Software? Software Engineering Practices of an Agile Developer

continuous deliverybeing always ready to go-live

snapshots daily Builds

continuous delivery

central package

repository

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 37: How Do You Build Software? Software Engineering Practices of an Agile Developer

release amp deployit should be smooth and error-prune

short frequent releases

continuous deployment

fast bootup

devops

enterprise environments

cloud compatible

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 38: How Do You Build Software? Software Engineering Practices of an Agile Developer

and adabt to change in any circumstances

the ultimate aim

Building robust stable flexible extensible high quality software

with teams having highly-competent motivated people

in a fast and efficient way

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 39: How Do You Build Software? Software Engineering Practices of an Agile Developer

No methodology is as effective as being passionate and disciplinedldquo

rdquoAltuĞ AlTINTAŞLean-Kanban Consultant

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 40: How Do You Build Software? Software Engineering Practices of an Agile Developer

references

extreme programminghttpwwwextremeprogrammingorg

Continuous IntegrationhttpwwwmartinfowlercomarticlescontinuousIntegrationhtml

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 41: How Do You Build Software? Software Engineering Practices of an Agile Developer

Images

httpwwwflickrcomphotosaaronvandike3221087856httpwwwflickrcomphotosfrozenhaddock3948223272httpwwwflickrcomphotospenguincakes2930270559httpwwwflickrcomphotos44898314N068310699806httpwwwflickrcomphotosjymloke4476177332httpwwwflickrcomphotosbowmanitis8634625952httpwwwflickrcomphotossarah_rara382542210httpwwwflickrcomphotoshansoete4965196httpwwwflickrcomphotosx-ray_delta_one3812795111httpwwwflickrcomphotosvikhoa8823977016httpwwwflickrcomphotoscattardbezzina4106668524httpwwwflickrcomphotosdalboz174126689055httpwwwflickrcomphotosvstrash2847241785httpwwwflickrcomphotosaloha757299416028httpwwwflickrcomphotos83905817N087676576180httpwwwflickrcomphotosdexflu5330502784httpwww10wallpapercomdownLeafcutter_ants_carrying_leaves_Braulio_Carrillo_National_Park_1600x1200_wallpaperhtmlhttpwwwflickrcomphotosnicksee5152087020httpwwwflickrcomphotosmnsc2768391365

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom

Page 42: How Do You Build Software? Software Engineering Practices of an Agile Developer

Lemİ orhan ergİnlemiorhanagilistanbulcom

lemiorhan

lemiorhan

agilistanbulcom

lemiorhan

LINKE

DIN

TWITT

ERSL

IDES

HARE

BLOG

Principal Software Engineer SonyFounder amp Author agilistanbulcom

flyingtomooncom