Do you simply need to work harder on your attitude, or is it time for a change? Answering this question is hard. But when you find yourself sapped of motivation to code on your project at work - daydreaming about your side projects or your next vacation - you have to figure it out ASAP.
Being in a funk sucks. I went through the worst one of my career recently. I tried every positivity trick in the book, staying on a project that was no longer good for me for far too long. Special thanks to some close friends who helped me finally see it. I'm hoping I can help others see the red flags that I only recognized in hindsight, and help get you back to productive and happy coding.
Here are 5 signs you need a new project:
Many devs are naturally inclined to the architecture/tech side of things. I did a poll on twitter once asking if people cared more about what they were building or the stack they were using to build it. The results were suprisingly split down the middle. So for many of us this is a subtle, easy red flag to miss.
It happens when you start to think of the codebase - rather than the end result that real people will use - as the product. You may add exciting tech to the project that if you were being absolutely honest is out of complete boredom from the "CRUD app" you're building. You value the developer experience over the user experience. You rarely even think of or interact with the users.
You look forward to things in the day that you used to see as annoying interruptions to your precious coding time: meetings, emails, company chat, etc. Anything - no matter how mundane - that distracts you from that meh feeling.
Think of all the new things you've learned in the last while. The new languages, libraries, frameworks, databases, & tools are super important. But even more valuable are the experiences you gain once you've got those down. The kinds of lessons you only learn when you're applying your passion and talents, solving problems, and building something you care about and are proud of.
If pretty much all of your learning has come from your open source/side projects, that's a huge red flag.
When you're feeling miserably unproductive, it's hard to be positive about anything. Your minor gripes with the managers, company, and product turn into a constant, contagious stream of negativity that your friends don't want to be around. It's not a fun or healthy state.
Shipping is your lifeblood. It's when all your hard work pays off. Because of you another human's life is a little bit better. This awesome feeling that you're making a difference in the world by playing with your computer is probably the drug that got you into coding in the first place. Amazing that people pay us to do this right?! So yeah, if it's been literally years since your project has shipped, get off it. Find something that ships, often. With people you really like being around. Preferably something that has the potential to delight the people that will use it.
Also don't stay too long on a project after you've shipped the major version you helped build. It will either go into maintenance/stability/scalability mode or be ready for a v2. Usually best to have either case be a good new project for someone else.
For developers happiness and productivity are tightly coupled. If you can achieve productivity, you'll likely find happiness at work. If you can find happiness, your productivity will likewise increase. Being productive and happy is so much easier on a project that's a good fit. Once you find that good fit you'll care again about what you're building and who you're building it for. You'll have that healthy distaste for meetings :) You'll learn and grow a ton, hopefully make some lifelong friends, all while feeling positive and making an impact. Are you on the right project?
Flexbox is incredibly powerful. But it's also crazy hard to master. So we all end up depending on a cheat sheet and guessing in the dev tools. Enough of that! Time to master it once and for all, in a way that actually sticks, so you can build any layout you can imagine with flexbox.Master Flexbox