the blog for developers

As a Manager: What I value in developers

There are many traits a good developer has. Focus. Sense of Quality. Interest in what he does. Knowledge of programming languages and skills in software development. An opinion. Team player. Update see comments: Being creative and innovative. Propose ideas.

But the things I most value are professionalism and getting things done.

Those are similar to the one Fog Creek and Joel Spolsky find important. Joel on Software values:

First of all, the #1 cardinal criteria for getting hired at Fog Creek:
Smart, and
Gets Things Done.

Why professionalism? There is not enough sense of a profession on our industry. We do need more professionalism to be taken serious by others. By our customers. Noone would argue with an account about his practices, or with a surgeon about his. The only high-profile person caring about professionalism seems to be Uncle Bob. This can be felt in many of his arguments:

Look, TDD is not my religion, it is one of my disciplines. It’s like dual entry bookkeeping for accountants, or sterile procedure for surgeons. Professionals adopt such disciplines because they understand the theory behind them, and have directly experienced the benefits of using them.

Professionalism is about not doing things that are stupid. Not cutting corners. Have pride in your work and write clean code. Get the software development industry and your job to a level where surgeons and accountants have been for centuries.

Why gettings things done? In the end, what counts is money earned. Everything else is a proxy. If you want to get paid, your company needs to earn money. Honour deadlines. Getting things done means no gold plating. It means understanding the necessity for business to get features to their customers. Suppressing the urge to develop a framework out of everything, to develop frameworks first before you really know what is needed. Write frameworks when it helps you getting things done. To dive into large refactorings at the wrong time.

You need to strike a balance between both. Too much professionalism and your customers will be annoyed. As will be your boss and your colleagues. It means you will make professionalism and end in itself and forget about getting things done. Too big a focus on getting things done will make you cut corners. Write bad code. Being not professional.

Your company needs to support you with both – a environment for professionalism and letting you getting things done. Many companies don’t. Some focus too much on professionalism, some focus too much on getting things done. What if your environment doesn’t support you? Joel writes in another article about you getting things done:

A lot can be done to improve the project just by one person doing it. Don’t have a daily build server? Make one. Set your own machine up with a scheduled job to make builds at night and send out email results. Does it take too many steps to make the build? Write the makefile. Nobody does usability tests?

And most managers will value you highly when you get things done.

What about you, what do you value? I’d like to hear in the comments.

You can leave a Reply here. Of course, you should follow me on twitter here.

You can share this post!
Do you want to tell others about this article? Use the social bookmark icons to submit this artice to the service of your choice. Thanks.

About the author: Stephan Schmidt is head of development at brands4friends. He has more than 15 years of internet technology experience and 10 years experience in agile. He was head of development, consultant and CTO and is a speaker, author and blog writer. He specializes in organizing and optimizing software development helping companies by increasing productivity with lean software development and agile methodologies. Want to know more? All views are only his own.

1 Comment 34 Tweets 11 Comments

Leave a reply.

Comments

Stephan,

Gettings things done is important. And I value professionalism and “getting things done”, too.
Anyway, there are reasons and/or situations you simply fail on this.
Think about customers not understanding the need for “lightweight” approaches. Think about projects that have to cutdown costs (mostly tests are dropped :-) ) … Think about managers, not understanding the need for usability tests … and some other examples.

Where is the difference between a surgeon and a developer? What is the difference between the industries? If a surgeon disregards sterile procedures it would possibly harm human life. What about developers? I expect there to be only very few working under similar conditions. Are there different levels of “professionalism”?

I believe, it is not only the need for professionalism but also the need for a supporting environment, enabling it. Have you seen much of them?

-Markus

I always thought in this balance between do the “best” solution and deliver software to customer, but never with these words you used.

As a coworker, I’m a developer, I value the proficiency in find solutions by himself. Not meaning completely alone, because we’re a team, but to be able to research without annoying the others in the team. For example, let’s say that a new team member needs to solve a bug and he don’t know where to start, I like to point out where he/she should start looking and he by himself needs to be able to dig down the problem without need help in every little step.

Great post! Finding a balance between professionalism and getting things done always made perfect sense to me.

@Markus: Unit tests, usability are part of professionalism for me. Dropping them is like a surgeon dropping hygiene.

” What about developers? I expect there to be only very few working under similar conditions. ”

It will lead to “bankruptcy”. Not being able anymore to develop new features (Ebay anyone?) and have a massive rewrite. Competitors taking over. Patient dead.

“[...] but also the need for a supporting environment, enabling it.”

Important yes. I’ve seen it here and there, I try to instill it everywhere I am. But change starts with developers not cutting corners, not dropping double book keeping.

From a corporate perspective, you’re absolutely right—companies need the hard-working productive programmers to make the products they can sell. Managers love manageable workers!

