I was at a startup conference a few weeks ago. I am not your typical networker at a conference, my goal being to immerse myself in the sessions, absorb as much knowledge I can and observe fellow tech people. I like people watching, especially at a conference. It’s for sure, you don’t learn as much as if you were actually actively talking to people, but I am just not there yet. Story for another time.

Anyways, this guy stops me. He comes to me and asks me: “What is the problem with the developers nowdays?” I’ve been wondering the same thing for years so he got my attention. Turns out, he was a business developer from an outsourcing company from India. Came there to “fix people problems and deliver the necessary developers to achieve startup’s dreams”.

While he was talking to me to explain to me his proposal, his business process, the developers’ processes and expertise, my mind immediately went back to my work day to day experiences, with one of the other similar companies we are dealing with.

His selling pitch, was that he has many many developers, with different levels of experience and expertise, that are able to jump into any project, any framework, any programming language and build it for you. Sounds good right? What else would you need? Hmmm….

You need them to build with you, not for you

Requirements, technology and business processes, change very fast, and it’s almost impossible to be able to define them properly, from the beginning. Yes, GOODBYE WATERFALL! Business requirements change fast, and while you have chosen a particular technology, framework and programming language, as a business user, as a project manager, you need to have support for solutioning, feasibility and overall reality check of the requirements against the platform and timeline and budget. Context, if you will. We, business users and project mangers, have a problem and it’s developer’s responsibility to help us, not only implement things, but also, advise, propose a realistic solution for the problem and explain into a language that somehow makes sense to everyone.  We are seeking partners, even when we are delegating work, by outsourcing.

You need them to know it

You need them to know the platform. I am a web developer, by beginnings and previous experience. So, I understand the ability of the a developer to switch, to learn and to be proficient in multiple programming languages and frameworks. However, this is not a applicable for any developer out there.

This implies passion for the craft, this implies love and curiosity for the “why” and “how” of the many programming languages, this implies adaptability and this implies, more than anything deeper understanding of the basics. Everyone can learn how to use a CMS, how to use a library, etc. But if you don’t have a deeper understanding, or are curious to know why and how it works, at the very basic level, you will fall in the trap of always building in the same approach, no matter the programming language and platform. And then your code will not be secure, will not be efficient, will not be reusable and extendable, without further  “hacks” to it.

The idea of taking any developer and throwing him in any language, no matter his understanding, not only scares me, but also worries me and at times, in the day to day work-life, frustrates and infuriates me.

You need them to want to be there

Motivation and passion. I don’t know how to stress this enough. Yes, everyone should know, in today’s age, how to code. Anyone should understand the logic, the reason, the why and the how. However, more than just that, like with any other job, be there. Believe and be passionate about what you do. It doesn’t matter that you are in an officially “9-6pm” job, that you do freelancing, you work for a startup or you work remotely, as an outsourced or in-house developer. You provide services that, in one way or another, benefit the users. The end users. The customer.

Believe in the product and deliver results as best as you can. And NO, I am not saying work overtime, or work more than everyone else. I’m simply saying, when you are there, give it your all, and make sure you as well, from that small corner of the office or the world, have the end customer in mind. This is how you progress, how to become better at your job and how you achieve satisfaction in your work life.

 

Coming back to my little story, I want to emphasize, this is not an issue I have with outsourcing companies or with India companies. Not by far. Is just an anecdote that reminded me that we should treat developers, like what they are. People. With emotions, with lives, inside and outside their office, with experiences and expertise. But in the same time, never ignore or misunderstand the technology world we are living in or the more and more demanding end-users(demanding in a good, progressive way).