SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
CS 361 Software
Week 1
Attendance Rules
• If you attend less than 80% of classes, you automatically
fail this class.
• If you arrive late (any later than 12:00:00 pm), don’t try
to interrupt the class.Wait outside till the break. You
are allowed in during the break.
• Be here, ask questions to make the most out of this
class.
Administrative
•Course Instructor
• Ahmet Bulut (ahmetbulut@sehir.edu.tr)
•Course TAs
• Jeton Pllana (Masters Student).
• Oguzhan Sagoglu (Undergraduate Student with inner
drive).
Coursebook
•Core Material
• Foundations of Agile Python Development
• The Definitive Guide to Django:Web Development
Done Right!
•Instrumentation/Enrichment Books
• Interactive DataVisualization for the Web
• Mining the Social Web
What’s Agile Development?
• Focus on short development cycles, on the scale of
weeks rather than months.
• Each development cycle, referred to as an iteration or
sprint, produces a working product.
What’s Agile Development?
Pair programming
What’s Agile Development?
Pair programming
User stories
What’s Agile Development?
Pair programming
User stories
The system metaphor
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
Collective code ownership
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
Collective code ownership
Continuous reflection
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
Collective code ownership
Continuous reflection
Continuous Integration
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
Collective code ownership
Continuous reflection
Continuous Integration
Documentation
State of Affairs
• Some projects succeed and some projects fail.
• No matter what development methods are used.
• Development is about much more than simply the
techniques that are used.
• Good development depends upon a strong grounding in
reality; not everything can be known before a
project starts, and this must be taken into account
when planning.
Waterfall
Waterfall methodology
• It assumes that all change can be predicted and
described up front.
• Exploratory tasks that should be part of development
are pushed into the design phase.
• The waterfall methodology also assumes that
documentation can be sufficient to describe a system.
• A software specification detailed enough to
unambiguously describe the system is specific enough to
be translated automatically to software.
Manifesto for
Agile Software Development
• Produced in February, 2001.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Enabling...
• Agile methods reflect an underlying change in
technology.
• In the early ‘80s, computing power was expensive and
people’s time was comparatively cheap.
• The ability to run hundreds or thousands of tests in a
few seconds was fantasy.
• The idea of setting up and tearing down a SQL database
in memory was absurd.
What is Agile?
• Planning is critical to any project: the
development team needs to know the broad scope and
the intended form of the finished product.
• Defer coding until you have a basic grasp of what you
are trying to build.
• Agile methods aren’t a license to go flying off in any
direction.
• Agile development methods are excellent tools for
producing locally optimal designs, but on their own they
are insufficient to produce globally optimal designs.
What’s Agile Development?
Pair programming
User stories
The system metaphor
On-site customers
Unit tests
Test-driven development
Refactoring
Simple Design
Short Iterations
Collective code ownership
Continuous reflection
Continuous Integration
Documentation
Agile Methods
• Feature development and feature maintenance are one
and the same.
• Your software should always be functional. It may not
have the full functionality of the finished application, but
it should always be runnable and installable.
• Source code is not a product. It is a blueprint for a
product.
• Writing software is not producing new features, but
instead designing them. Similarly, rewriting existing
software is really redesigning old features.
Pair Programming
Pair Programming
• Most programmers aren’t that productive.
• Programming is lonely, and we’re social creatures.
• Programmers end up wasting half their day.
They spend time reading e-mail, whether personal or
company.
They surf the Web.
They fall into conversations with coworkers.
• To some extent, they are just trying to engage with
other human beings.
Code space
• Working alone with a computer has a strange effect on
the human mind.The computer gives rewards and
feedback, but it doesn’t engage our limbic system
• It’s a place isolated from the rest of the human race. It
takes time to come back from code space, often hours,
and those are the hours that we have to spend with our
families and friends.
Social Programmers
• Put two programmers together and their work
becomes a social activity.
• They work together.
• They don’t get stuck, they keep each other from being
distracted, they don’t go into code space, and they’re
happier at the end of the day.
• At worst, you haven’t lost any productivity, and you’ve
increased employee morale.
Pair programming
• ... improves code quality.
• ... is a form of constant code review.
• Code reviews are a process in which programmers
review and make suggestions about another developer’s
code.
• Note: Code reviews have been found to consistently
decrease the number of bugs per thousand lines of code, and
they have been found to be more effective at doing this than
any other single measure.
Pair programming
• ... transfers knowledge between team members.
• There is no obstacle between you and the next person.
If you need help from someone who knows a given
section of code, you can turn around and ask them.
• We’re very good at carrying on conversations with
other people and ignoring our larger environment. It
takes much more to interrupt our flow of thoughts.
• Think of all the wonderful conversations that people
have in restaurants and cafes.
Pair Programming
• Pairs are fluid. Programmers pair
with different programmers every
few days to spread the knowledge
around. Knowledge spreads like a virus.
• 1 person knows something in the beginning. She pairs
with someone. Now 2 people know.They move on to
different pairs, and now 4 people now know.
• The more pairings you have, the more it spreads.
• This protects the development group from the loss of
any one programmer.
User
Stories
1. User stories are the distillation of what the customer wants and what can be
produced by the programmers.
2. It is important for programmers and management to be involved in their
creation, as they provide a technical check on customers’ wild dreams.
3. It is important that the dreams be those of the customer, though, as the
programmers probably don’t have as firm a grasp on the business problems as
they’d like to believe.
System Metaphor
• There is just one way that the code, the developers, the
managers, and the customers talk about the design.
When everyone speaks the same vocabulary,
meetings and discussions flow smoothly.
• The system metaphor allows you to talk about your
design in a consistent and unambiguous way.
On-site customers
• Having a customer available saves the programmer from
having to make guesses about the domain. Making
guesses is expensive.
• The customer also serves as broad functional QA.
She gets to see things along the way. She can catch
situations where the developers and customer didn’t
communicate quite well enough.
• Having the customer on site speeds up this process of
interaction.The programmers don’t have to wait for
the customer to get back to them.
Thank you!
• See you on Thursday at 12pm.

