A lot happens before ideas become solutions.
At ElixWare we want to bring you more than just great, affordable software. We want to let you know how and why we do what we do.
Our Ruminations blog will bring you insights into how we got here and some of the things we consider when trying to help you run your business. We hope it gives you a better understanding of how we strive to better serve your needs.
This post will get a little (or maybe a lot) technical. If your eyes start to glaze over go grab a snack and play a few rounds of your favorite app. I'll be here when you get back.
I'm going to try to explain some concepts and functionality in an accessible way. And hopefully it will be fun for both of us. So break out your babble fish if you need one ...
Here at ElixWare we practice a 'division of labor'. Aimée is responsible for things looking right, I'm responsible for things working right and Chloe is responsible for making sure things get done. It works well for us. It's not always evenly distributed at any one moment (e.g., Aimée can be slaving away on a UI or mock-up, while Chloe is mercilessly cracking her whip, while I play Mr. Know-it-all on Stack Exchange). But in the end, it all seems to balance out.
Many years ago, when Aimée and I started working together, we quickly ran into a problem. We both were used to working alone. This meant we never had to worry about someone else overwriting our files. Since we both used our computers as our test servers we both had a similar development process: bang on the keyboard for hours, get things right and deploy. You can guess where this is headed.
It only took a few times of one of us overwriting the other's changes before we needed a solution. Since I was responsible for making things work right, I was tasked to figure out how to fix it. "Make it so, Number One."
This was an issue that a VCS would not directly address do to the nature of our workflows and the characteristics of the View portion of most MVC (Model View Controller) implementations.
To solve this dilemma - at least for us - I developed the Constituency Inheritance Model (CIM). This allowed each of us to work on the same portions of a project, at the same time. All without changing our comfortable (and almost subconscious) workflows, and without using the same files. CIM works with any kind of implementation, even simple web pages, and not just MVXYZ projects.
CIM isn't a framework or a template system. It's more like Mr. Potato Head. We just put placeholders where we want them to make each page look or work the way we want. Placeholders are used in the View for anticipated content that has a logic or selection dependency, or for content that is used in multiple Views. The Views aren't "processed" like a templating system. Instead, the CIM runtime locates or builds the content for the placeholders automagically and the placeholders expand in place.
The automagic portion is based on settings or content for the client, or the module, or the section, or the page, or the user. Each a shrinking constituency to be served. If the setting or content exists the CIM runtime simply just uses it. If not, it inherits from the previous constituency. "Make it so, CIM."
Since we started using this approach Aimée has not had to resort to strangling me nor contend with a major disruption to her workflow. For us, using CIM just works, which is what every client wants. Even before there was an ElixWare this was our very first solution.
prev post: Chocolate Chip Cookies
We are a small team with a lot of experience, specializing in software development, design, and workflow, process & project management. We are fiercely dedicated to helping you do what you do best — run your business — without getting bogged down in the mountains of paper and hours of screen time required to do it. We are equally dedicated to protecting your privacy and your data. Learn more about our privacy policy.