SlideShare a Scribd company logo
PHP development for large agile projects
Overview and hints for developers
Grzegorz Godlewski
PHPCon 2016, Ossa, Poland
October 2, 2016
Introduction The problem at hand Possible solutions Summary
Agenda
1 Introduction
2 The problem at hand
3 Possible solutions
4 Summary
What does agile mean anyway?
According to Cambridge Dictionary:
Physically: able to move your body quickly and easily
Mentally: able to think quickly and clearly
Management: used for describing ways of planning and
doing work in which it is understood that making changes as
they are needed is an important part of the job
What is a large project?
Can something large be agile at all?
PHP development for large agile projects
PHP development for large agile projects
PHP development for large agile projects
PHP development for large agile projects
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
The fundamental problem
One thing is sure about software development...
there will be change
Introduction The problem at hand Possible solutions Summary
To do list...
Display product
Products in the cart
Order placement
Vouchers
Introduction The problem at hand Possible solutions Summary
... after 2 weeks
[DONE] Display product
Product comparison
[DONE] Products in the cart
Product sets
[IN PROGRESS] Order placement
Other’s bought also...
Discount codes
Invoices
Vouchers
...
PHP development for large agile projects
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
Agility limitation
The programming language
Organization culture
Business model
Processes / methodologies / work-flows
Requirements for the product
Implemented solutions
Teams
People
Introduction The problem at hand Possible solutions Summary
Solution dimensions
The dimensions are:
PRODUCT: I want to build the right product
TEAMS: I want to built the software in a right way (from
technical perspective)
INDIVIDUALS: I want to do a great job in a great
environment
Introduction The problem at hand Possible solutions Summary
THE PRODUCT
Introduction The problem at hand Possible solutions Summary
Introduction The problem at hand Possible solutions Summary
Introduction The problem at hand Possible solutions Summary
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
Problems in Scrum
Organizational level:
Weaponization: Whip & Shield
”Dark Scrum” by R. Jeffries [1]
Development level:
Feels like constant deadlines
Narrowed perspective
And many others... [2]
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
THE TEAMS
Introduction The problem at hand Possible solutions Summary
Extreme Programming Practices and values
Practices are divided to two categories:
Primary
Corollary
XP values the following:
Communication
Feedback
Simplicity
Courage
Respect
Introduction The problem at hand Possible solutions Summary
Coding Practices
Code and Design Simply
Refactor Mercilessly
Develop Coding Standards
Develop a Common Vocabulary
Introduction The problem at hand Possible solutions Summary
Developer Practices
Adopt Test-Driven Development
Practice Pair Programming
Adopt Collective Code Ownership
Integrate Continually
Introduction The problem at hand Possible solutions Summary
Business Practices
Add a Customer to the Team
Play the Planning Game
Release Regularly
Work at a Sustainable Pace
Introduction The problem at hand Possible solutions Summary
THE INDIVIDUALS
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
The tools at hand
Various principles
Best practices (coding, development process, publishing,
deployments, automation)
Knowledge of patterns [3, 4, 5, 6]
Powerful programming languages
Literature (starting from previous century)
Manifests ;) [7, 8]
Knowledge of anti-patterns [6, 9]
Initiatives: PHP in the ”right” or ”wrong” way
Introduction The problem at hand Possible solutions Summary
The industry standard acronyms
SOLID
KISS
DRY
YAGNI
PHP development for large agile projects
Introduction The problem at hand Possible solutions Summary
Summary
There are no silver bullets in software development
Be pragmatic, balance is everything
The tools are already there, learn them
Browse http://www.thedailywtf.com/ ;)
When introducing change, do it step by step, avoid big bangs
Learn, apply, repeat
Stay open minded and always be ready for change
Introduction The problem at hand Possible solutions Summary
But I’m working with legacy
software!
PHP development for large agile projects
Questions?
Introduction The problem at hand Possible solutions Summary
Thank you!
http://linkedin.com/in/ggodlewski
Mail: grzegorz@sorcerystudio.com
Twitter: @GGodlewski
Introduction The problem at hand Possible solutions Summary
References
[1] R. Jeffries. (last accessed 2016) Dark scrum. [Online]. Available:
http://ronjeffries.com/articles/016-09ff/defense/
[2] (last accessed 2016) 24 common scrum pitfalls summarized. [Online]. Available:
http://www.agileadvice.com/2011/12/05/referenceinformation/24-common-scrum-pitfalls-summarized/
[3] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns. Addison-Wesley, 1994.
[4] M. Fowler et al., Patterns of Enterprise Application Architecture. Addison-Wesley, 2003.
[5] K. Beck, Implementation patterns. Addison-Wesley, 2006.
[6] (last accessed 2016) Source making website (design patterns, anti-patterns, refactoring). [Online]. Available:
http://sourcemaking.com
[7] (2001) Manifesto for agile software development. [Online]. Available: http://www.agilemanifesto.org/
[8] (2009) Manifesto for software craftmanship. [Online]. Available: http://manifesto.softwarecraftsmanship.org/
[9] Cunningham and Cunningham. (last accessed 2016) Category anti pattern. [Online]. Available:
http://c2.com/cgi/wiki?CategoryAntiPattern

