Staying Current: A Software Developer's Responsibility
Join the DZone community and get the full member experience.
Join For FreeSome 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.
Opinions expressed by DZone contributors are their own.
Comments