What makes a great software development professional? How can we identify them? Is he the one drinking copious amounts of coffee with bloodshot eyes in the corner? Is she the one hunched over a laptop with giant headphones non-verbally saying, “DO NOT DISTURB”? Are they the introverted ones who speak only to improve the silence? How can we identify them? How do we know they won’t disappoint us? How do we know YOU won’t disappoint? Have you left a trail of clients baying for your blood? Are the developers maintaining your code secretly cursing the day you were born? Even worse, are they openly cursing the day you were born? To your face?
Entering into a software development contract is like negotiating a marriage. You probably want to think long and hard about who you’re getting into bed with. This is going to be a long relationship. A relationship you might regret agreeing to in the first place. Are you the kind of person people regret starting the journey with? When faces are contorted in rage and fingers are pointed to chests, are you still someone whose abilities still inspire confidence? In short, “Are you a professional?”
I am going to steal a paragraph (or four) from the Software Developer’s Life Manual, because I don’t think I could say it any better:
“Simply put, a professional is someone who takes their responsibilities and career seriously and is willing to make the tough choices that have to be made—often at their own expense—for the purpose of doing what they know is right.
For example, imagine what you’d do in a situation where you’ve been asked to cut your normal quality standards and ship some code as quickly as possible. How do you react in this situation? What if you’re repeatedly asked to work in this way? Can you stand up and do what is right, even if it may end up costing you your job? What principles do you stand for? What quality bar do you personally set for your work?
A professional is what we should all strive to be. A professional is someone you can count on to get a job done and do it right, but a professional also doesn’t just tell you what you want to hear. A professional will let you know when something isn’t possible or the path you want to proceed down is wrong.
A professional is someone who may not have all the answers, but thoroughly studies their craft and seeks to hone their skills. A professional will freely admit when they don’t know the answer, but you can count on a professional to find it.”
So, based on that description, are you a professional? If you read that and you remembered that one(or four) projects where you didn’t behave like a professional, fear not, do not lose hope. We’ve faced the same challenges. We’ve had egg on our faces enough times too. We’ve had projects that have gone very badly, the kind that leave people secretly cursing you, and we’ve learned and gotten better at what we do.
Everyone was a beginner at some point, and that point can be a lot less painful if someone told you what you needed to learn. Everyone wants to be perceived as a professional. This is why we started the Craftsmanship Trainings. It’s not enough to just write code. It has to be good code. It’s not enough to just finish the project. You have to finish well. It’s not enough to be just good enough, you have to strive to be the best.
iHub Consulting would like to invite you to the next of the Craftsmanship Trainings at the iHub, November 19th, 2015 from 9:00 AM-12:00PM at a cost of KES 1000.
The training is open to anyone involved in the software development process. Software development trainings are usually about, well, software development. However, this next one isn’t. We’ve done a lot of trainings on how to write good code and using various technology stacks, we’ve talked about DevOps, Git flow and best design practices. All this time though we haven’t talked about what makes an individual a good software developer.
The question every developer has to ask himself/herself is:
If technical ability is the primary characteristic that gets someone the job, what keeps them on the job?
Our next training will cover just that. What skills does a software developer need, other than the technical ones to survive?
Please sign up here if you are interested in joining us.