More Related Content

PDF
Prototyping: ProductTank NYC
PDF
NYU Stern: How to Start Your Digital Idea
PPTX
Georgia State Presentation
PDF
Harvard Business School: How to Start Your Digital Idea
PPT
Introduction to Test Driven Development
PDF
Specification by example - course summary
PDF
Design thinking and agile development
PDF
Evolutionary Design - NewCrafts Paris 18 May 2018
Prototyping: ProductTank NYC
NYU Stern: How to Start Your Digital Idea
Georgia State Presentation
Harvard Business School: How to Start Your Digital Idea
Introduction to Test Driven Development
Specification by example - course summary
Design thinking and agile development
Evolutionary Design - NewCrafts Paris 18 May 2018

Viewers also liked (20)

PDF
Developing Breakout Models in FEMAP (Includes Tutorial Walk-throughs)
PDF
Presentazione Club4business
PPTX
Prezentacja ux
PDF
Reza fazeli portfolio
PPTX
DOCX
Proyecto de expresion oral
PPTX
The roles and function of educational technology in 2
PPTX
Tecnologie per l'insegnamento
DOC
ALEC+ASIAMAH+DENKYIRAH
PDF
PhD-course-Reliability-WT-3-5dec2012
PDF
WW TAIPEI Booklet Stephanie Hsu (1)
PPTX
Igot.final
PPTX
silla de trabajo desplazable para un estudiante con movilidad reducida
PDF
THE PORTFOLIO 2016
PPTX
Presentation #3
PPTX
Q1
PDF
Rhinoplasty in indore
PDF
Aguaymanto
DOC
Md.Hasanuzzaman_CV.N
PDF
9781119101987RetailNetworksForDummies_15954 (1)
Developing Breakout Models in FEMAP (Includes Tutorial Walk-throughs)
Presentazione Club4business
Prezentacja ux
Reza fazeli portfolio
Proyecto de expresion oral
The roles and function of educational technology in 2
Tecnologie per l'insegnamento
ALEC+ASIAMAH+DENKYIRAH
PhD-course-Reliability-WT-3-5dec2012
WW TAIPEI Booklet Stephanie Hsu (1)
Igot.final
silla de trabajo desplazable para un estudiante con movilidad reducida
THE PORTFOLIO 2016
Presentation #3
Q1
Rhinoplasty in indore
Aguaymanto
Md.Hasanuzzaman_CV.N
9781119101987RetailNetworksForDummies_15954 (1)
Ad

Similar to PHP development for large agile projects (20)

PPT
Agile And Open Development
PPS
Agile Experience In Complex Projects
PDF
Modern Software Engineering Doing What Works To Build Better Software Faster ...
PPTX
The Secret, Yet Obvious, Ingredient to Sustainable Agility
PDF
A Philosophy Of Software Design John Ousterhout
PPT
Os Leung
PPTX
Lean Software Development
PDF
A Philosophy Of Software Design Ousterhout John
PPT
Methodology for Information System Project Management
PDF
How to become a great developer
PPT
Intro to Agile Practices and Values
PPT
Agile Methodologies And Extreme Programming - Svetlin Nakov
DOCX
Mit109 – software engineering
DOCX
Mit109 – software engineering
PDF
UXBC #26: Lean UX
PPT
Agile Methodologies And Extreme Programming
PPTX
Andrew Hunt
PPT
Introduction to Agile Software Development & Python
PDF
Agile Technical Leadership
Agile And Open Development
Agile Experience In Complex Projects
Modern Software Engineering Doing What Works To Build Better Software Faster ...
The Secret, Yet Obvious, Ingredient to Sustainable Agility
A Philosophy Of Software Design John Ousterhout
Os Leung
Lean Software Development
A Philosophy Of Software Design Ousterhout John
Methodology for Information System Project Management
How to become a great developer
Intro to Agile Practices and Values
Agile Methodologies And Extreme Programming - Svetlin Nakov
Mit109 – software engineering
Mit109 – software engineering
UXBC #26: Lean UX
Agile Methodologies And Extreme Programming
Andrew Hunt
Introduction to Agile Software Development & Python
Agile Technical Leadership
Ad

Recently uploaded (20)

PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Digital Strategies for Manufacturing Companies
PDF
Nekopoi APK 2025 free lastest update
PPTX
L1 - Introduction to python Backend.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
System and Network Administration Chapter 2
PPT
Introduction Database Management System for Course Database
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Introduction to Artificial Intelligence
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
CHAPTER 2 - PM Management and IT Context
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
wealthsignaloriginal-com-DS-text-... (1).pdf
Digital Strategies for Manufacturing Companies
Nekopoi APK 2025 free lastest update
L1 - Introduction to python Backend.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
System and Network Administration Chapter 2
Introduction Database Management System for Course Database
How to Choose the Right IT Partner for Your Business in Malaysia
Introduction to Artificial Intelligence
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Design an Analysis of Algorithms II-SECS-1021-03

