I have always loved to surf. The ocean is a complex, dynamic and ever changing environment. It may at times be unpredictable and risky, but what makes surfing so fun is that every wave is different. Waves can take on unique characteristics depending on combinations of location, tides, weather, or currents. It takes experience, skill, and agility to successfully ride a wave and when it all comes together it can be a beautiful thing.
Building Drupal applications can be the same way, each project is different with its own set of characteristics that take experience, skill, and agility to quickly overcome risks, pitfalls and develop solutions to best fit the clients’ and users’ needs.
What is Agile Development?
In a nutshell, Agile Development uses feedback to make constant adjustments in a highly collaborative environment.
Agile Development uses a team approach where all parties (developers, project managers, and clients) work closely together to create a better product. Small teams of developers share peer reviewed code adding in their ideas, insight and experience.
The project team works closely with the clients, getting their feedback throughout the process; to make sure the work being done meets their needs, keeps them informed of issues, and allows their ideas for improvement.
Drupal’s user community also adds an extensive network of over 30,000 developers and active contributors, that provide updates and feedback that help constantly improve the software.
The main focus of all the collaboration is to keep the end user in mind. After all, it really is the end user that we are all working for.
Agile Development also focuses on reusable code and preventing “the reinvention of the wheel”. Drupal provides a fantastic framework where features can be easily added using a vast library of modules. With more than 16,000 available modules, the vast majority of a project’s requirements can be addressed with Drupal core and available add-on modules. Even when customization is necessary, it is easy to hook into Drupal’s core functionality, allowing rapid application development.
Work progresses in iterations. These are small blocks of time (a week or so) where a set of features are identified and implemented. These iterations are demonstrated to the client to get their feedback to make sure it meets their needs, as well as allowing their input for improvement. This keeps clients well informed of progress and project status. It also helps prevent small problems from becoming large ones by avoiding “going too far down the wrong road.”
Version Control – Come Git Some!
In order to keep a project’s code up to date, error free, and secure, version control software is a must for any development team. Version control makes it easy to revert back to earlier versions, if new or modified code has unexpected or unintended consequences. It also allows for easy updating, patching, and versioning of software. It keeps track of the development team’s changes and prevents one member from overwriting another’s work. Git is an open source version control software program that performs beautifully with Drupal. It is robust, full featured, free, and works across all major platforms.
Clients Love it
Using Agile Development with Drupal keeps the client happy because they are kept informed throughout the process, problems are minimized, costs are kept down, and development is more rapid. So even with each project’s unique characteristics and complexities, staying agile can turn any Drupal project into a beautiful thing.