Do you remember how excited you were when you wrote your first program? It's easy to forget when you've been in the real-world for a long time. Sometimes we just need to reignite that passion that we once felt and spread the feeling throughout our teams.
Office politics and company drama is exhausting. We get frustrated when it feels like mountains need to be moved to make even the smallest change. Eventually people become disengaged by complicatedness and lose their passion they once felt for software development.
In 2006, Rob Walling shared nine things developers want more than money. I completely agree with this ten years later:
Don't get me wrong. I don't want to work for free. I just value the quality of a working environment and what I am working on more than the salary. On the other spectrum, I hear of many people who put up with bad working conditions simply because of the money.
Unfortunately the reality is that there will always be some form of pain or trade-off that we need to deal with. Prove to me that there is a company to work for without any problems.
Problems are different to each individual. We all have our own perspectives. That means we are surrounded by people with different states or emotions whether it be happy, comfortable, frustrated or completely disengaged. Sadly it only takes one person with a sour mindset to bring an entire team to its knees.
To top it off, there are so many different ways of achieving the same thing. Everything has risk attached to it. When people become driven by fear, the need for change stagnates. It's also overwhelming when so many technologies emerge and we constantly feel like we have fallen behind.
When we find ourselves in such predicaments, what can we do to avoid spiraling down the same rabbit hole?
Remember the day you wrote your first applications! That excitement you felt when you got your code to run even if it was just spaghetti. Bring that feeling back to the now and read on.
Here are three things I've done to help spread that feeling.
I'm not an entrepreneur. I've been too scared to go down that path but I'd like to someday.
If I were one, I would need to make the best decisions to give me the biggest return of investment in a short amount of time. I'd have the user's best interests at heart. I'd also know that the people working with me will make this a reality.
I try to be cross-functional; do my best to help out where I can within my team and across teams.
I'm not advocating working long hours, missing out on life and doing the work of others. Rather working together, being passionate, understanding the business side of things and having the ability to make appropriate trade-offs to deliver quality software to the market.
If we radiate a positive energy and share the passion we have for making quality software and guide - not force - others to do the same it can become contagious.
Let's say someone is new to TDD and is told to write tests first. They probably won't. It's more code; more effort. There are deadlines. If someone is coached to see the benefits and understand how easy it can be, with time the mindset changes and confidence is built.
In other words, people are used to doing things the way they feel comfortable with. It's never a good idea to impose new ways of doing things on people. We can gradually show how a technique can better productivity and reap more benefits.
Grab opportunities to pair program with someone who is passionate and patient. If two people are just bickering about the smallest things pairing won't achieve much. Empathy to a person's background and circumstances is important.
Many developers are introverts. They won't always get up and speak to the right people when something is getting in their way. They will keep trying to fix it on their own.
Building strong relationships is essential to solving problems quicker especially when there are dependencies that are outside of your control.
I encourage people to talk to the right people. This is a great way to acquire new knowledge about the people in the company, domain, infrastructure and technologies. If they don't know how, I do it with them.
This builds confidence and exposes us to other people. We get introduced to other passionate professionals that we can learn from.
Passion is the basic building block of my career. I never want to lose it - but I did.
The transition from smaller companies to larger companies was tough on me. I got so caught up in my craft that I lost my confidence and the fun of actually writing code. I was also overwhelmed by everyone's opinions which often contradicted each other.
When we work at corporates we are exposed to all sorts of people from all walks of life. We aren't aware of their past experiences. People will lose their passion and find it again.
I managed to pull through and reignite my passion thanks to many awesome people I work with and some highly influential developers like Iris Classon and John Sonmez. By sharing my passion, I can see how it rubs off on others.
Now, open your favorite editor or IDE and go write something that kicks ass. Don't forget to share your passion and what you learn with those around you!