No Training Required
As I mentioned previously I have built libraries and frameworks in the past. So designing SOOJS to be a pattern was an intentional process. My findings with libraries and frameworks are that you first have to educate people on how to use them, and remind them to use them in the intended way. But there is always a fair amount of detail that is not learned and newer and newer developers get farther away from the pristine theoretical implementations. This creates more and more of a mess as time goes on. So much so, in some cases, that returning to some projects I cannot tell that the framework or library is even being used. And this of course means I have to get a deep understanding of the entire system to determine when to trust the structures and when not to.
The other thing I have noticed when training developers up into a library or framework is that their code doesn’t get any stronger. There is no learning involved. Once the developer is put on a project that does not use the framework they have no added skills to bring. It’s this conceptual strength that I was trying to focus on with SOOJS. As a pattern there is nothing to take away but knowledge. It attempts to set up an armature to design a system around but allows the creativity and free thinking of the designers and developers to solve problems any way they think is best.
It was very important to me to allow developers to add to their own bat-belts with this pattern. It’s the developer’s knowledge and ability that will make any project successful. And, in the end, it’s never about this one project. It’s about how the developer can code forever.