April 17, 2017
Ctitch has been a long-running personal project of mine that has really become the management system for my personal life and for my various freelance and personal projects. Since I started the project several years ago, I always knew that it was going to suffer from being too broad of a product and that it would try to do too much, but I was ok with that. It is a project that I started building mainly for myself. I wanted a place where in one screen I could see my daily schedule, my to-do list, various notes, a place to add interesting articles, keep my photos, and make notes on whether I ran, worked out, or ate well (did I mention it's probably trying to do do too much?). It does all of those things currently, and I'm pretty happy with it for managing my days, notes, and projects, but perhaps it's time to reign it in and make some changes so others can utilize what I think is a pretty useful tool.
The Ctitch interface -- A place for notes, lists, bookmarks, and images
The Issues & Advantages of Sprawling Projects
There are several issues that arise when pursuing a large project, mainly:
Jack of All Trades, Master of None
You run the risk of doing lots of things mildly well, but never really developing things to the level that you can in a specialized product. How do you compete with those who just do one thing, and do it well?
Too Broad of a Market
Of course you need to market a product to potential users, and that is always easier if you have a well defined target audience that is as narrow as possible. With a product that does something for everyone, it can be difficult to adequately target a niche.
Bugs & Isssues
The larger the product, the more complexity is involved, and this can introduce bugs, increase time and edge-cases, and just generally making the bug-tracking process a bit of a nightmare.
Expense to Build
Since I'm the sole designer and developer working on Ctitch, the expense involved isn't a tangible loss, but for others who don't self-develop, the expense involved on a large project is obviously going to be greater than for a small project. While there isn't direct financial expense for those like me who design and build our own stuff, we still need to be aware of the time spent, and the opportunity costs of such an endeavor. Every hour that I'm working on one project is time not spent on something else that may yield better results.
Usability and the Learning Curve
You also run the risk of building that is hard to use and understand, since the more functionality there is in a product, the more a user potentially needs to know in order to use it. You also run the risk of creating features that make other features difficult to use.
While there are pretty substantial drawbacks to having a large project, there are some advantages, mainly creating an integrated familiar product that people can't find elsewhere. This of course could be your unique selling proposition.
I have always found it annoying to switch between various apps and websites to manage things when those various tasks in the least are related to one another, and in a perfect world, those various things actually sync integrate, and talk with eachother. The large view for Ctitch has always been a place where that happens.
Strategies for Those Who Think Too Big
I'm probably going to keep building big things -- it's just how I like to think. There is however still a need to be successful, to create something that others use and enjoy, and for that, it likely helps to think a bit smaller. How do you still play with the big picture stuff, but keep things on a smaller scale?
Standard Features vs Addons and Modules
Up until now, all of the features that I have been working on with Ctitch were automatically enabled. Moving forward however, much of the functionality won't be automatically present. It will still be available if people want it however. This should help bring some focus back to the site, as well as making it easier to learn as a new user.
It can be a difficult thing to do, but more and more I'm attempting to create any new features and functionality as their own projects, but which easily integrate into the main website. This helps speed production, simplifies testing, and brings down the potential for bugs and issues.
Realistically your product can be as large as you want it to be, and your long-term target audience can be large as well. Initially though you can focus on targeting for a niche, and expand that niche at a later time.
The Next Steps for Ctitch
Ctitch, after years of off-and-on development of varying degrees has a pretty wide base of functionality, and perhaps the first phase in it's development was for me to map out the overall broad picture of it all. It's of course not fully there, but on a basic level, it currently does everything that I want it to do. I think now though, I'm going to begin a second-phase of it's existence, which is a simplification and deepening of it's functionality in a few key places.
For new users to Ctitch, they will be presented with a stripped-down version. It will be focused only on the ability to write notes and create fairly-robust lists, with the ability to organize those documents. The other functionality that currently exists on Ctitch will stay, from the ability to add photos and imagery, bookmarks, badges, the daily schedule and other calendar functionality, but this additional functionality will require the user to enable them. I the functionality to disable and enable pieces of the site a little while ago, and it will play a larger and larger role over time -- the original vision was for Ctitch to be a framework that additional modules could plug into.
It feels good to be at this point and to begin a process of simplification. It will be a time to really streamline some of the application, focus on important pieces and get things dialed in. As a result, I'm also thinking of creating at least one other new product, utilizing the same codebase, but directed to a different market, and there may be additional opportunities for new projects as a result.
The Built Environment