Years ago, I worked for a company that had a strictly governed bug fixing process. The bugs to be fixed per release were specifically regimented, right down to the amount of hours available to fix each issue. Developers were expected to meet or beat their estimates, and failing to do so meant overtime (since the deadline was immutable). With effectively every working moment spoken for, there was never any free time for innovation, invention or creativity (at least on the schedule). Developers were effectively bug fixing or feature building machines, with no input into the process or product features.
Unfortunately, this seems to be an all too common trend in the development industry. Employers, who love the ability to measure things, disdain the fact that engineering is first and foremost a creative art, that cannot be effectively measured. They attempt to install artificial measures of productivity like tests written, lines of code added, bugs solved, and number of bugs reopened by the quality assurance team. Sadly, these measures all fail to effectively measure the effectiveness of development teams, because the developers themselves see immediately through the schemes, and learn quickly to game the system.
In my career as a software developer I’ve been lucky. I’ve been lucky that finding work has never been terribly difficult. The longest I’ve ever been out of work is a month and a half. Six weeks might seem like a long time, especially in software; in my case I was unfortunate enough to experience a two-week delay in my interviewing thanks to the Snowpocalypse of 2010 and the aftermath of that event. When I’ve actively looked for work I’ve been pretty fortunate to have a good resume, good skills, and most importantly, a strong job market for the particular field I’m in.
What I’ve often struggled with is finding the right job. There are lots of bad jobs out there; many developers are in them. I’ve been in them. You know the type: jobs that have managers who think that being salaried means they own your every waking moment. Jobs with non-compete clauses that would force you out of your profession if they were enforced. Jobs that advertise for “good under pressure” people or “detail oriented” individuals.
Last week I wrote about all the reasons that recruiters are bad for your career. For a variety of reasons I highlighted the reasons job seekers should avoid enlisting the services of recruiters that solicit them, and the traps that recruiters employ to disadvantage job seekers while improving their odds of collecting a commission.
On more than one occasion, people asked me “if I shouldn’t use recruiters, how should I find a job?” For me, there are a number of strategies I’ve used to find jobs in the past. It’s also worth pointing out that I have never received an offer while using a recruiter, but I have received offers through all of these methods here.
When I lost my job on October 12th, I knew that the PHP community was an invaluable resource for finding a new one. What I didn’t expect, though, was the outpouring of support and assistance I would receive from that community. I learned a lot of lessons from the job search, and thankfully, largely due to the involvement of the PHP community, I have a long-term contract that is both paying the bills and letting me form my own consulting company – a long term dream I’ve had (more on this in a future blog entry).
I wanted to share some of the lessons I’ve learned, because I think that they are important, and they helped me to find a position quickly, effectively, and easily. I actually had more than one opportunity to choose from – something that’s almost unheard of in the current economy.
One thing I’ve noticed in hunting for a job recently is the number of companies that insist that you write them a code sample to spec. Not just any code sample, but a fully functional, complete application. This is absurd, for several reasons.
Imagine that you’ve just been offered a brand new job. That’s fantastic! Now, make sure you do the math and find out what it will cost you.
“Cost me?” you ask. Yes. Accepting a new job is exciting and often beneficial, but there are costs associated with it that you must consider before you sign the offer and tell off your present employer. Some of these costs are obvious, but others are less obvious. These costs are rarely fully explored, because we have a tendency to see the grass as greener someplace else, and if the offer we receive is substantially better than our current one, we are more inclined to accept it. But not counting the costs would be a huge mistake.