Contenu connexe

Tendances

Pair programming demystified
Pair programming demystifiedPair programming demystified
Pair programming demystifiedMarek Kirejczyk
 
Tdd 4 everyone full version
Tdd 4 everyone full versionTdd 4 everyone full version
Tdd 4 everyone full versionLior Israel
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Vinit Kumar Singh
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentationMeagan Waller
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme ProgrammingKnoldus Inc.
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming Fatemeh Karimi
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringAndy Maleh
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Effective Quality Facilitation | Beyond Normal
Effective Quality Facilitation | Beyond NormalEffective Quality Facilitation | Beyond Normal
Effective Quality Facilitation | Beyond NormalSPIN Chennai
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)Mike Harris
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesNoam Kfir
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 

Tendances (20)

Pair programming demystified
Pair programming demystifiedPair programming demystified
Pair programming demystified
 
Tdd 4 everyone full version
Tdd 4 everyone full versionTdd 4 everyone full version
Tdd 4 everyone full version
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentation
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Effective Quality Facilitation | Beyond Normal
Effective Quality Facilitation | Beyond NormalEffective Quality Facilitation | Beyond Normal
Effective Quality Facilitation | Beyond Normal
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the Lines
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 

En vedette

Ecosystem for Scholarly Work
Ecosystem for Scholarly WorkEcosystem for Scholarly Work
Ecosystem for Scholarly WorkAhmet Bulut
 
ESX Server from VMware
ESX Server from VMwareESX Server from VMware
ESX Server from VMwareAhmet Bulut
 
Bilisim 2010 @ bura
Bilisim 2010 @ buraBilisim 2010 @ bura
Bilisim 2010 @ buraAhmet Bulut
 
Programming with Python - Week 2
Programming with Python - Week 2Programming with Python - Week 2
Programming with Python - Week 2Ahmet Bulut
 
Liselerde tanıtım sunumu
Liselerde tanıtım sunumuLiselerde tanıtım sunumu
Liselerde tanıtım sunumuAhmet Bulut
 

En vedette (6)

Ecosystem for Scholarly Work
Ecosystem for Scholarly WorkEcosystem for Scholarly Work
Ecosystem for Scholarly Work
 
ESX Server from VMware
ESX Server from VMwareESX Server from VMware
ESX Server from VMware
 
Kaihl 2010
Kaihl 2010Kaihl 2010
Kaihl 2010
 
Bilisim 2010 @ bura
Bilisim 2010 @ buraBilisim 2010 @ bura
Bilisim 2010 @ bura
 
Programming with Python - Week 2
Programming with Python - Week 2Programming with Python - Week 2
Programming with Python - Week 2
 
Liselerde tanıtım sunumu
Liselerde tanıtım sunumuLiselerde tanıtım sunumu
Liselerde tanıtım sunumu
 

Similaire à Agile Software Development

The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developerenteritos
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014Pakorn Weecharungsan
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Ahmed Misbah
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&processSheSaysCREATIVE
 
Distributed teams
Distributed teamsDistributed teams
Distributed teamsKush Shah
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptHitesh Kumar
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechIIITA
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
 
Why Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamWhy Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamRob Curry
 

Similaire à Agile Software Development (20)

The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
 
10 skills developers should invest in for 2014
10 skills developers should invest in for 201410 skills developers should invest in for 2014
10 skills developers should invest in for 2014
 
Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019Agile Software Development and DevOps 21092019
Agile Software Development and DevOps 21092019
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Introduction
IntroductionIntroduction
Introduction
 
