I thought I might take a few minutes to share with the community the outcomes of a SWOT (strengths, weaknesses, opportunities, and threats) analysis of IU’s local practices around building and maintaining our customized build of Sakai: Oncourse. We gathered all of the developers in a room for 90 minutes and outlined three different methodologies for implementing local builds of Sakai:
- Traditional / Legacy Overlay – This is the model we have been using for thee+ years and involves a set of files which are copied over the top of Sakai generic files (i.e. overlayed). This process served us well when we had fewer customizations and we had a smaller development team.
- Vendor Drop – this method, I believe, is well known both within the subversion and Sakai communities. It is a complete source tree with both customizations and generic code; i.e. a complete build.
- Patch Overlay – this variation of #1 uses patch files instead of complete files to maintain customizations.
The team of developers were asked by the facilitator (i.e. me) to break into teams of two and produce strengths and weaknesses for each proposed solution. We chose not to focus on opportunities or threats given the short amount of time available for the session and the domain subject may not be the best for such categorizations. The teams spent fifteen minutes working through their strengths and weaknesses and then we started recording the outcomes on the white board. What happened next was interesting — there was very little disagreement about the particular strengths or weaknesses of a given solution — there was mostly consensus. I am including the outcomes for your review:
- Traditional / Legacy Overlay
- S+ Easy to identify changed files
- S+ Already exists – a norm
- S+ Supports smaller scope
- W- Version control is difficult (i.e. practice vs. staging)
- W- Maintenance (merges, regressions)
- W- Training
- W- Requires custom build script
- W- Hard to share and collaborate with Sakai community
- W- Overlay build script is not version controlled – cannot predictably produce previous builds.
- Vendor Drop
- S+ Simple check-in, check-out, commits
- S+ Community support, widely adopted
- S+ Easy to run on developer workstations, easier training
- S+ Innovation is occurring around this practice in the subversion community; more standardized solution.
- S+ Easier debugging of code
- S+ Maintains source history lineage
- S+ Can reliable build previous production builds from source
- W- More overhead to find changes
- W- Increased merge skills for developers
- Patch Overlay
- S+ Easy to find changes
- W- Readability of patch files
- W- Custom build script required
- W- Training / developer workflow difficulties
- W- Harder to share with Sakai community
- W- Patches are brittle
We talked through each strength and weakness so that there was consensus for each analysis of the solutions. When we had the board filled with all of the outcomes, I then asked the team if there were any high level patterns they could identify. Immediately, they asked for solution #3 to be removed from the list as it clearly had too many weaknesses and few strengths. The next ten minutes were spent reviewing the outcomes for solutions #1 and #2. We then went around the table and each individual declared which solution they preferred when presented with all of the facts. Surprisingly, we had a unanimous vote for solution #2, Vendor Drop.
After the vote I asked the team to provide feedback on the process. The following statements were made:
- W- More preparation time would have been nice – to better understand the intricacies of each solution before being asked to analyze them.
- W- More context provided by the facilitator for Opportunities and Threats (i.e. the “OT” in “SWOT”).
- S+ The amount of consensus achieved in a very short amount of time.
- S+ Separation of the emotions surrounding the various solutions; allowing the developers to be more objective in their analysis.
- S+ Avoided the expected 90 minutes of “tail chasing” with no particular outcomes.
So where do we go from here? Ryan Lowe volunteered to form and lead a group of developers that will present a migration plan at our team meeting in one week. In retrospect, my first “official” SWOT meeting was a success and very effective in achieving our goals of simplifying the the processes of managing our local build of Sakai. The developers made this decision on their own and now have complete ownership of it. I also pointed out to the team that the quality of the analysis was very high; i.e. even if they had four hours or an entire day, would depth or breadth of the analysis be fundamentally higher? If you have not read blink by Malcom Gladwell, I would highly recommend it. The trick is knowing what you know. 🙂 I look forward to my next SWOT analysis. 🙂 Best, L