7 Replies - 1093 Views - Last Post: 23 October 2013 - 02:03 PM

#1 RR_Dev  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 5
  • Joined: 10-December 12

Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 10:24 AM

I wanted to try and raise some awareness, perhaps even educate recruitment agencies and employers, on how to employ a decent candidate - at the moment they're focusing on the wrong things... Being a good developer, this is a frustrating - the way recruitment agencies are behaving right now I could easily be beaten into a position by a developer that ends up costing the employer a LOT of money with bad practices... I've seen it over and over again.

I'm not sure exactly how I'd go about doing that... but I thought I'd, at least, make a start by writing an article that they could understand.

Perhaps you guys would consider bouncing ideas of it, giving me feedback, perhaps writing and little yourselves, and give me ideas about other things I could say? Analogies to make it simpler to understand from a laymans point of view would be great too?

By the way, if anyone wants to run with this idea, at any point, and get something published - maybe even take some words from my writing, as it evolves through this thread, and use them in your own article... please go ahead...

I'll welcome the arrival of the day agencies start talking with some insight and sensibility about them!

All contributions are welcome!

I only have limited time each day to devote to this, but here's a rough "sketch" I did today, just to get the ball rolling...

How to hire a good developer

Recently I had the very unpleasant experience of dealing with recruitment consultants who are pitching their clients as unfriendly pretenders, concentrating in completely the wrong area.

I wanted to write something to raise awareness in employers and recruitment agencies.

Think about this from the point of view of photography...

You wouldn't turn down a David Bailey or a Richard Avedon (two of the greatest photographers of all time) because they haven't used a Canon EOS 5D Mark III camera [in the last few months] and yet, this is exactly what's going on today in software.

What's going on?

For the last 15 years I've been working, primarily, with the language Visual Basic.

To write software we use something not dissimilar to Microsoft Word...

Like Microsoft Word, this software (Visual Studio) has been through many, sometimes yearly, releases - the language, just like the English language, has barely changed though.

Despite this, everyone is concentrating on which years' version has been used and whether that version specifically was used recently...

...from the point of view of a good software developer, trying to get through the firewall of agencies, it's like the whole world has gone mad.

So how do you hire a good developer?

Should you give them a test? Get them to write software? Sure, that's not a bad idea... what you really need to do is concentrate on programming principles.

What are programming principles?

Let's think about this from the point of view of building a house.

You form a solid foundation so the house doesn't slide away or get penetrated by damp, you use a spirit-level and plumb-line to make sure the structure and walls are straight and true, you mix your mortal to the correct ratio to make sure the walls don't crumble and fall down - it there's space for storage you include it, make a roof that won't blow off and include windows so we can see out - and you don't totally wall-up internal spaces that could be used otherwise.

Just like building a house: when we start writing software we do so from a position of formlessness and can literally throw piles of bricks into a swamp, leaving space in the middle and toss a bit of cardboard on top for a roof - just crawl through a gap if you can find one!

In the case of software, though, it's not easy for a layman to assess what's there because the structure isn't visible... and just like a house it can be very costly if it's built badly!

Fortunately there are a set of timeless principles programmers can employ to make sure your house stays up forever, is energy-efficient, uses natural and electrical lighting to goo d effect, and if you want an extension or swimming pool later that'll be no problem!

Can a layman understand these principles?

Yes.

How long will it take?

Half a day? Perhaps a refresher at appropriate moments from time-to-time.

Is that really a worthwhile investment of time?

If you're an employer, employing programmers, then yes, definitely. It literally is like what I was saying about the builder - you would be extremely unhappy with your pile of bricks in the swamp... but how do you validate that now? Is it ok that your software needs a complete rewrite from time-to-time?

This is going to help you evaluate your programmer’s true skill-level and could save you a lot of money in the long run.
Have you heard of the Agile techniques? A different subject really, but why do you suppose it's called Agile? It's because it's supposed to make your software team agile, you can move quickly, change tact easily, and scale your software up to meet new demands at a moment’s notice...

People are picking up Agile like wild-fire these days, and yet, even Agile is totally restricted if it's not complimented by good programming principles. Good programming principles are what make you truly Agile - it's no good having a team of fast runners if their shoe-laces are all tied together, right?

Is it Agile?

Some books have been released stating things like "Agile Programming Techniques" including principles - the principles are much older than Agile really.

If that’s true why are people running with Agile and “Scrum” and not this?

It’s easy to understand “we carry out work in organized segments and have a stand-up every day to make the process transparent, sometimes we even carry out cross-functional roles!” – I’m not going to lie to you, understanding the principles is more difficult than that. I guess the trick is making it easy to understand the important stuff – I know us techies sometime have a bad reputation for speaking in techno-babble and baffling people with science, perhaps it’s simply that no-one’s yet put pen to paper?

Before thinking about the principles, what else?

If you’re a recruitment consultant skip this section – if you’re not going to read about the principles, there is also a section, following that, about writing more appealing adverts.

