One of the things that I find most interesting about working on our product is watching the evolution of that product. In the beginning the focus is on the necessary features that your product requires. The reason for this is, well, because they are necessary. In our case it was the Storyboard runtime and tooling that could generate files that the runtime could understand. Obviously this is done because it’s nice to have customers that can use your grand vision.
After that, features are added to both the runtime and the tooling at regular intervals. Sometimes they line up, and sometimes they are independent of each other. For example, adding a specific type of render manager, i.e. DirectFB or OpenGLES in the runtime, does not have any sort of bearing on the tool, whereas adding in collaboration functionality to the tool was done with no impact on the runtime. However, adding something like rotation at arbitrary angles, or thick line support has an effect on both the runtime and the tool.
What I find interesting about how the product is evolving is how the features seem to be added with a certain classification in mind. At the start it was about getting something to run on the target. Then it was about tool and runtime integration. Following that it was about pulling in existing projects or pieces of artwork in to our tool for deployment. Allowing multiple people to work on the same project was the focus after that.
I think the next focus for our product will be communication between the runtime and the tool, and having the runtime provide feedback to the tool about what is happening in the runtime environment. If this turns out to be the case, then our product evolution has followed a path of run on the target, project generation, team development, with runtime feedback and information the next step.
I wonder if there is a pattern to product development and evolution? Maybe every software product follows a similar path. Much like there are design patterns when writing code, maybe there are design patterns for software projects. This could be the case, but it would require a little more investigation on my part and I may look in to it at some point. Until then, lets just see what group of features Crank puts out next for Storyboard.