Software testing
Software testingSoftware testing
Software testing
 
Distributed teams
Distributed teamsDistributed teams
Distributed teams
 
Distributed_teams
Distributed_teamsDistributed_teams
Distributed_teams
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Twelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btechTwelve practices of XP_Se lect5 btech
Twelve practices of XP_Se lect5 btech
 
3.pptx
3.pptx3.pptx
3.pptx
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
 
Why Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamWhy Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My Team
 

Plus de Ahmet Bulut

Nose Dive into Apache Spark ML
Nose Dive into Apache Spark MLNose Dive into Apache Spark ML
Nose Dive into Apache Spark MLAhmet Bulut
 
Data Economy: Lessons learned and the Road ahead!
Data Economy: Lessons learned and the Road ahead!Data Economy: Lessons learned and the Road ahead!
Data Economy: Lessons learned and the Road ahead!Ahmet Bulut
 
Apache Spark Tutorial
Apache Spark TutorialApache Spark Tutorial
Apache Spark TutorialAhmet Bulut
 
A Few Tips for the CS Freshmen
A Few Tips for the CS FreshmenA Few Tips for the CS Freshmen
A Few Tips for the CS FreshmenAhmet Bulut
 
Agile Data Science
Agile Data ScienceAgile Data Science
Agile Data ScienceAhmet Bulut
 
What is open source?
What is open source?What is open source?
What is open source?Ahmet Bulut
 
Programming with Python - Week 3
Programming with Python - Week 3Programming with Python - Week 3
Programming with Python - Week 3Ahmet Bulut
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1Ahmet Bulut
 
Startup Execution Models
Startup Execution ModelsStartup Execution Models
Startup Execution ModelsAhmet Bulut
 
Virtualization @ Sehir
Virtualization @ SehirVirtualization @ Sehir
Virtualization @ SehirAhmet Bulut
 

Plus de Ahmet Bulut (12)

Nose Dive into Apache Spark ML
Nose Dive into Apache Spark MLNose Dive into Apache Spark ML
Nose Dive into Apache Spark ML
 
Data Economy: Lessons learned and the Road ahead!
Data Economy: Lessons learned and the Road ahead!Data Economy: Lessons learned and the Road ahead!
Data Economy: Lessons learned and the Road ahead!
 
Apache Spark Tutorial
Apache Spark TutorialApache Spark Tutorial
Apache Spark Tutorial
 
A Few Tips for the CS Freshmen
A Few Tips for the CS FreshmenA Few Tips for the CS Freshmen
A Few Tips for the CS Freshmen
 
Agile Data Science
Agile Data ScienceAgile Data Science
Agile Data Science
 
Data Science
Data ScienceData Science
Data Science
 
What is open source?
What is open source?What is open source?
What is open source?
 
Programming with Python - Week 3
Programming with Python - Week 3Programming with Python - Week 3
Programming with Python - Week 3
 
Programming with Python: Week 1
Programming with Python: Week 1Programming with Python: Week 1
Programming with Python: Week 1
 
Startup Execution Models
Startup Execution ModelsStartup Execution Models
Startup Execution Models
 
I feel dealsy
I feel dealsyI feel dealsy
I feel dealsy
 
