The Sistine Chapel Ceiling and Software TalentPosted: 12/09/2011
Michelangelo painted Sistine Chapel ceiling (40×13 meters) in 4 years between 1508 and 1512. It was a huge project. Almost all work was done by Michelangelo himself. Of course, he was not alone while he painted, he had many assistants. Their tasks were simply to prepare his paints, carry ladders up and down, prepare the day’s plaster and etc. Occasionally, he would let a talented assistant to work on a small part of a landscape, or a small figure which is almost invisible. Michelangelo hired and fired these assistants on such a regular basis that none of them could claim credit for any part of the ceiling. Not a great team player, huh?
But why 4 years?
Because, he preferred to work in the most difficult methods and used very difficult perspective techniques for curved surfaces.
Please note that he did not had to use these methods and techniques, they were not expected from him by the customer.
He had to spent too much time on negotiations with pope and his staff. For example, the scheme proposed by the pope was only twelve large figures. However Michelangelo negotiated for a grander, much more complex scheme and was finally permitted. In his own words, “to do as I liked”.
He faced unexpected and rough conditions. Project halted many times due to war with French, and from time to time, due to damp weather conditions
Without his passion and love for his work, this masterpiece would have never been completed.
So let us try to translate this into software development industry. First of all, this example shows us that all great works take time, requires patience and passion. And secondly, having a large team of developers does not mean that you will get the best results in your projects. Sometimes one talent can make a big difference. But be carefull, too many talents may also cause too many troubles.
In my point of view, a software talent is like a good painter. He should have passion and a never ending love for his work. When it is required or if he sees fit, he should be able to act as a project manager, analyst, programmer and even a tester. A gunslinger, a joker, a talent. No need to worry, he will enjoy any level of work as long as you make him feel that its his own choice.
Programming a large project from scratch means collecting and understanding the requirements correctly, then painting the big picture in mind and paper and then putting all to code by following a structured project management process, and sometimes follow extreme programming. For those who work for the businesses, a Software Talent should also have a good business perspective and interpersonal skills as well as being capable of giving more than what is required.
So If you ask me, these are my initial requirements to qualify or distinguish someone as a software talent. Of course there are other interpersonal and technical skills that are required, but I am not going to go too much into details and waste your time. Just a quick example, it should not take too much time for him to write a simple algorithm like “converting a number to words” in a matter of seconds, or even better, he can laugh at this question.
A few words for the recruiters:
How can you know someone is a software talent?
You really can’t.
Most talents prefer to work freelance, and they will try to avoid classical selection methods like taking tests and attending many board interviews. Most preferred method is to get someone to do the selection for you. But still is that someone capable of rating a software talent? So good luck with the selection.
A word for the talents,
“Mediocre minds think alike”,
and if you are currently occupied with a project, never forget the first rule of software engineering, it is really true :
“People resist change”