php development for large agile projects
TRANSCRIPT
PHP development for large agile projectsOverview 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 anddoing work in which it is understood that making changes asthey are needed is an important part of the job
What is a large project?
Can something large be agile at all?
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
...
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 (fromtechnical perspective)
INDIVIDUALS: I want to do a great job in a greatenvironment
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
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]
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
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
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 legacysoftware!
Questions?
Introduction The problem at hand Possible solutions Summary
Thank you!
http://linkedin.com/in/ggodlewskiMail: [email protected]
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