| Constrained Design |
| All News -> Designer News |
| Written by Nicholas McClanahan |
| Tuesday, 09 June 2009 12:32 |
|
Limiting your options can be an effective development approach
This flexibility is great, but by applying design constraints, you can make cooler projects in less time. And there's nothing more satisfying than finishing a project! What Is Constrained Design? A constrained design approach reduces the number of decisions, and it makes the remaining decisions easier to make. How? By deciding on things like timeframe and budget early on, you can quickly eliminate choices that don't meet your requirements. There's no need to carefully weigh two approaches if one approach violates your constraints, just discard it and move on. I hear you now, "Shouldn't I consider all the alternatives before deciding?". No. If you've done your homework, the marginal benefits of superior alternatives often don't justify the time spent finding them. Besides, the goal isn't perfection, it's about having fun. Getting mired down in decisions that aren't likely to make your project any better isn't all that enjoyable. How To Practice Constrained Design 2 — Adjust your design to fit your constraints. Make the decisions that will fit your constraints before you begin work, and while you progress. For my theremin, I would decide on a microcontroller based project. I would use a Ping, because I can get it running quickly. I would like a secondary TV display, but might scrap that function if it looks like it will take too long to develop. It's pretty simple! Remember, perfect is the enemy of good. Having a dozen perfect projects that are 'almost done' isn't nearly as satisfying as having a few less projects that actually work. By borrowing a few ideas from commercial development, you can limit scope-creep, and enjoy your hobby even more. This is just one approach, though. Any other insights you'd like to share? Comments (2)
![]()
I completely agree!
Well, I agree with the constrained design theory. For example, you should really think about how to make your project competitively priced compared to other similar products. In some cases, that means to make it a bit less flashy, but with that special something that puts it above the competition.
Having a time deadline is important
Yeah - I think you optimize either for price, complexity, or functionality, and adjust based on how long you want to develop. The most important thing is to avoid the 'never-ending project' that you spend years trying to finish. Usually it's because of persistent feature creep. |


But you should never cross that fine line of making a few pennies profit and making profit in the range of fistfuls of cash. 