But if you’re not tied to a corporation for your livelihood, or your passion drives you to code beyond your 9 to 5 job, there’s a more satisfying way to create things that people want to use. It’s the mentality that says, “Go ahead and scratch that itch.”

So I’d add “entreprenerial-minded” to your list. From the non-productive itch-scratchers come the bulk of the software I use on a daily basis.

Those are the kinds of developers I like, because they’re smart (as Spolsky says) but also are engaged in creating new and useful things. Not everything they create is wonderful or even sellable, but in most of the companies I’ve been at in the past dozen or so years, the bulk of the great ideas that turned into high-selling products came from inventive programmers, not management. Letting smart and creative people take off the tie once in a while is an investment that little companies seem to understand better than large companies do.

@Scott. “But if you’re not tied to a corporation for your livelihood, or your passion drives you to code beyond your 9 to 5 job, there’s a more satisfying way to create things that people want to use. It’s the mentality that says, “Go ahead and scratch that itch.””

From several years in open source, I’d say it’s hard to get paid for scratching your itch.

As a Kanban enthusiast I think value is determined by customers.

As a side note: I do like smart and creative people, I just do not value those traits most. I do like creative surgeons, but I value other traits in them most. Non creative, dumb developers will also leave agile environments or adapt, and are not a major concern to agile development.

I’m seeing that timely and professional time/work estimates are critical.

I’ve worked with developers that know within 15 minutes how long something will take them and all of the steps. I’ve also worked with some that will say, “Sure, we can do it by Friday” and then deliver two weeks late and with half of the features.

Poor time estimates will kill a company.

awesome, thank you!

Thank you Abby :-)

Well, I agree with you and all, but people have been confusing “professionalism” with folk medicine.

Take, for instance, clean code. A lot of code analysers — and people, of course — take for granted that small methods and classes are better. However, research has shown that defect rate gains purported just aren’t there once you cut out the boilerplate code you are adding, and that the “best” size is actually between 100 and 150 lines for a method.

To tell the truth, I’m sick tired of unsubstantiated claims, lousy methodology and statistically insignificant samples. I come across the research Uncle Bob has turned up on TDD, and I keep asking myself: yeah, but is it sound? :-(

Hobo

s/payed/paid/

kundan

As a Developer : What I value in managers is ability to shut up and get out of way.

@kundan: Great, you’d love me!

@Hobo: Thanks, fixed.

romikk

Replying to the last bit about too much professionalism:
There is no such thing as “too much professionalism”. You either do your job right (professonally in other words) or compromise reliability of your project.

Would you say “not too much professionalism please” to your doctor? :)

PS: There is another thing called ‘overengineering’ which should not be confused with professionalism.

Stefan Schubert

