password
username
Sponsored by CakeMail, an email marketing software.
Newsletter preview

Tuesday, Jan 20, 2009

JBoss Virtual Experience: Free! February 11th, 2009

We'll provide overviews of emerging JBoss technology, cover topics like JBoss Rails in the Cloud (on AS5), Seam, Web Beans, JBoss Federate, SOA and JBoss Tools 3. We'll host live chats with JBoss open source leaders, announce our first JBoss Community Leader Award recipients, and much, much more!

Sign up for the free conference today!

Perspective

SOA Design Patterns: Free Refcard Download



Visit the DZone Tech Library


A Developer's Perspective
Next section
Andy Wilson has been an architect, team lead and software developer for 15 years creating desktop and web applications alike. Reach him at andy{at}savvyduck.com or http://twitter.com/savvyduck.

Can I Just Change Jobs?
By Andrew Wilson

The topic of "Love it or Leave It" from Jeff Atwood is an old one that pops up every year. See these two links:

1. Jeff Atwood, "Coding Horror: Programming: Love It or Leave It,"

2. Joel Spolsky, "The Joel on Software Discussion Group - Thinking of leaving the industry,"

Its the notion that software developers are so passionate about coding that they would do the work for free and that anyone who wouldn't is a bad developer. I, after a lot of reflection, agree with this up to a point. I code in my spare time on projects of my choosing because it is something I am interested in and I find it relaxing. It's recreational programming.

There is a misguided notion that coding and software development are the same thing. Software development is a process of requirements gathering, designing, refining, developing, debugging, refining and deploying for the purpose of making money or for academic research. This process often occurs within the scope of one or more teams that have their own hierarchies and procedures for decision making.

The problem with the "love it or leave it" attitude is that it doesn't separate the job from the task. The task of coding is often enjoyable provided you are working on an approach that you don't fundamentally hate. Hate is a strong word for the situation, but most developers eventually get stuck implementing something that is just a horrible idea but we're doing it anyway because we were told to do it. I get really cross in those situations because I feel like I'm failing my own standards even though I am doing what I am told. I feel like I also failed to explain my viewpoint in a persuasive enough manner.

The job of software development can be terribly frustrating depending upon the team and organization. You could have a dictator for an architect who never listens to your designs. You could have a miser for a VP of Engineering or CTO that expects his employees to work 60 hours a week. You could have the most dull job in the world and the code you are writing is not challenging or even interesting. You could have five bosses that compete for your time and get angry when you work on one of the other boss's tasks. You could have three or four cliquey teammates that create unnecessary drama in the workplace. You could be an architect but not have support from the CTO so nothing you design ever gets implemented. You could have a nutty team lead that always wants to take shortcuts in code rather than really fixing a problem. You could have an HR policy that requires a timesheet that describes the work you performed in 15 minute increments. You could have daily standup meetings that take an hour, accomplish nothing, occur at lunch every day and the next round of meetings begins at 1pm. Your manager may take a nap, with the lights turned off in his office, while the rest of the team is on hour 12 of a 14 hour day trying to meet a deadline. Your software developer job could really be a miserable thing.

How many people have seen one or more of the above in their own workplace? I've seen all of these actually happen! A few of them have happened to me. Having five people assigning you tasks and making them negotiate for your time is very trying. That sleeping manager really amazed me but I already had a new job and just wanted to get out of there.

We are fortunate in many areas though. We generally make much more money than the average person. Our salaries plateau early in our careers compared to others, but the plateau is often well above the average pay in your geographic area. We often work in comfortable, climate controlled buildings. We almost always get good benefits like health care, some form of retirement and paid time off. We often get to work on challenging problems that test our abilities. We often get to work with smart people that often care about their work. Many of us have a lot to be thankful for.

Who should we be thanking? Is it our employer? How about teachers? How about team mates? Maybe it's our parents that encouraged us? Our spouses and our family? God? We got to where we are by working darn hard and through some people that supported us. Our job is not easy and not everyone can do it. We give up a lot of free time to master our craft and we often have jobs that require longer hours than almost everyone in the company. We are passionate about our work and expect to be treated and paid well too. And we are thankful to those who support us and stick with us when we are working.