The biggest omission I’ve noticed from software development teams concern gathering requirements and analyzing them. The most common mistakes being made are 1. doing exactly what the customer asks, nothing more, nothing less, and 2. not involving programmers in the process.

A complete article could be written on this subject and I want to concentrate on the idea of getting the right people – so I’m going to cover this very briefly.

Ask the customer what they’re trying to achieve and study their working environment, sometimes you’ll find that your customer would have ended up with a second-rate, even unusable product if you simply followed instructions – also, involve your programmers in the process! Sometimes we talk nonsense, sure, but that’s what lateral thinking is about, looking at things from every angle. Good programmers, visualizing solutions using principles, often seeing potential for things that don’t get thought about - added functionality that seems like a lot of work to a layman but might be really simple to bolt-on or, at least, allow for. This also gives the programmers much more insight so while we’re writing we can bear mind specific future development and sometimes give you feedback about possibilities while we’re writing.

I can assure you, businesses and teams I’ve worked with who do both those things produce better products, have happier customers, better inter-personal relationships, are more willing to deliver and are happier in general.

Ok, I’ll think about it – tell me about the principles

All you need to do is ask your new developer about the following subjects, if what they say sounds familiar, it comes across that they implement these ideas into their software and (even if they baffle you a bit) they sound authoritative on the subjects, you’re sure to be on the right track. If you’re not a technie this is going to be a judgment call. If you want to know the difference between a pretender and someone who really knows: many programmers I’ve worked with in the past would be speechless about these and you’d certainly notice a lack of experience/authority on the subject – if you asked me about these I’d be quite passionate about them.

Defensive programming

…content coming soon