Virtualization @ Sehir
Virtualization @ SehirVirtualization @ Sehir
Virtualization @ Sehir
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Agile Software Development

  • 2. Attendance Rules • If you attend less than 80% of classes, you automatically fail this class. • If you arrive late (any later than 12:00:00 pm), don’t try to interrupt the class.Wait outside till the break. You are allowed in during the break. • Be here, ask questions to make the most out of this class.
  • 3. Administrative •Course Instructor • Ahmet Bulut (ahmetbulut@sehir.edu.tr) •Course TAs • Jeton Pllana (Masters Student). • Oguzhan Sagoglu (Undergraduate Student with inner drive).
  • 4. Coursebook •Core Material • Foundations of Agile Python Development • The Definitive Guide to Django:Web Development Done Right! •Instrumentation/Enrichment Books • Interactive DataVisualization for the Web • Mining the Social Web
  • 5. What’s Agile Development? • Focus on short development cycles, on the scale of weeks rather than months. • Each development cycle, referred to as an iteration or sprint, produces a working product.
  • 7. What’s Agile Development? Pair programming User stories
  • 8. What’s Agile Development? Pair programming User stories The system metaphor
  • 9. What’s Agile Development? Pair programming User stories The system metaphor On-site customers
  • 10. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests
  • 11. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development
  • 12. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring
  • 13. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design
  • 14. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations
  • 15. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations Collective code ownership
  • 16. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations Collective code ownership Continuous reflection
  • 17. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations Collective code ownership Continuous reflection Continuous Integration
  • 18. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations Collective code ownership Continuous reflection Continuous Integration Documentation
  • 19. State of Affairs • Some projects succeed and some projects fail. • No matter what development methods are used. • Development is about much more than simply the techniques that are used. • Good development depends upon a strong grounding in reality; not everything can be known before a project starts, and this must be taken into account when planning.
  • 21. Waterfall methodology • It assumes that all change can be predicted and described up front. • Exploratory tasks that should be part of development are pushed into the design phase. • The waterfall methodology also assumes that documentation can be sufficient to describe a system. • A software specification detailed enough to unambiguously describe the system is specific enough to be translated automatically to software.
  • 22. Manifesto for Agile Software Development • Produced in February, 2001. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 23. Enabling... • Agile methods reflect an underlying change in technology. • In the early ‘80s, computing power was expensive and people’s time was comparatively cheap. • The ability to run hundreds or thousands of tests in a few seconds was fantasy. • The idea of setting up and tearing down a SQL database in memory was absurd.
  • 24. What is Agile? • Planning is critical to any project: the development team needs to know the broad scope and the intended form of the finished product. • Defer coding until you have a basic grasp of what you are trying to build. • Agile methods aren’t a license to go flying off in any direction. • Agile development methods are excellent tools for producing locally optimal designs, but on their own they are insufficient to produce globally optimal designs.
  • 25. What’s Agile Development? Pair programming User stories The system metaphor On-site customers Unit tests Test-driven development Refactoring Simple Design Short Iterations Collective code ownership Continuous reflection Continuous Integration Documentation
  • 26. Agile Methods • Feature development and feature maintenance are one and the same. • Your software should always be functional. It may not have the full functionality of the finished application, but it should always be runnable and installable. • Source code is not a product. It is a blueprint for a product. • Writing software is not producing new features, but instead designing them. Similarly, rewriting existing software is really redesigning old features.
  • 28. Pair Programming • Most programmers aren’t that productive. • Programming is lonely, and we’re social creatures. • Programmers end up wasting half their day. They spend time reading e-mail, whether personal or company. They surf the Web. They fall into conversations with coworkers. • To some extent, they are just trying to engage with other human beings.
  • 29. Code space • Working alone with a computer has a strange effect on the human mind.The computer gives rewards and feedback, but it doesn’t engage our limbic system • It’s a place isolated from the rest of the human race. It takes time to come back from code space, often hours, and those are the hours that we have to spend with our families and friends.
  • 30. Social Programmers • Put two programmers together and their work becomes a social activity. • They work together. • They don’t get stuck, they keep each other from being distracted, they don’t go into code space, and they’re happier at the end of the day. • At worst, you haven’t lost any productivity, and you’ve increased employee morale.
  • 31. Pair programming • ... improves code quality. • ... is a form of constant code review. • Code reviews are a process in which programmers review and make suggestions about another developer’s code. • Note: Code reviews have been found to consistently decrease the number of bugs per thousand lines of code, and they have been found to be more effective at doing this than any other single measure.
  • 32. Pair programming • ... transfers knowledge between team members. • There is no obstacle between you and the next person. If you need help from someone who knows a given section of code, you can turn around and ask them. • We’re very good at carrying on conversations with other people and ignoring our larger environment. It takes much more to interrupt our flow of thoughts. • Think of all the wonderful conversations that people have in restaurants and cafes.
  • 33. Pair Programming • Pairs are fluid. Programmers pair with different programmers every few days to spread the knowledge around. Knowledge spreads like a virus. • 1 person knows something in the beginning. She pairs with someone. Now 2 people know.They move on to different pairs, and now 4 people now know. • The more pairings you have, the more it spreads. • This protects the development group from the loss of any one programmer.
  • 34. User Stories 1. User stories are the distillation of what the customer wants and what can be produced by the programmers. 2. It is important for programmers and management to be involved in their creation, as they provide a technical check on customers’ wild dreams. 3. It is important that the dreams be those of the customer, though, as the programmers probably don’t have as firm a grasp on the business problems as they’d like to believe.
  • 35. System Metaphor • There is just one way that the code, the developers, the managers, and the customers talk about the design. When everyone speaks the same vocabulary, meetings and discussions flow smoothly. • The system metaphor allows you to talk about your design in a consistent and unambiguous way.
  • 36. On-site customers • Having a customer available saves the programmer from having to make guesses about the domain. Making guesses is expensive. • The customer also serves as broad functional QA. She gets to see things along the way. She can catch situations where the developers and customer didn’t communicate quite well enough. • Having the customer on site speeds up this process of interaction.The programmers don’t have to wait for the customer to get back to them.
  • 37.
  • 38. Thank you! • See you on Thursday at 12pm.