Loving your job and loving coding are two very different things. We cannot sit and judge a person's situation from afar and say that he should be thankful for his job and is whining. Sometimes a job just sucks and it's time to move on. Sometimes we need a reminder that other companies are different and there are better projects, better places and better teams.

There are plenty phenomenal software engineers who are tired of the job and want to try something new. A good friend of mine left software development to become a photographer. He is easily the best software developer I have ever worked with and he walked away from the craft entirely. He codes just for the fun of it, occasionally writing the odd sudoku puzzle solver and thus taking the joy out of the puzzle entirely and moves on to something else. Is he a bad developer? No, he's just done and ready to try something new. How many people do we know that came to software development from some other field? How many of them are good at it and do we call them quitters for leaving the field they started in?

We sometimes take the viewpoint of "code above all else" but we see many that want to have a good job and be able to enjoy other aspects of life. Many of us are naturally inquisitive and need to apply our minds to many different disciplines, which is where we get the art in the "Art of Computer Programming." The art, by Knuth's definition, is the application of many different disciplines in order to code great applications. You need to learn a little accounting if you are going to write Quicken and you need a little expertise in photography and editing if you are going to write Photoshop. We learn to work with others to build a great application. We need to be more than just good at writing code to be great as software developers.

But some of us are tired of all the things that go along with coding as a part of a job. And some of us go off and start our own company because we want to code on our own terms. Others move away from jobs that require coding and become architects, team leads, CTO's and CEO's and yet we don't call them quitters or complain about their lack of coding commitment.

The "love it or leave it" attitude helps no one and labels too many people as not committed enough and opens us to exploitation by our employers. It confuses the job of the software developer with the fun of coding. We code because we love to and we work because we have to pay bills. We are lucky that our work is often on of our favorite things to do, but we are equally cursed when our work demands too much of us and our family. Many of us do not lead lives of quiet desperation but many of us are pulled between the needs of our lives, the requirements of our employers, the dynamics of the team and the love of coding. The pulling creates conflict and everything breaks when pulled too far in too many directions.

This leads me to my final comment: maybe we can just work for someone else. If the job sucks and our lives are miserable, we can just work for someone else and maybe find that one great job that is more aligned with the way we want to live.

Until next time,
Andy Wilson

To read more of Andy's work, visit his blog.

 
DZ Top Links

DZone Top Links
Next section
Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week


 
Popular at JL

Popular at Javalobby
Next section
Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.

SpringSource tcServer - The Tomcat You Know, The Enterprise Capabilities You Need

I still remember the day I first evaluated Enterprise Java Beans (EJB). It was in late 1998 and we were considering switching to Weblogic to take advantage of...

30 replies - 7398 views - 01/05/09 by Filip Hanik in Articles

Open Source : How Do You Stay Up To Date?

I Love the concepts and beliefs behind Open Source. I use Open Source libraries, applications etc. all the time. One of the things I have always found a...

15 replies - 4990 views - 01/10/09 by Schalk Neethling in News

Free Book: JBoss in Action

The purpose of this book is to show how to configure the wide variety of Java EE technologies for use with JBoss application server. The authors provide working examples which illustrate the...

142 replies - 4788 views - 01/14/09 by Meera Subbarao in Book Reviews

Code Refactoring - Freaking Awesome

We have all gone back and looked at code we wrote in the past and thought "Wow, this is ugly.", or "wtf was I thinking?", or even...

10 replies - 4257 views - 01/16/09 by Mike Bernat in News

What is Java VisualVM?

Java VisualVM, the new JDK tool since JDK 6 Update 7, provides a wide range of troubleshooting features for various kinds of Java applications. Whether you're...

8 replies - 4073 views - 01/14/09 by Geertjan Wielenga in Articles

How to Stand Out From Other Java/JEE Professionals?

The developer world is a competitive one, especially these days. It's difficult to stand out from the pack, but this article will illustrate three different...