DRY (Don't Repeat Yourself)

…content coming soon

Abstraction

…content coming soon

KISS (Keep it Simple Stupid)

…content coming soon

SoC (Separation of Concerns)

…content coming soon

Object-Orientation

…content coming soon

Commenting

…content coming soon

Code Reuse

…content coming soon

POLA (Principle of Least Astonishment)

…content coming soon

Extensibility

…content coming soon

Backward compatibility

…content coming soon

Database Normalisation

…content coming soon

Database Indexing

…content coming soon

Data integrity

…content coming soon

Onwards…

Writing appealing adverts

Another practice making potential candidates yawn is the agencies "proven" technique of questioning essential requirements "what else? what else? what else? what else?" resulting in job specs that look like this:

"Our client, a top 10 inter-galactic high-street software provider, is looking for a slave/programmer... To be considered for this amazing opportunity, it is essential you have experience with Visual Studio (specifically this week’s release), Pearls and Diamonds, Stacks of Lamps (with orange energy-saver bulbs, blue light-shades and a string-switch), Rubies on inverted electro-magnetic rails, SOAP (and bubble-bath), XML (just a simple file format but ESSENTIAL) and a thorough understanding of UML."

Why is that a problem?

First, drop the words “our client” – even if you’re a good example, it is blatantly obvious that 9/10 recruitment consultants worship their client while happily using tactics to try and force us into positions we might not otherwise like to take. We don’t know you personally, so this “my client”, “our client” business is just a repetitive reminder of that difference.

Good software developers have a pretty good idea where to find rewarding jobs – however, to get there we need to weed through lots of roles that aren't. Recruitment is a numbers game and we know agencies hate this - they can't stand having candidates who won't interview for any position, which means we have to hold them at bay and personally weed through all the job adverts ourselves. Right now I've got the top job sites sending me alerts of new positions in my area as though seeking a position - I get around 120 emails a week. As you can imagine reading the words "our client a market-leading, inter-dimensional time lord is seeking a pro-active, forward-thinking, devoted slave who will attend any interview and take any job gratefully" is frustrating.

I can see the 90% of recruitment consultants smiling at that because “got ya!”, right, but this applies to reading adverts in general – almost every single advert I read is worded identically – when I was searching for a job (which I found) I honestly took days break from looking at the adverts because 1. It reminds me of the general mentality and 2. It’s so repetitive!

We have to read through adverts - if I leave my CV on the job-hunting sites I get called continuously, about one third of the time it’s for something I actually have no experience with, another third for jobs that are 50 miles away, and the rest, well, the attitude of the salivating consultant is a put-off a lot the time too – so reading the adverts is a requirement, really.

Just cut out the unnecessary words – tell us what primary language and experience is required, whether it’s internal development or a software-house, and leave it at that. Last week my brother, ironically a recruitment consultant, wrote “we’re looking for a couple of VB.Net developers, city-based, it’s an Agile environment so like-minded candidates welcomed”…. That’s great!

It's funny really

If you wrote this instead:

"Job: an environment welcoming creativity and employing lateral thinking techniques is looking for a software developer, with good programming principles, who understands abstraction and extensibility and has experience with [insert language here] - to join in."

...and the good software developers will be queuing up for interview with smiles on their faces complimenting your revolutionary advert, knowing this is going to be an interesting place to work!

You mentioned “Lateral Thinking” a couple of times, why?

Lateral thinking is common sense.

Edward De Bono coined the term in 1967, he suggested that we usually think in terms of having a goal in mind and reaching that goal, he called this "vertical thinking". Lateral thinking describes looking at possibilities from many different angles - and applying indirect, abstract and creative thinking in order to achieve a far more developed understanding/solution.

I'd be tempted to call it brain-storming.

In the book "Think and Grow Rich" Napoleon Hill strongly advocates the development of a
"Mastermind Group" - a group of experts in different areas - also common-sense – this is a practical example of how lateral thinking can occur naturally by assessing possibilities with different skillsets/experiences.

In my career I've worked with teams who discuss, think carefully about, and develop, their offering -and people who simply aim directly for a target. In my experience the first group have higher quality, more scalable and more effective products to offer - they were also happier and had much better inter-personal relationships, which is why I believe it to be of value.

If you're interested in finding out more you can read the article on Wikipedia, here:
http://en.wikipedia....ateral_thinking

Edward De Bono's book is available here:
http://www.amazon.co...ateral+thinking

Edward De Bono's company also provide training on the subject:
http://edwdebono.com

Actually, as a programmer applying good principles, lateral thinking happens as a matter of course but that's only one expression of the mindset.

Is This A Good Question/Topic? 0
  • +

Replies To: Can you help me write an article on hiring a good developer?

#2 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 9493
  • View blog
  • Posts: 35,840
  • Joined: 12-June 08

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 10:27 AM

Moving out of the lounge to the cubicle corner.
Was This Post Helpful? 0
  • +
  • -

#3 no2pencil  Icon User is offline

  • Admiral Fancy Pants
  • member icon

Reputation: 5382
  • View blog
  • Posts: 27,350
  • Joined: 10-May 07

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 10:28 AM

View PostRR_Dev, on 23 October 2013 - 01:24 PM, said:

Edward De Bono's company also provide training on the subject:
http://edwdebono.com

& this post isn't designed to drive people to this site for 'training'?
Was This Post Helpful? 0
  • +
  • -

#4 RR_Dev  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 5
  • Joined: 10-December 12

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 10:45 AM

Hey no2Pencil...

I'm not associated with the De Bono group... just offering further thoughts to people interested in lateral thinking...

I'm a VB.Net software developer... De Bono doesn't hire those I don't think.
Was This Post Helpful? 0
  • +
  • -

#5 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7958
  • View blog
  • Posts: 13,571
  • Joined: 19-March 11

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 11:32 AM

You need to practice writing. Writing English a skill, like writing code. This reads like a dump of whatever you happened to think of, in roughly the order you happened to think of it. An article isn't just a bunch of "content" strung together with headers - it should present an idea clearly and (usually) efficiently. A "think piece" can be a little more open, but you'll notice that the "think pieces" that you like usually have a coherent point to them. They pose as "musings", but they're actually carefully cut to suit their purpose. (see Joel Spolsky or Paul Graham)

So you might want to start by working out what it is you're trying to get across, and what you need to establish to get that point across, and make an outline that shows how you're going to cover that ground. Eliminate digressions - anything that isn't directly aimed at your point is getting in your readers' way.

Think also about your target reader. What do they already know? Don't tell them that.

If you find that you're trying to explain everthing in one "article", that's not an article. It's a book.

Finally, the mock Q&A format works okay for a very, very short piece, but it gets very old, very fast. If it goes on for more than a few turns, ditch it and pick another format. Also, you have to be pretty sure that your "questions" are in fact questions that the reader is thinking about. Otherwise, it's just annoying.
Was This Post Helpful? 2
  • +
  • -

#6 RR_Dev  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 5
  • Joined: 10-December 12

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 12:43 PM

Thanks for the constructive criticism Jon - I appreciate you looking at my writing!

After writing that I did think I'd gone off on a tangent too much - I'm going to condense it back down to programming principles, scrap all the ad stuff and Agile comments, and spend a lot more time on it over the next few weeks.

...I'm taking your other comments on-board by the way.
Was This Post Helpful? 0
  • +
  • -

#7 andrewsw  Icon User is online

  • It's just been revoked!
  • member icon

Reputation: 3737
  • View blog
  • Posts: 13,065
  • Joined: 12-December 12

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 02:00 PM

The advice we were given at school about how to write an essay still holds true. Your first paragraph or two should both introduce your subject and provide a summary, or overview, of what will be discussed. It establishes your theme, and a tone. It is second only in importance to the title. This is even more significant in this internet-age: you need to grab your audience!

The concluding paragraph(s) are the next most important, clearly summarising, and concluding, what has been discussed. However, I would not be overly concerned with these until you are closer to finalising your article. By then it should be clearer (to you) what your main points are, and what over-all conclusion you wish to draw.

Linking to wikipedia, or other articles or books may be appropriate considering the subject matter, but I don't think a link to another company is.

jon said:

Writing English a skill

?! :whistling:
Was This Post Helpful? 1
  • +
  • -

#8 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7958
  • View blog
  • Posts: 13,571
  • Joined: 19-March 11

Re: Can you help me write an article on hiring a good developer?

Posted 23 October 2013 - 02:03 PM

I sidtn' day it aws a kills i were gud @. :)
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1