Using CiviCRM
上QQ阅读APP看书,第一时间看更新

Development methodologies

Whatever approach your organization decides to take for developing and implementing its CRM strategy, it's usually good to have an agreed upon process and methodology. Your processes define the steps to be taken as you implement the project. Your methodology defines the rules for the process, that is, the methods to be used throughout the course of the project. The spirit of the problem solving approaches just reviewed can be seen in the Traditional Waterfall Development model and in the contrasting Iterative and Incremental Development model.

Note

Projects naturally change and evolve over time. You may find that you embrace one of these methodologies for initial implementation, and then migrate to a different method or mixed-method for maintenance and future development work. By no means should you feel restricted by the definitions provided, but rather adjust the principles to meet your changing needs throughout the course of the project. That being said, it's important that your team understands the project rules at a given point in time, so that the project management principles are respected.

The conventional Waterfall Development methodology

The traditional Waterfall method of software development is sometimes thought of as "big design upfront". It employs a sequential approach to development, moving from needs analysis and requirements, to architectural and user experience, detailed design, implementation, integration, testing, deployment, and maintenance. The output of each step or phase flows downward, like water, to the next step in the process, as illustrated by the arrows in the following figure:

The conventional Waterfall Development methodology

The Waterfall model tends to be more formal, more planned, includes more documentation, and often has a stronger division of labor. This methodology benefits from having clear, linear, and progressive development steps in which each phase builds upon the previous one. However, it can suffer from inflexibility if used too rigidly. For example, if during the verification and quality assurance phase, you realize a significant functionality gap resulting from incorrect (or changing) specification requirements, then it may be difficult to interject those new needs into the process. The "release early, release often" iterative principle mentioned earlier can help overcome that inflexibility. If the overall process is kept tight and the development window short, you can justify delaying the new functionality or corrective specifications for the next release.

Iterative development methodology

Iterative development models depart from this structure by breaking the work up into chunks that can be developed and delivered separately. The Waterfall process is used in each phase or segment of the project, but the overall project structure is not necessarily held to the same rigid process. As one moves farther away from the Waterfall approach, there is a greater emphasis on evaluating incrementally-delivered pieces of the solution, and incorporating feedback on what has already been developed into the planning of future work, as illustrated in the loop in the following figure:

Iterative development methodology

This methodology seeks to take what is good in the traditional Waterfall approach—structure, clearly-defined linear steps, a strong development/quality assurance/roll out process—and improve it through shorter development cycles that are centered on smaller segments of the overall project. Perhaps the biggest challenge in this model is the project management role, as it may result in many moving pieces that must be tightly coordinated in order to release the final working product.

Agile development methodology

Agile development methodologies are an effective derivative of the iterative development model that moves one step further away from the Waterfall model. They are characterized by requirements and solutions evolving together, requiring work teams to be drawn from all the relevant parts of the organization. They organize themselves to work in rapid one to four-week iteration cycles. Agile centers on time-based release cycles, and in this way, differs from the other methodologies discussed, which are oriented more toward functionality-based releases.

The following figure illustrates the implementation of an Agile methodology that highlights short daily Scrum status meetings, a product backlog containing features or user stories for each iteration, and a sprint backlog containing revisable and re-prioritizable work items for the team during the current iteration.

A deliberate effort is usually made in order to ensure that the sprint backlog is long enough to ensure that the lowest priority items will not be dealt with before the end of the iteration. Although they can be put onto the list of work items that may or may not be selected for the next iteration, the idea is that the client or the product owner should, at some point, decide that it not worth investing more resources in the "nice to have, but not really necessary" items.

Agile development methodology

As one might expect, this methodology relies heavily on effective prioritization. Since software releases and development cycles adhere to rigid timeframes, only high priority issues or features are actively addressed at a given point in time; the remainder issues falling lower on the list are subject to reassignment for the next cycle.

Food Pantry Association of Greater Metropolis

Throughout the rest of this book we will use a case study to help introduce concepts and explain how to configure, customize, and use CiviCRM. While the organization and names are entirely fictitious and not intended to refer to actual organizations or people, the organization's needs and how it operates are intended to reflect common patterns in the non-profit and advocacy sector.

In our case study you are in charge of all administrative functions including computer systems and finances for The Food Pantry Association of Greater Metropolis. FPAGM is the central organization in the food pantry system in the city of Metropolis and its surrounding areas. The pantries, known elsewhere as food banks, range from small faith-based groups to a few larger not-for-profits in the center of the only large city in the area. The pantries provide the poor with food to be taken home for consumption later, and are kept particularly busy during the winter months in this city of approximately 2.1 million people.

FPAGM envisions a community where no one suffers from hunger. Its mission is to provide cost-effective shared services to food pantries in the region. Operationally, FPAGM does the following:

  • Provides wholesale food pickup from business donors, storage at a depot, and regular delivery of needed supplies to pantries
  • Shares best practices amongst food pantries and food pantry donors
  • Begins assisting pantries in dealing with problematic individuals who abuse the system or staff
  • Represents the concerns of the pantries to local and state advocacy efforts, often by undertaking research and developing policy submissions

The FPAGM Board of Directors consists of four officers and five members-at-large. Your boss, the Executive Director, oversees the work of five full-time staff. In addition, the organization receives regular volunteer support to assist with daily operations.

As before, most staff resources are taken up with providing food distribution services for the pantries. Affiliate members and other food providers contact the FPAGM when they have surplus food available for pickup. The association owns three vans for transporting food from the providers to a warehouse attached to the FPAGM offices, and then distributing it to the pantries.

The FPAGM staff also handles distribution. The pantries place requests for food and the costs (measured by weight) are tracked against their accounts.

This system allows the pantries in the region to focus on providing food and services to clients, poor members of the community, without much need to identify food supply sources. The association also benefits from economies of scale, particularly with warehouse space, staff, and vehicles required to distribute food to the pantries.

The association hosts two training events and an annual conference that draws attendees from the entire state who are involved in food pantry support.