In my first job and project, I was fortunate enough to learn from some of the best. We tried to adhere to most of the best software development practices, like unit testing, daily builds, automated deployment to multiple environments, code reviews, test coverage, source control for code and database, refactoring and countless application design sessions. It was a very fun time in my career…..good times.
Sadly things changed drastically after I changed jobs. My frowns were meticulously rationalized with the infamous “no time, budget and resource” excuse. How untrue that is, and if you read any related software development articles or journals, you will no doubt be convinced about the importance and benefits of all the above practices I grew fondly of. After speaking to many developers from all walks of life, I came to the conclusion that most software development companies or organizations do not follow best practices…and that’s a fact.
I pondered and reflected, as to what the root cause is. Is it the responsibility of the higher powers of an organization to spear-head such a movement? Or is it the responsibility of the project leads and managers? The obvious answers might be yes and yes, but I tend to lean towards no and no. My answer is, it’s the responsibility of every single person. Impossible you might say, well I won’t disagree. But here’s what I think…
Bottom line is, you need developers that CARE. There are good developers, and there are bad developers. I prefer to look at it from another point of view, which is there are developers who care, and those who don’t. A developer who cares is one that is passionate about honing his/her craft, cares about learning new things, cares about his/her code quality, cares about reducing pain/problems/obstacles in a software project, cares about enhancing his/her problem solving skills, and most importantly cares about shipping QUALITY software!! Evolutions in frameworks, technology and languages are rapid and frequent, to constantly hone your craft and keeping up to date is a sign that you care.
When many such developers are aggregated together, it quickly becomes infectious. I worked in such an environment before, and I was a willing victim. A pleasant side effect is that instead of typically expecting change to propagate from top down, change begins from the bottom up. Unlikely to happen you might think, but I would argue it’s plausible. So now how does this translate to the different parties??
Organizations, especially software companies should aim to hire the best people. This should involve a strict interview process, one that requires developers to demonstrate their problem solving and design skills (preferably on the whiteboad), even better ask them to write code. If a technical interview only involves testing if a candidate knows “what a delegate is”, it’s just a waste of time in my opinion. Quality over quantity is what counts.
As a developer, do you consider yourself to passionate about what you do? If not, you should re-evaluate if you should even be in the business of building software. If you do care, then you should evaluate if your current work environment is the ideal place to learn, grow and most importantly, enjoy working in. I find nothing more enjoyable than to work with like-minded individuals who love their work as much as you do, and I guess after that you never have to work another day in your life.
|Share this post:|