Table of Contents
Preface
Chapter 1: Software is Complex
Chapter 2: MVC and Software Teams
Chapter 3: Dealing with Complexity
Chapter 4: The Process Matters
Chapter 5: Agile Works Best
Chapter 6: Ways of Collaboration
Chapter 7: Continuous Improvement
Index
- Chapter 1: Software is Complex
- Need for teams
- Software engineering principles to help
- Use a process
- Divide and conquer
- Guarantee reuse
- Guarantee integration
- Prevent regression
- Vertical versus horizontal division
- Continuous integration
- Patterns as solutions
- Process for success
- Tools
- Source code control
- Continuous builds
- Issue tracking
- Communication
- Summary
- Chapter 2: MVC and Software Teams
- Software design patterns
- MVC pattern
- Intent
- Motivation
- Solution
- Model
- View
- Controller
- How MVC can help
- MVC helps with change
- Implementing MVC with a team
- Aspects of the presentation layer (view)
- The overall team distribution
- Integration challenges
- Summary
- Chapter 3: Dealing with Complexity
- Frameworks to simplify complexity
- How can frameworks help?
- Expectations from frameworks
- Simplicity
- Size of the framework
- Performance
- Security
- Separate HTML from PHP
- AJAX support
- No restrictions
- Object-oriented versus functional
- Code quality of the project
- Enforce best practices
- Configuration needs
- Internationalization
- Documentation
- Community
- Commercial support
- License
- Vendor locking
- Availability with hosting
- Some more points to ponder
- Team success with frameworks
- Technical feasibility study of the framework
- PHP Frameworks
- Limb
- phpDrone
- ZNF
- ATK
- Akelos
- CakePHP
- CodeIgniter
- Zend Framework
- PHP Work
- Symfony
- KISS—beyond frameworks
- Beyond frameworks
- People are complex
- Avoid NIH
- Innovation
- Embrace change
- Simplicity is a mindset
- Summary
- Frameworks to simplify complexity
- Chapter 4: The Process Matters
- Process and product
- Ignoring the process
- Process must be respected
- From no process to some process
- Process helps not hinder
- Simple process for PHP projects
- User requirements
- Modeling what the users want
- Data modeling
- Business modeling
- User activity analysis
- Designs and implementing the data layer
- Designs and implementing the business layer
- Design and implementation of the user interface
- Summary
- Chapter 5: Agile Works Best
- Introducing agile philosophy
- Agile values
- Agile principles
- Individuals and interactions
- Working software over comprehensive documentation
- Customer collaboration
- Responding to change
- Customizing agile to our needs
- Common fears for developers
- Producing the wrong product
- Product of inferior quality
- Getting late to complete the project
- Too much work in too little time
- Traits of agile team members
- Competence
- Common focus
- Collaboration
- Decision-making ability
- Fuzzy-problem solving ability
- Mutual trust and respect
- What is agility
- Characteristics of an agile process
- Principles of agility
- Extreme Programming (XP)
- XP planning
- XP design
- XP coding
- XP testing
- Advantages of agile development process
- Team agility
- Agile process models
- Adaptive Software Development
- Dynamic Systems Development Method
- Dynamic Systems Development Method's life cycle
- Scrum
- Backlog
- Sprints
- Scrum meetings
- Demos
- Feature Driven Development
- Agile Modeling
- Agile for the PHP team
- Pair programming
- Sustainable working style
- Information-driven workspace
- Fixing the process
- Sitting together
- Ubiquitous language
- Stand-up meetings
- Demonstrate the iteration outcome
- Summary
- Introducing agile philosophy
- Chapter 6: Ways of Collaboration
- Team work is challenging
- Team members make assumptions
- Making integration possible
- Team work is challenging
- Source control
- Bug control
- Configuration management
- Tools for communication and collaboration
- Tracking tools
- Summary
- Chapter 7: Continuous Improvement
- Dealing with change in PHP applications
- Ensuring process effectiveness
- Ensure you are improving
- Evolving PHP applications
- People development
- Teams and success
- Managing the team
- Leadership
- Quality focus
- Constant monitoring
- The team is human
- Summary



