The more constraints one imposes, the more one frees one's self. And the arbitrariness of the constraint serves only to obtain precision of execution.
I've spoken of this before, as a creative person, the hardest job can be to know when to stop/when to ship.
Building an app, creating a work of art, planning the weekend, deciding what to make for dinner; all of these things can get out of hand if you don't limit yourself. You need a plan and you need to set a bar for:
- What is the bare minimum needed to achieve your end result? The Minimum Viable Product.
- What is the desired feeling you want your consumers to experience? Utility? Joy? Full?
- What are you desired goals with this product? Ship an app? Showcase your skills?
All of these things need to be considered but many times we want to deliver everything with a dime store budget. This is seldom possible.
My wife, from her experience in product management, was the first to introduce me to the concept that you can have a product Cheap, Fast, or Good. Pick Two! This is called the Project Management Triangle.
As an indie with a full time job and a family, I run into this problem all the time. I feel I am asking too much to pick two when having one with limited time is hard enough.
Here's how many of my projects go:
- Brilliant Idea!
- Crave out a block of time to put in a mad dash to get a prototype working.
- Start to design a MVP.
- Start to implement the MVP.
- Run into corners I never foresaw.
- Start slogging through the corners, rounding everything out.
- Invest too much time into after hours indie work.
- Crash, burn, burn.
- Put project on back burner.
For every project I have completed, there is a mountain of projects I have abandoned.
Is this bad?
Only if you let it get to you. I look at that mountain as wisdom.
Here is what I take away from my "failures", if you want to call them that:
- To know when I am adding more features than I can complete.
- To know which ideas will take too much time.
- With new techniques, skills, APIs, etc.
- Few jobs offer training. As a contractor, I must think of my own training. These side projects help me to expand my skills and train.
- To find better ideas to solve, build, and deliver.
- The more projects I work on the better I become at solving problems.
- The more I projects I deliver the better I get at delivering solutions.
Constraints add focus.
Figure out how to use those constraints to improve your projects.
Learn from your mountain of failures and learn where you can add constraints to increase your pool of successes.