We are thrilled to bring our second volume for your edutainment. We had some constructive comments and feedback from our readers. Also, we had 6 winners for our brain teaser last time. We look forward to your continuing support of Bytes.

Which Software Development Methodology Is Right For You?

Across all industries, even today, many software development projects have faced challenging schedules and functional requirements. Over time, different management methodologies have evolved to improve the situation. Today, we find a spectrum of possibilities. One end of the continuum defines the traditional Waterfall approach (highly structured, plan-driven, detail specs written in advance of any coding). On the other end, we find the extreme Agile approach (no formal specs, adaptive and frequent changes to the design, unstructured). Along the continuum, we find many combinations and incidentally just as many opinions as to which is best. The answer to which software development methodology is best for your project is… it depends… on the application being developed and the location of the development team members and stakeholders. How do you sort out the right answer?

Let’s look at Agile development. It represents a group of methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. A brief comparison of Agile with other methods shows differences in: software development activities and steps, requirements specifications, architecture design, implementation testing, deployment, and maintenance. Even documentation and project management is different.

Agile methods focus on adapting quickly to changing realities. When the project requirements change, the team must also adapt. An adaptive team will have difficulty describing exactly what will happen in the future. The further away a due date is, the vaguer an adaptive method will be about what will happen on that date. An adaptive team cannot report exactly what tasks are being done next week, but only which features are planned for next month. When asked about a release six months from now, an adaptive team may only be able to report the mission statement for the release, or a statement of expected value vs. cost. Such a situation typically is of great concern to the stake holders.

Predictive methods, by contrast, focus on planning the future in detail. A predictive team can report exactly what features and tasks are planned for the entire length of the development process. Predictive teams have difficulty changing direction. The plan is typically optimized for the original destination and changing direction can require completed work to be started over. Predictive teams will often institute a change control board to ensure that only the most valuable changes are considered.

Regardless of the selected position on the continuum, it is important to evaluate the situation and select a balanced approach that meets the needs of the client and the development team.

After over 10 years of business, Bytes has come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Horn Section (Where We Blow Our Own Horn)

Step Up San Diego is a community-wide, multi-media collaborative connecting the business, nonprofit, government, higher education and philanthropic sectors to increase confidence, capacity and giving in San Diego. Bytes was commissioned to re-design their original site to provide more exposure to Donors, Nonprofits and the sponsoring media companies.
Boatracs is the recognized leader of the most reliable communications and innovative software solutions for the inland workboat, offshore workboat, government and commercial fishing markets in North America. They came to us to re-design their core infrastructure for the communication system between the data center and all the vessels out in the waters. The project was a rigorous 10-month coordination effort involving an average of 5 full-time resources.