20 replies - 3615 views - 01/14/09 by Arul Kumaran in Tips and Tricks

Using the NetBeans Platform on the Server with Wicket on the Client

Let's suppose you have developed a rather complex desktop application based on the NetBeans Platform, and later you discover that you could reuse lots of...

4 replies - 3265 views - 01/07/09 by Fabrizio Giudici in Articles


White Papers & Announcements

Product Announcements
Next section
Back to top
Product and service announcements for Java developers.

NetBeans Dominates Developer.com's 2009 Product Awards!

"This year one product, NetBeans, dominated the categories by winning five out of twelve."The NetBeans Team is thrilled to announce five big wins for...

0 replies - 1608 views - 01/16/09 by Tinu A in Announcements

NetBeans Weekly News (Issue 374 - Jan 12, 2009)

Project News DZone's NetBeans Reference Card Updated for 6.5! DZone's NetBeans Java Editor Refcardz has been updated for 6.5! The

2 replies - 1280 views - 01/13/09 by Tinu A in Announcements

Register for Free Webinar: MySQL, NetBeans & Rails (Jan. 27)

Webinar: Developing MySQL-Backed Applications with NetBeans and JRuby-on-Rails Learn to leverage the NetBeans IDE and the JRuby-on-Rails framework to deploy...

0 replies - 955 views - 01/15/09 by Tinu A in Announcements

ZK Studio 0.9.2 Style Designer Available

ZKStudio 0.9.2 announced Style Designer Available Potix Corporation has announced the availabilityof ZK Studio 0.9.2. ZK Studio, a visual integrated...

0 replies - 769 views - 01/16/09 by robbiecheng in Announcements

Barcode Recognition on J2ME With New Symbologies via Aspose.BarCode

What's new in this release?

0 replies - 712 views - 01/16/09 by Usman in Announcements

Japplis Website Optimizer 1.0

Japplis has released Japplis Website Optimizer 1.0. Japplis Website Optimizer is a software utility that reduces the size of your HTML pages, JavaScript and...

3 replies - 641 views - 01/13/09 by Anthony Goubard in Announcements

ScroogeXHTML for Java: RTF to (X)HTML Converter

betasoft, independent software developer for CodeGear(tm) Delphi and for the Java(tm) platform, is pleased to announce the release of ScroogeXHTML for...

0 replies - 600 views - 01/13/09 by mjustin in Announcements

Aspose.Total for Java Q4 2008

This Q4 2008 release of Aspose.Total for Java mainly improves performance optimization of its suite products. Lots of new and advanced features have also been...

0 replies - 594 views - 01/13/09 by Usman in Announcements

Core Mule Refcard Available - Download Now

Mule is one of the most mature open source enterprise service busses (ESBs) out there. This reference card will provide an overview of the architecture of Mule...

0 replies - 449 views - 01/18/09 by Jill Tomich in Announcements

SVNKit 1.2.2 - Pure Java Subversion Library

We are pleased to announce that SVNKit 1.2.2 is now available to download from http://svnkit.com/SVNKit is a pure Java Subversion library that provides APIs...

0 replies - 370 views - 01/19/09 by sasha sinyushkin in Announcements


Your Account

Your Account
Next section
Back to top
Manage your account info for this and other Javalobby publications.

Manage your Javalobby membership details

Click on the following links to:

Contact Info
Next section
Back to top
Here's how to reach us, we love to hear from you.

Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
  Call us
  Our number is (919) 678-0300. We'd love to hear from you!
Legal
Back to top
The fine print we'd rather avoid completely.
  Feel free to redistribute this newsletter in part or in full to your friends.
 
Javalobby News is a service mark of DZone, Inc.
Copyright © 2001-2009 DZone, Inc.

Thank you for your continued support of Javalobby and DZone. Click here if you prefer not to receive the Javalobby weekly newsletters.
DZone, Inc. - 1251 NW Maynard Rd. - Ste. 300, Cary, NC 27513 - (919) 678-0300