Jay Fields is a software developer 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 116 posts at DZone. You can read more from them at their website. View Full User Profile

Staying Current: A Software Developer's Responsibility

  • submit to reddit
I have a personal hatred for weekend conferences*. To me, a weekend conference ensures that I'll be "working" for 12 straight days. I understand that opinion isn't universal.

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?
A commenter said something along the lines of
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

Published at DZone with permission of Jay Fields, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Philopmetor Ptolemy replied on Fri, 2009/08/21 - 8:27am

It’s hard to disagree with the necessity to stay current, but it is incorrect to assume that all (or even most) companies allow studying/research during working hours. It’s not that they don’t want their employees to be up-to-date with the latest technologies, it’s just they don’t want to pay for it.
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.

rebol tutorial replied on Sun, 2009/08/23 - 7:54am

Most IT people like average consumers follow fashion. So they rarely look beyond new things until it becomes mainstream. Then it's almost too late for them as the learning curve is too steep.

Jeroen Wenting replied on Tue, 2009/08/25 - 6:00am

" 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"

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

" 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"

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 Ravemanus 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.

Nelly Newman replied on Thu, 2011/02/24 - 6:42am

I understand you repulse towards weekend conferences, after all that that is your free time which should be spent with your family away from work. However being a software developer requires you to be very well informed in order to stay on top and fulfill your clients demands, you will never have a successful career unless you are improving your skills constantly and keep your clients satisfied. I am not a programmer, but i use an edi software so I know how important it is for me to know that the soft is always improved according to my needs.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.