In the 12 principles of agile (http://agilemanifesto.org/principles.html) you will read “Continuous attention to technical excellence and good design enhances agility”
A lots of the other parts say “deliver”, too. So you have the dame trade-off.

In our company we, as well, try to get the focus a little bit more on those principles. Those teams embracing technical excellence continue to improve. Those teams will find a lot of things in retrospectives where other teams tend to say “well with our team everything is fine but management sucks”.

I say technical excellence or professionalism has something to do with accountability. Development teams have the core responsibility for getting it done. So of course they are to be made accountable for quality. And quality happens on its own as soon as a team starts to understand that technical excellence is the key to delivering in the future, too (Alistair Cockburn on scaling agile and solving technical risks early: http://www.infoq.com/presentations/cockburn-bury-not-praise-agile).

Of course there is a trade-of. But there is a way of approaching it, too: Technical excellence is directly connected to technical debt. There are always parts in the code critical for the future or performance (domain model, database stuff etc.) and there are parts that may never change again according to requirements.
So you may want to focus your technical excellence on those parts where quality is critical for your business.

Of course, if the trade-off is pushed to deliver by a deadline (and you cannot scale) or by money, well then you have to tell the customer what this means for his risks in the future. It is up to them to decide. And its up to the software company to know if are capable of getting the job done with the money they get from it.

Dead simple

@Stefan: As always, excellent comment.

Luis Karlso

This reminds me a boss, who always had the things done, he was a professional… the problem was his code was the most horrendous thing in the world…lol..

@Luis: He can’t be a “professional” when “his code was the most horrendous thing”.

pete

s/an account /an accountant /

My “me too” comment: Professionalism, as you describe it here, and some amount of “coding for pleasure” outside of work. These are things I look for in an interview, before worrying about experience with a particular language or database or whatever.

I’m reminded of the “sharpen the saw” entry in The Pragmatic Programmer.

Leave a Reply

What people wrote somewhere else:

Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

RT @tweetmeme Code Monkeyism: As a Manager: What I value in developers http://retwt.me/1xZH9

This comment was originally posted on Twitter

“You need to strike a balance between both [professionalism and gettings things done].” http://bit.ly/3bUlPL by @codemonkeyism

This comment was originally posted on Twitter

As a Manager: What I value in developers http://codemonkeyism.com/developers/ Answer: 1- professionalism, 2- getting things done.

This comment was originally posted on Twitter

RT @codemonkeyism Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL Good post!

This comment was originally posted on Twitter

Code Monkeyism: As a Manager: What I value in developers http://is.gd/4EeEs

This comment was originally posted on Twitter

As a Manager: What I value in developers http://codemonkeyism.com/developers/

This comment was originally posted on Twitter

As a Manager, what you value in developers: professionalism and #GTD? http://tr.im/Ddrc

This comment was originally posted on Twitter

RT: @codemonkeyism: Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

As a Manager: What I value in developers: Comments http://url4.eu/fgbO

This comment was originally posted on Twitter

As a Manager: What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

RT @newsycombinator: As a Manager: What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

Awesome! RT @codemonkeyism Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

RT @newsycombinator: As a Manager: What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

” In the end, what counts is money earned. Everything else is a proxy ” RT @newsycombinator What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

RT @myfear: RT @tweetmeme Code Monkeyism: As a Manager: What I value in developers http://retwt.me/1xZH9

This comment was originally posted on Twitter

RT @newsycombinator: As a Manager: What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

RT @newsycombinator: As a Manager: What I value in developers http://bit.ly/4bFc8o ^MJ

This comment was originally posted on Twitter

RT @newsycombinator: As a Manager: What I value in developers http://bit.ly/4bFc8o ^MJ

This comment was originally posted on Twitter

As a Manager: What I value in developers http://bit.ly/y2Z5Z (via feedly)

This comment was originally posted on Twitter

RT @codemonkeyism: Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

Shared… As a Manager: What I value in developers (by @codemonkeyism) http://is.gd/4EzjL

This comment was originally posted on Twitter

RT @jurgenappelo: Shared… As a Manager: What I value in developers (by @codemonkeyism) http://is.gd/4EzjL

This comment was originally posted on Twitter

RT @codemonkeyism Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

RT @newsycombinator As a Manager: What I value in developers http://bit.ly/4bFc8o

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: As a Manager: What I value in developers http://bit.ly/3bUlPL

This comment was originally posted on Twitter

I am this manager w/ the same expectations. Perfect capture. ‘What I value in developers’ http://bit.ly/4bFc8o (via @newsycombinator) #fb

This comment was originally posted on Twitter

RT: @codemonkeyism: Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

RT @codemonkeyism: Published new blog post: “As a Manager: What I value in developers” http://bit.ly/3bUlPL

This comment was originally posted on Twitter

This typography makes me sad – http://codemonkeyism.com/developers/ :(

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: As a Manager: What I value in developers http://bit.ly/3bUlPL

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: As a Manager: What I value in developers http://bit.ly/3bUlPL

This comment was originally posted on Twitter

Code Monkeyism: As a Manager: What I value in developers http://codemonkeyism.com/developers/

This comment was originally posted on Twitter

Code Monkeyism: As a Manager: What I value in developers http://ow.ly/yqnB

This comment was originally posted on Twitter

Additional comments powered by BackType

Guide to CodeMonkeyism

Over the last 4 years I wrote many articles on this blog. To make it easier for you to find the relevant ones, I've organized them into topics.

Top 10

6 reasons why my VC funded startup did fail

Go Ahead: Next Generation Java Programming Style

Java Interview questions: Write a String Reverser

The dark side of NoSQL

7 Bad Signs not to Work for a Software Company or Startup

Is Java dead?

Scala vs. Clojure

Never, never, never use String in Java

No future for functional programming in 2008 – Scala, F# and Nu

Clojure vs Scala, Part 2

Job Seeker

Another Good (Java) Interview Question

7 Bad Signs not to Work for a Software Company or Startup

Java Interview questions: Write a String Reverser (and use Recursion!)

Java Interview questions: Multiple Inheritance

As a Manager: What I value in developers

Top 10 Tips (+1) to Get a Pay Raise

Java Developer

Is Java Dead?

Go Ahead: Next Generation Java Programming Style

Be careful with magical code

All variables in Java must be final

Never, never, never use String in Java

Bending Java: More readable code with methods that do nothing?

Startup/CTO

Development Dream Teams

6 reasons why my VC funded startup did fail

American vs. European style of Software Development

12 Things to Reduce Your Lead Time and Time to Market

The high cost of overhead when working in parallel

Essential storage tradeoff: Simple Reads vs. Simple Writes

Agilist

What Developers Need to Know About Agile

5 Practices Better to Change in Your Scrum Implementation

Scrum is not about engineering practices

ScrumMaster and ZenMaster: The joke of certification

What is Trans-Scrum?