My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement
As I've mentioned before, I used to try my hardest to avoid contact with the customer, and as software developers, I think we don't spend enough time concerned about the business aspects of what we do.

In My Job Went to India, Chad Fowler says he thinks so too.

To combat code monkey syndrome, Chad suggests we have lunch with business people and read trade magazines for our business domains as often as we can.

Working for a tiny consulting company, I get the benefit of being close to all the business decisions, but not in many specialized domains. However, since I made the decision to stop being a "code robot" (Chad's term), I've always taken the opportunity to talk with clients or meet them for lunch to discuss their domains. Even more recently, a couple of us here have taken to reading trade publications related to a product we're building.

Doing so helps you understand why some of those "crazy" requests are made, and what you can do to make them work in the system while still accomplishing the client's goals. And things just seem to work better that way. Nowadays, I'm no longer getting any "that's a nice system, but it's not what I wanted" comments due to keeping myself stuck in a walled garden. Instead, I'm building software customers want and will use. And the purely selfish benefit: I'm adding to my value as an employee or contractor in those domains.

As an aside, last week I was on vacation, so that's why you didn't see this then. I'll try to make up for it and post two this week.

So are you a code monkey? Are you trying to evolve into a code human?

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!

Leave a comment

Sam, this is something that I have a personal struggle with. I love being a code-monkey. I love solving problems in code and figuring out new ways to do things or rediscovering ways of doing things that lots of people already knew about (but I did not). To me, it's all about the hunt and the joy of the proverbial "kill."

Like you, I work at a small company, and as such, I do have a tremendous amount of contact with the clients including daily phone calls and the occasional face-to-face meeting. I enjoy this aspect of the job, but I am afraid to move into a position where I have more face time and less code time. The coding is what really makes my day fun - the joy of client-relationships is really just a bonus on top of that. Right now, I am not letting one sacrifice the other... but everyone I ever talks to seems to think that this is not a good position to be in.

Not sure how this will play out in the long run.

Posted by Ben Nadel on Jul 31, 2007 at 06:30 AM UTC - 5 hrs

Ben - I think the fact you said "I love solving problems in code and figuring out new ways to do things" pretty much disqualifies you as a code monkey. Code monkeys take solutions that have already been figured out and type them into the computer. =)

I like to code too (well, I sure do spend a lot of time trying to code less!), but I definitely like my relationships with clients, and learning the business domains. Sounds like you are doing it right!

Of course, I think Chad was really talking about specializing in domains more than gaining detailed knowledge of particular aspects of many domains.

What is the rationale they use to say "this is not a good position to be in," by the way?

Posted by Sam on Jul 31, 2007 at 03:19 PM UTC - 5 hrs

When people tell me that this is not a a good place to be (in the coder's mindset) they mean that it is a position that does not evolve. That to progress in my career I have to start being more of a manager which will require moving away from the coding aspects of life.

It's funny, though, cause when I think about "Value" that someone can bring to a company, I don't necessarily see managers and architects as more valuable. People tell me that I should aim to become less a coder and more a system architect, but how can I possibly do that until I have mastered coding?

I used to think it was possible - that understanding the big picture was doable without mastering the nitty-gritty of code implementation... but lately, I am not so sure. An architect, I think, is only as good as his ability to guide others; and, even with understanding the overview a system, how well can you guide people if you do not have a rock-solid understanding of implementation??

Sorry, maybe not the most coherent of thoughts :)

Posted by Ben Nadel on Aug 05, 2007 at 04:35 PM UTC - 5 hrs

Thanks for the clarification, Ben.

Like many people, I too am skeptical of the "ivory tower architect." It's one thing to see the big picture. It's quite another to design a system without being aware of the constraints pulling on you.

Posted by Sam on Aug 05, 2007 at 07:37 PM UTC - 5 hrs

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)


Subcribe to this comment thread
Remember my details

Picture of me

.NET (19)
AI/Machine Learning (14)
Answers To 100 Interview Questions (10)
Bioinformatics (2)
Business (1)
C and Cplusplus (6)
cfrails (22)
ColdFusion (78)
Customer Relations (15)
Databases (3)
DRY (18)
DSLs (11)
Future Tech (5)
Games (5)
Groovy/Grails (8)
Hardware (1)
IDEs (9)
Java (38)
JavaScript (4)
Linux (2)
Lisp (1)
Mac OS (4)
Management (15)
MediaServerX (1)
Miscellany (76)
OOAD (37)
Productivity (11)
Programming (168)
Programming Quotables (9)
Rails (31)
Ruby (67)
Save Your Job (58)
scriptaGulous (4)
Software Development Process (23)
TDD (41)
TDDing xorblog (6)
Tools (5)
Web Development (8)
Windows (1)
With (1)
YAGNI (10)

Agile Manifesto & Principles
Principles Of OOD
Ruby on Rails

RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner