We believe programming is the coolest job on the planet. And it should feel like this all the time. To make this happen, we need appropriate equipment. Enter Glamorous Tolkit, the moldable development environment.
The moldable environment
Everything about software systems is representable as data. Data does not have an intrinsic shape. It's just data. But, to reason about it, we, humans need a shape. That shape is provided by our tools.
First, this means that tools are essential in software engineering. But, what kind of tools should they be?
Consider this basic example of six objects viewed through the lens of a typical view showing the variables and corresponding values. This generic view is widespread. While its genericity makes it applicable to all objects, it also makes it bland. Distant. Uncomunnicative.
Now, let's change the shapes. Same objects. Different shapes.
These are not generic shapes. They are custom made. They only make sense for the objects they depict. Their specificity makes them humane and helps you engage.
Everything in a software system, including individual objects, can be viewed from multiple perspectives, and we believe the environment should accommodate all these. We say it should be moldable.
Glamorous Toolkit is built from the ground up to be a moldable development environment. For example, here is how the inspectors for six distinct objects look like. They are distinct, contextual.
Changing the way we see our systems can have a dramatic impact on how we reason about our systems. We are developing Glamorous Toolkit to show concretely how this applies throughout the whole development cycle all the way from how we depict a single object to how we can steer agile architecture, or how we can explain whole systems to non-technical people.
Why is this relevant?
Developers alone spend most of their time reading code because they need to figure out what to do next. This is decision making and it accounts for the single largest expense in software development. Through moldable development we rethink this activity from the ground up.
What we use it for
We develop Glamorous Toolkit using Glamorous Toolkit itself following moldable development. And, we use it for all our customer projects. We do that because of two reasons.
First, it allows us to tackle projects that are deemed difficult or impossible. In a way, we are building Glamorous Toolkit out of selfish reasons. For example, we help teams assess and evolve their legacy systems. At the same time, we use the same tools and techniques to help startups innovate faster.
Second, using the tools and techniques over and over in many different situations provides validation for the rather unconventional thesis we put forward. It is counter intuitive that the same abilities are applicable in radically different situations, but it turns out they do.
We make the work around Glamorous Toolkit and moldable development free and open-source. On the one hand, we want developers to learn from and extend any part of the environment. On the other hand, we see moldable development as a new approach that opens a new research space, and Glamorous Toolkit as a research platform that others can build on.