Staying Current: A Software Developer's Responsibility
Some people have problems getting time "off" to attend conferences. These situations feel like a fundamental misunderstanding of a software developer's responsibilities. Part of your (software developing) job is staying up on current technologies. That means doing some research during your day.
(almost directly stolen from Ward on technical debt)
If you spend your entire day coding and never looking at new things, you accrue productivity debt. In the short term (say the last week of a release), it makes sense to take on a little debt. However, in the long term, assuming little or no payment, the interest (where interest equals the gap between your skills and the current solutions) will render you a NZPP (Net-Zero Producing Programmer). In a typical organization you can coast as a NZPP for around 6 months and slowly transition to a NNPP.
It is your responsibility not to become a NZPP (or NNPP). Most talented software developers refuse to work with NZPPs. At the point that you become NZPP, you usually have to declare bankruptcy (with regard to software development). You generally have two choices: take a much lower paying job where you can learn new things or move into another role. If you want to be a software developer, neither of these outcomes is desirable.
Luckily, you have the power to avoid becoming a NZPP. Most employers will happily buy you technical books and send you to technical conferences. In my opinion, whether or not you took advantage of these benefits should be noted on your performance review. Not staying current as a software developer, especially when the opportunity is offered to you, is software malpractice.
I once created a list of things I look for in potential team-mates.
- Have you tried Test Driven Development? Can you name something you liked and something you disliked?
- What language(s) that are gaining popularity, but not yet mainstream, have you written Hello World in?
- Do you read books or blogs looking for new ideas at least (on average) once every two weeks?
- Do you at least attempt to learn a new language every year?
- Have you ever run a code coverage or cyclomatic complexity tool against your codebase?
Not everyone has the personal free time to dedicate to doing all of these things
And,
that is the fundamental flaw. Employees (and even some employers) seem
to think that these are activities that should be done in your off
time. I can't disagree more. These are things that a responsible
developer needs to do as part of their job, thus it can be done during
work hours.
20% time isn't something Google invented, it's just
something they named, formalized and made popular. The activity itself
is something good software developers have been doing for years. I
applaud Google for making it a standard, thus ensuring that it's
employees always have the opportunity to stay current. However, your
company doesn't need to standardize on 20% time for you to stay
current.
It's your responsibility to make time in your day to read a book or a blog.
You
should also take advantage of a company sponsored trip to a conference.
If you've attended conferences before and derived little value, I
highly suggest the QCon conferences and JAOO.
Once
you start doing research as part of your job you'll find that
conferences are just like work, except the focus is 100% on research.
And, it's not something you want (or should have to) spend your
personal time on, it's just another productive day of doing what you
have a responsibility to do.
* Which is why Josh and I run SpeakerConf Tuesday-Thursday. You can travel to, attend and travel home without missing a weekend day.
From http://blog.jayfields.com
Jay Fields is a software developer and consultant at DRW Trading. He has a passion for discovering and maturing innovative solutions. His most recent work has been in the Domain Specific Language space where he's delivered applications that empowered subject matter experts to write the business rules of the applications. He is also very interested in maturing software design through software testing. Jay is a DZone MVB and is not an employee of DZone and has posted 13 posts at DZone. You can read more from them at their website.
- Login or register to post comments
- 5262 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
Philometor replied on Fri, 2009/08/21 - 8:27am
I know quite a few companies with otherwise decent working conditions, where spending even 10% of time on issues not directly connected with the project would be frown upon. (I know we could argue about how staying current is relevant to any project, but our opinion is not as important as the opinion of the employers)
P.S. Understanding the value of staying current – I spend EXTRA 20% of (my personal) time for reading and studying. I’m subscribed to a number of rss feeds and constantly read books. To extend my learning I even began to listen to audio book on my way to work. But, I cannot expect everybody to be willing or even able to do it.
Rigel Kentaurus replied on Fri, 2009/08/21 - 9:53am
There is a saying that tells that "What you do after work will shape your career" meaning that a lot of study could, and should, be made after you get out of work. I want to debate a couple of points here.
First, if you are really passionate about your career, then you don't need the training, the reading, the blogging to be done at your work time. Sure, it is related to your work, but if you are in the spot where you marry your hobbies with your job and you really love what you are doing you would not mind using your "free time" for that. After work, I often fire up my computer at home and contribute to open source projects, do some programming of my own, fire up Scala or Groovy and tests some things. And that's without neglecting my family, I still spend time with them, go to movies... it's not that hard. But once in a while instead of reading the latest Ann Rice novel, I read the python cookbook, and I have just as much entertainment.
Someone that isn't passionate enough to allocate some of their free time for research isn't really in love with their job. If someone has time for playing WoW or watching 1 hour of tv, they have time to come to the java lobby and read the articles here, really, and maybe test one or two of the technologies discussed here.
That's not to mean that there shouldn't be time at work allocated for research. But this obligation is shared with both employee and employer.
Last, there is the issue that a lot of the IT nowadays is managed as a "cost center", meaning that everything you do needs, and should, be charged to a project. Seen those firms that charge you each hour of development as if they were doing law or accounting consulting? They would give you an exact estimate of the developer, senior developer and managerial hours put into your project.
This has the pitfall that any research that you do in your free time, needs to be charged to a project. Question is ... which project? Try walking to a company, sell them a product or a customized solution and tell them that 20% of the time is going to be used for research, but they will be charged for it anyway.
Try hiring a carpenter or a plumber (I know it's not the same, but bear with me), and see them sit on your living room, start reading a book, they tell you "It's my training time, and I'm also charging you this". You won't be happy, and you won't like that. But in software development it is ok to do the training at work? Try hiring a lawyer that charges by the hour, if he/she tells you that you are going to be paying his seminar, would you agree?
That 20% model may work for some companies, and for staff people inside a company. It might also work for the biggest IT firms that can afford to pay the developers to study. But with small and medium companies dealing with cash flow problems, and with the clients and custom development, it doesn't work at all.
Nick Brown replied on Fri, 2009/08/21 - 4:14pm
Based on my experience, I suspect its not that uncommon for employers to on one hand tell their employees to spend time at work learning new stuff, but on the other hand not schedule any time for it. So if you spend 20% of your time learning something new, you are typically going to have to work after hours to get your work done. And while my employer has bought books (and once in a while paid for a trip to a conference) in the past, this year they decided that because of the poor economy they were going to cut the budget there. Well, luckily I have a Barnes and Noble discount card...
I don't think its a matter of people not recognizing the value of education. Its that business pressures force cutbacks in schedules and resources to the point anything not seen as critical right now is dropped.
reboltutorial replied on Sun, 2009/08/23 - 7:54am
Jeroen Wenting replied on Tue, 2009/08/25 - 6:00am
Sadly most employers don't see things that way. All they care about are billable hours. By the time you're no longer current and thus no longer profitable to them, you're pushed out the door (either through termination because you no longer fit the job requirements or by being given backwater assignments until you quit).
So unless you spend evenings and weekends (and vacation time) upgrading yourself at your own time and cost you're not going to stay current (let alone ahead of the game. AFAIK this is one of the few industries where there's so little interest on the part of employers to train staff. Could be because we're seen by many in management as easily replaceable code monkeys (no matter whether we're coders, designers, testers, analysts, or architects), maybe it's because of the plethora of books available and "all you need is a computer" (hard to expect a factory worker to install a new welding robot at home to train himself).
Jeroen Wenting replied on Tue, 2009/08/25 - 6:12am
Same here. No more foreign travel allowed at all, cost of conferences covered only for those with invitations as speakers, and time spent has to be covered by your vacation time. All training and books covered only if directly billable to a customer account (thus no training to prepare people for upcoming things, all reactive only). Was told nearly 2 years ago I would get training to improve my Oracle skills, still hasn't happened (and by now I've pretty much gained most of it through working the thing, no doubt making mistakes and slowing down along the way enough that sending me to some training center for 2 weeks would have been cheaper).
On paper there's a generous training budget available for all employees, but if you try to get approval to actually access that budget, you're stonewalled at every turn. And that's the same I've encountered at all employers I've worked with over the last decade.
Raveman replied on Tue, 2009/08/25 - 7:26am
1. conferences are just for fun, you can learn more using site like DZone
2. i know many people that dont do much at their work and earn just as much as any of us and its because most of the time you only get a raise if you change your job, so your company doesnt care if you do anything beside work. they pretend and send you to conferences, but deep down inside they just dont care.
3. staying up-to-date with the latest technologies is optional. in theory is good for your career, because it might helpyou find better job. However many times on job interviews we are asked about design patterns and other useless stuff. staying up-to-date wont help you there.
i find it funny that you try to convice people its our responsibility, i know people that are still using Java4. is it their responsibility also? should they learn scala just to not use it at work?
We are all like to think that our skills matter the most, but at when you look for a great job only skills that matter are your poker skills.