Mach II Specification and Feedback Process (M2SFP) - Mach-II/Mach-II-Framework GitHub Wiki

By Peter J. Farrell (peter@…)

Table of Contents

  1. Overview
  2. The M2SFP Explained
  3. Why We Do This and Conclusion
  4. How We Gather Feedback

In the spirit of open source, the community shall have a framework that is born from their collective knowledge - and that framework of the people, by the people, for the people, shall not perish from the earth...
Team Mach-II

Overview

Beginning with the development of Mach-II 1.5 in late 2006, Team Mach-II began to release proposals on new features or enhancements to the community before such additions to were made to the framework. This process facilitated community involved and solicited developers that use Mach-II for feedback and suggestions on additions to the framework. This allowed Team Mach-II to develop more robust features that worked in the manner that community expected instead of developing new features in a vacuum without feedback. Without the community involvement during the specification process, there is a greater possibility that new feature will have defects called "functional defects". These type of defects occur when too few use cases are envisioned and are usually discovered when a developer saying "how can I do xyz?" but is only asked or suggested after the feature has been implemented and released. Discovering functional defects early reduces the possibility of rewriting large packages of code or being locked into a specific implementation that requires us to maintain backwards compatibility. Publishing specifications early on in the development inherently produces a better framework for all.

The M2SFP Explained

The Mach-II Specification and Feedback Process (M2SFP) aims to eliminates functional and edge case defects during the specification phase instead of after the implementation phase. All major features or enhancements go through the M2SFP before they are become actual implementations and committed to the public source code repository. Most features or enhancements follow a process similar to this:

  1. An idea is thought of and submitted to Team Mach-II
  2. A discussion ensues regarding the idea either on the public Google Group or as a small discussion via email before being moved to the Google Group
  3. If the idea is elected by Team Mach-II to become a new feature in future release of the framework, a specification document is drafted
  4. The specification is published for public review and feedback
  5. Public comments are incorporated into the specification if they are deemed to fit within the scope and final end product of the feature as deemed by Team Mach-II and public opinion
  6. The specification is used to implement the new feature (with applicable unit tests) and committed to the public source code repository by a developer with committer rights
  7. Public testing ensues and bug reports are used to fix any implementation defects
  8. Framework goes the normal Beta and/or Release Candidate release levels before becoming a stable (gold) release
  9. End of process

Why We Do This and Conclusion

Our aim is to explore and incorporate any missing functional defects in the first five steps of the M2SFP (before implementation of the feature occurs). Also, another aim of the M2SFP is to reduce the temptation of new features or enhancements to be developed in a "vacuum" which leads to very one-sided interpretations of the implementation. Using the vast knowledge of the Mach-II user base is our best asset in developing any new features as it would be impossible for Team Mach-II to explore every situation in which the framework is being used.

How We Gather Feedback

Mach-II Developers Google Group

Team Mach-II discusses a lot of future development features and enhancements on a public Google Group: http://groups.google.com/group/mach-ii-developers/

Publishing M2SFPs on the Wiki

We publish all of our M2SFPs on our wiki and ask for public comment via the "add comment" feature on the bottom of each specification.

Feedback

Most features and enhancements get a Trac ticket assigned to them. This is another place for Mach-II users to leave feedback.

Mach-II Users Google Group

After much discussion with the community on the Mach-II Developers Google Group and publishing of the M2SFPs on the wiki, we also remind people on the Mach-II Users Google Group: http://groups.google.com/group/mach-ii-for-coldfusion/

Special thanks to Abraham Lincoln for inspiration.

⚠️ **GitHub.com Fallback** ⚠️