I wanted to share some of the thinking that goes behind selecting and planning new features for Gingko.
First, please read the “Improving Gingko” category rules of thumb.
The most important thing to keep in mind about Gingko is that it’s both powerful and simple.
It’s being used for all kinds of things, from API documentation to history papers, from fan fiction to legal briefs.
Often Gingko will have two or more wildly different use cases for the same person.
I used to call this Gingko’s “biggest problem”, because everywhere you look in the tech space, they tell you to “focus on one niche” and “go as narrow as possible”. It makes marketing and development so much easier.
However, I’m starting to understand that this power and simplicity is Gingko’s core strength.
So when I cycle back around to programming mode, how do I select what features to implement?
I use the
- Features that add power but also add complexity will rarely be considered.
- A feature that increases Gingko’s power & flexibility while adding no additional complexity, is a nice bonus.
- A feature that reduces complexity while keeping Gingko as powerful, is a nice simplification.
- Features that increase how powerful Gingko is to everyone and reduce it’s complexity,
are beautiful to me, and will be my primary focus.
By “Power” I mean “allowing more people to do more things”. It’s power in the sense of “flexibility”.
By “complexity” I mean “cognitive load”. How many buttons, menus, and concepts make up Gingko.
So if you have a feature to suggest, ask yourself:
- Will this be useful to everyone?
Project managers, and middle school students. Lawyers and RPG gamers. Authors and engineers.
- Can this be simplified?
Combined with a concept or feature that already exists?
I’ll be the first to admit that I’ve strayed from this philosophy many times in the past.
It’s a very stringent set of criteria!
But if we try our best to adhere to them, I’m convinced that what we end up with is software that brings more value to more people, and just makes the world a better place .