PHP Team Development
eBook - ePub

PHP Team Development

  1. 184 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

PHP Team Development

About this book

In Detail

Given the nature of the business environment today, organizations that want to build value-added enterprise PHP applications need a team of PHP people rather than an individual. You've got a team! What next? Customizing such applications to meet with organizational objectives and maintaining these applications over time can be quite a tedious task for your team with so many people involved.

In this book, you will explore how you can break up complex PHP projects into simple sub-parts that multiple team members can work on. The book highlights the use of the MVC pattern for separating concerns in the application and agile principles to deliver code that works. You will learn to blend the simplicity and power of PHP with evolving software engineering principles and tools to easily develop code that is easy to maintain. With this book in hand, you know how to avoid getting muddled up while working in a team and achieve success on your project with effective team work.

Organizations choose PHP as the preferred language for complex web applications because it is battle tested, hardened over time, and proven to work. Thus, chances of the software project you are involved with being PHP-based, are very high. Soon, you will need to explore the technical as well as non-technical aspects that are important to achieve success in PHP team projects of this kind. This book starts by explaining the need for teams working on complex software projects. You learn how you can divide the complexity of PHP projects with the help of the MVC pattern and the use of frameworks. It then discusses the need for a process and how you can choose the right process. It teaches you how to use agile principles to deliver working software for customers, and how to make sure that the team collaborates effectively. Towards the end, the book emphasizes continuous improvement in process and product as well as the people involved. You learn how to ensure that your team is open to change and user feedback, and has the right mindset about quality and other project-related aspects.

A handy guide to simplify PHP project development for your team and enhance its productivity

Approach

This book looks into PHP projects mainly from an enterprise view. The author's experience enables him to give you an overall picture of PHP projects and discuss factors that contribute to project success in a clear and precise manner.

Each chapter focuses specifically on how the techniques covered will make team work easier. Examples (rather than abstract best practices) are used to illustrate the practical benefits.

Who this book is for

This book is for PHP developers who work in teams on complex PHP projects. With this book in hand, it is easy to discover the secrets of successful PHP projects that meet today's complex enterprise demands.
 
This book can also be useful for project managers who are looking to be successful with PHP projects. Those who are stakeholders in PHP projects, such as clients, or those who want to sponsor PHP projects, can also learn what to expect and how to deal with a PHP project team with this book.

Trusted byĀ 375,005 students

Access to over 1 million titles for a fair monthly price.

Study more efficiently using our study tools.

Information

PHP Team Development

Samisa Abeysinghe


Table of Contents

PHP Team Development
Credits
About the Author
About the Reviewers
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
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
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
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
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
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
6. Ways of Collaboration
Team work is challenging
Team members make assumptions
Making integration possible
Source control
Bug control
Configuration management
Tools for communication and collaboration
Tracking tools
Summary
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
Index

PHP Team Development

Copyright Ā© 2009 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: September 2009
Production Reference: 1240809
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847195-06-7
www.packtpub.com
Cover Image by Ed Maclean ()

Credits

Author
Samisa Abeysinghe
Reviewers
Deepak Vohra
Garvin Hicking
Acquisition Editor
Sarah Cullington
Development Editor
Dilip Venkatesh
Technical Editors
Mehul Shetty
Akash Johari
Copy Editor
Leonard D'Silva
Indexer
Monica Ajmera
Editorial Team Leader
Akshara Aware
Project Team Leader
Lata Basantani
Project Coordinator
Rajashree Hamine
Proofreader
Joel T. Johnson
Production Coordinator
Adline Swetha Jesuthas
Cover Work
Adline Swetha Jesuthas
Drawing Coordinator
Nilesh R. Mohite

About the Author

Samisa Abeysinghe has nearly ten years of industrial experience with various software projects. He has been an Apache committer for many years and has worked for software product companies as well as software services companies.
Samisa was the project leader for WSO2 Web services Framework for PHP projects for a couple of years and has an in-depth understanding on the enterprise use of PHP. He has been involved in helping many project teams use WSO2 WSF/PHP for enterprise projects.
As director of engineering at WSO2, Samisa now looks after multiple teams working on various projects on a daily basis and gets involved with defining and fine-tuning processes and practices to ensure a project's success.
Samisa is also the author of the book RESTful PHP Web Services.

About the Reviewers

Deepak Vohra is a consultant and a principal member of the NuBean.com software company. He is a Sun Certified Java Programmer and Web Component Developer, and has worked in the fields of XML, Java programming and J2EE for over five years. He is the co-author of the Apress book Pro XML Development with Java Technology and was the technical reviewer for the O'Reilly book WebLogic: The Definitive Guide. He was also the technical reviewer for the Course Technology PTR book Ruby Programming for the Absolute Beginner, and the technical editor for the Manning Publications book Prototype and Scriptaculous in Action. Deepak is also the author of the Packt Publishing books JDBC 4.0 and Oracle JDeveloper for J2EE Development, and Processing XML Documents with Oracle JDeveloper 11g.
Garvin Hicking is a passionate web-developer, who is engaged in open source projects like Serendipity (Lead Developer) and phpMyAdmin. He works at the Internet agency Faktor E GmbH in Bonn (Germany). Being up-to-date, he has been involved in writing or reviewing several books about PHP, the most recent one being the official documentation of the PHP-Blog application Serendipity. Aside from his professional work, he and his girlfriend enjoy taking professional photographs.

Preface

This book is about ensuring project success for PHP teams. It explores technical as well as non technical aspects that matter when achieving project success. On the technical front, designing to divide complexity to conquer complex problems, keeping things simple in the design, choosing the right process, and monitoring and improving the process are important aspects. On the non technical front, making sure that they collaborate effectively, the team should be open to changes. The team should be open to user feedback. Having the right mindset about quality and other aspects related to project success are discussed.

What this book covers

Chapter 1, Software is Complex, explains the complexities that we face while working with today's software projects. PHP projects, some years ago, used to be small projects involving one or two people. However, today, we need teams of people for PHP projects. This chapter explores the need for teams for PHP projects. It also discusses how software engineering principles help with PHP projects. There is an increasing need to use a process for PHP projects. The complexity of having a team is figuring out how to divide the project's problem among team members and solve it. This chapter discusses how to divide and conquer projects. We will discuss how patterns help the PHP project to cope with complexity. Finally, we will explore how to use tools to manage the development and collaboration within the PHP team.
Chapter 2, MVC and Software Teams, discusses the MVC pattern in depth and how MVC can help in a PHP project. It also explores how to use the MVC pattern as the guiding principle to break down the complexity of a project, and how to implement MVC with a team. It also discusses the integration challenges that are faced in putting together all the pieces of MVC that are developed by different team members.
Chapter 3, Dealing with Complexity, discusses in depth how we can make use of sof...

Table of contents

  1. PHP Team Development

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn how to download books offline
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 990+ topics, we’ve got you covered! Learn about our mission
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more about Read Aloud
Yes! You can use the Perlego app on both iOS and Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app
Yes, you can access PHP Team Development by Samisa Abeysinghe in PDF and/or ePUB format, as well as other popular books in Computer Science & Information Technology. We have over one million books available in our catalogue for you to explore.