Bet I caught your attention with a title like that!
Developing software is hard, so I think we are naturally drawn to stuff like rules and frameworks to make it easier.
The bad news: There are no simple 3, 5 or 10 principles that once you master, will ensure all your software turns out amazing. It doesn't exist. There's too many variables to take into account when developing software.
With that said, through my career so far, I've gathered enough experience to create my own go-to list of rules and principles that's helped me develop and ship many awesome projects.
They're not universal, and they won't automatically make you a better developer over night.
But I strongly believe they'll help you focus on what's important - while also serving as a guide when you get stuck or have a hard time on your own projects.
- Focus on the problem first. Developing software is all about building. But whatever you're building, make sure you understand the problem you are trying to solve. Let the problem be your guiding principle when you run into roadblocks or don't know what to do. If something doesn't help you solve the problem, it can wait.
- Keep it simple. The biggest problem I see developers make is trying to do too much. I've always preferred to do less, but do it better instead. Instead of adding 10 half-assed features that kind of work, focus on creating 5 awesome features. Software should ideally be master at some things, rather than a jack of all trades.
- Stick to the big idea. Similarly to how the problem can guide you, try to identify the big idea behind any project you're working on. If you're building a todolist, the big idea is for a user to be able to add their todo's (duh). And if you're building an e-commerce shop, the big idea is for users to buy your products.
- Embrace constraints . You'll always be working under constraints when developing software. As an employee those could be budgets, deadlines from management or technical limitations. When working on your own, constraints can be time, opportunity cost or money. Focus on delivering the best possible product within your constraints - they aren't likely to go away.
- Done is better than perfect. The most important rule when developing software is that it's not doing any good sitting in your code editor. It's almost always better to ship code as soon as you got something working, then take feedback and iterate. Developers too often get caught up in trying to perfect everything until they run out of motivation, time, or both.
Like I said, these aren't official rules that will instantly impact your ability to create quality software.
What I hope they will do is stay at the back of your mind as you progress on your development journey - and serve as guiding principles to turn you into a better developer over time.
Let the problem and big idea guide your decisions.
Always keep it simple and do your best within the constraints.
Then ship it to the world and collect feedback.
I'm Mads Brodt — a developer, author, teacher, creator and blogger. To keep up with all of my writing, follow me on Twitter or sign up with your email above 👆