Have you found yourself telling someone it’s not about the money? I guess that’s something common with anyone passionate about what they do. Some years back I’d do anything I could do to get my hands on code even if all I’d get for it is a cheap gift.
Like so many people I was just interested in ways I could get better at what I do. But soon I realized I was making a big mistake. Why? you may ask. There’s bills, rents, and food that needs to be taken care of and all of these have to be considered in the decisions we make. Sometimes our need for money/rewards may be beyond the mentioned.
What was my big mistake? It’s not what you assumed. My mistake wasn’t in believing it’s not about the money but it was that I wasn’t doing anything towards fixing the money issues. Some people that are so-called business-minded will make you believe it is dumb to say it’s not about the money. They’d give suggestions like you should start a company so you can buy yourself a Ferrari in 6 months and all sorts of similar things.
These aren’t bad ideas at all but we need to understand the real context of It’s not about the money. Everyone needs to pay bills or put money into certain things and all we have to do about this is to do something about it (pun intended). But we shouldn’t let our work be driven by the money. Money should be the reward of our work done in the sense that we get good work done and put ourselves in a position to be rewarded by what has been done.
My point may still be vague but I’ll try to nail it even further at this point. My example is An entry level Software Developer that starts at a company with a limited skillset is set to do a job and get paid. At this point this person is being human in that they are satisfying their need and creating a solution to their money problems. However this developer remains complacent about improving their skills and think as long as they get paid and can implement basic programming operations good enough to keep them at the job, then they’re in the game.
Why is there free software? where is there open source? If every developer only cared about feeding their pockets and bank accounts only then the large number of libraries, frameworks, operating system, and other kind of software that make your workflow easier wouldn’t exist.
What the developer in my example could have done differently would be to look for industry standards, check flaws that old developers have made outside of primary company work and make sure to not repeat them in the company work you are being paid for and whatever it is you get to do or contribute to. This sounds like a very easy thing to do but yet you’d hear developers get all narcissistic about their crappy way of writing code believing they’ve written perfect programs simply because the debuggers have found no errors. Well, debugging goes beyond debugging with debuggers. It’s a thing that happens from the unit tests written to fail the features you haven’t even built yet.
Contributing to open source and building open source projects is another great way to build up skills and distinguish yourself from a money-driven developer. At this point when you’re asked Why are you spending time building this plugin? I know one that works similarly besides you are not even getting paid for this. Are you? Your response would be that It’s not about the money and further it could be a NIH syndrome which in some cases is very good and helps you to have a better solution than the already existing one.
Training and practice is important in everything we do. Why should you think athletes of your favorite teams need a lot of practice to win games like Packers won Lions. Okay now I’m just showing off with my favorite team and it doesn’t mean the Lions don’t go through training too. I used to be in a basketball team and it took extra hours of training to always be in the coach’s top 5 picks. Pardon me for drifting but if we think training is needed in sport then why should we ignore it in what we call our own game.
Many will complain about time availability but no matter what happens and the hours we have to work there’s always a time for improvements if we create the time for ourselves. An understandable boss can respect that you need some time for self development. You can tell them This is the only way I can make better software for you.
If you work for yourself or do freelance then your case may not be that with a boss but always about client deadlines. It was once mentioned in the freelancers show that for every short deadlines clients give there’s always an extra time and personally I’ve watched history repeat itself as I’ve finished projects before deadlines and right on the deadlines to find out the clients aren’t ready for the product that has already been built for them.
Now do you want to be that coder that hastily writes code to impress your client in a short time or the one that writes code that lasts with little or no tendency to break and yet reusable and readable for future developers to work with.
If you are the former then I’d advise you based on what a friend recommended that you should keep your name out of the docs of that code because you’re tagging yourself a bad programmer to the programmers that will lay their hands on the code after you. If you are the latter then there are steps you need to take. You can do code katas and engage in all sort of activities to build up your skill.
You can voluntarily accept projects (mostly open-source) that wouldn’t come in the way of your work and get shit done.
Are we abandoning the philosophy aspect of computer science and only chasing the money? From a distant perspective of the industry yes is the answer but there are the exceptions of those struggling to keep the philosophy and you should strive to be on that path and build software that doesn’t suck and you’d get a reward for it. It may come in anyway but trust me, hardwork always pay.
Now why the heck are you doing all these if you aren’t getting paid for it?
IT’s NOT ABOUT THE MONEY