PHP development for large agile projects

  • 1. PHP development for large agile projects Overview and hints for developers Grzegorz Godlewski PHPCon 2016, Ossa, Poland October 2, 2016
  • 2. Introduction The problem at hand Possible solutions Summary Agenda 1 Introduction 2 The problem at hand 3 Possible solutions 4 Summary
  • 3. What does agile mean anyway? According to Cambridge Dictionary: Physically: able to move your body quickly and easily Mentally: able to think quickly and clearly Management: used for describing ways of planning and doing work in which it is understood that making changes as they are needed is an important part of the job
  • 4. What is a large project?
  • 5. Can something large be agile at all?
  • 11. Introduction The problem at hand Possible solutions Summary The fundamental problem One thing is sure about software development... there will be change
  • 12. Introduction The problem at hand Possible solutions Summary To do list... Display product Products in the cart Order placement Vouchers
  • 13. Introduction The problem at hand Possible solutions Summary ... after 2 weeks [DONE] Display product Product comparison [DONE] Products in the cart Product sets [IN PROGRESS] Order placement Other’s bought also... Discount codes Invoices Vouchers ...
  • 16. Introduction The problem at hand Possible solutions Summary Agility limitation The programming language Organization culture Business model Processes / methodologies / work-flows Requirements for the product Implemented solutions Teams People
  • 17. Introduction The problem at hand Possible solutions Summary Solution dimensions The dimensions are: PRODUCT: I want to build the right product TEAMS: I want to built the software in a right way (from technical perspective) INDIVIDUALS: I want to do a great job in a great environment
  • 18. Introduction The problem at hand Possible solutions Summary THE PRODUCT
  • 19. Introduction The problem at hand Possible solutions Summary
  • 20. Introduction The problem at hand Possible solutions Summary
  • 21. Introduction The problem at hand Possible solutions Summary
  • 23. Introduction The problem at hand Possible solutions Summary Problems in Scrum Organizational level: Weaponization: Whip & Shield ”Dark Scrum” by R. Jeffries [1] Development level: Feels like constant deadlines Narrowed perspective And many others... [2]
  • 25. Introduction The problem at hand Possible solutions Summary THE TEAMS
  • 26. Introduction The problem at hand Possible solutions Summary Extreme Programming Practices and values Practices are divided to two categories: Primary Corollary XP values the following: Communication Feedback Simplicity Courage Respect
  • 27. Introduction The problem at hand Possible solutions Summary Coding Practices Code and Design Simply Refactor Mercilessly Develop Coding Standards Develop a Common Vocabulary
  • 28. Introduction The problem at hand Possible solutions Summary Developer Practices Adopt Test-Driven Development Practice Pair Programming Adopt Collective Code Ownership Integrate Continually
  • 29. Introduction The problem at hand Possible solutions Summary Business Practices Add a Customer to the Team Play the Planning Game Release Regularly Work at a Sustainable Pace
  • 30. Introduction The problem at hand Possible solutions Summary THE INDIVIDUALS
  • 32. Introduction The problem at hand Possible solutions Summary The tools at hand Various principles Best practices (coding, development process, publishing, deployments, automation) Knowledge of patterns [3, 4, 5, 6] Powerful programming languages Literature (starting from previous century) Manifests ;) [7, 8] Knowledge of anti-patterns [6, 9] Initiatives: PHP in the ”right” or ”wrong” way
  • 33. Introduction The problem at hand Possible solutions Summary The industry standard acronyms SOLID KISS DRY YAGNI
  • 35. Introduction The problem at hand Possible solutions Summary Summary There are no silver bullets in software development Be pragmatic, balance is everything The tools are already there, learn them Browse http://www.thedailywtf.com/ ;) When introducing change, do it step by step, avoid big bangs Learn, apply, repeat Stay open minded and always be ready for change
  • 36. Introduction The problem at hand Possible solutions Summary But I’m working with legacy software!
  • 39. Introduction The problem at hand Possible solutions Summary Thank you! http://linkedin.com/in/ggodlewski Mail: grzegorz@sorcerystudio.com Twitter: @GGodlewski
  • 40. Introduction The problem at hand Possible solutions Summary References [1] R. Jeffries. (last accessed 2016) Dark scrum. [Online]. Available: http://ronjeffries.com/articles/016-09ff/defense/ [2] (last accessed 2016) 24 common scrum pitfalls summarized. [Online]. Available: http://www.agileadvice.com/2011/12/05/referenceinformation/24-common-scrum-pitfalls-summarized/ [3] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns. Addison-Wesley, 1994. [4] M. Fowler et al., Patterns of Enterprise Application Architecture. Addison-Wesley, 2003. [5] K. Beck, Implementation patterns. Addison-Wesley, 2006. [6] (last accessed 2016) Source making website (design patterns, anti-patterns, refactoring). [Online]. Available: http://sourcemaking.com [7] (2001) Manifesto for agile software development. [Online]. Available: http://www.agilemanifesto.org/ [8] (2009) Manifesto for software craftmanship. [Online]. Available: http://manifesto.softwarecraftsmanship.org/ [9] Cunningham and Cunningham. (last accessed 2016) Category anti pattern. [Online]. Available: http://c2.com/cgi/wiki?CategoryAntiPattern