What’s the big deal, Mr/Ms Programmer?Filed Under: Weekly Tuesday Dose of goodness
In this article, we’ll talk about the mindset of a typical software programmer.
First of all, I have to make a point clear. I’m not against developers or programmers using any particular languages.
Next, most developers suffers from the same self-flattering and self-sophisticated more or less for being able to do something that others can’t do generally.
The article will focus on this self-flattering and self-sophiscatedness traits of developers across the board.
Wanna know more? Read on…
So are we are, in a world where IT is so prevalent and common. Hardcore programming gradually becomes a niche and integration and aggregation programming becomes more and more popular.
Let me just make a short definition on Hardcore, integration and aggregation programming.
Hardcore - C/C++, OS developers, low level graphics, dealing with shaders, dealing with SSE and assembly language as well as maths.
Integration - Low-level APIs are already written. An integrator simply take the entire API and integrate with other APIs into their own application, leveraging other’s strengths to do their dirty jobs.
Aggregation - High-level APIs are already written. Things appear in visual components and are almost a product by themselves. An aggregator can combine multiple components to form a service. Such as combining google maps, facebook and twitter to provide a push service for good food and food feedbacks in Singapore. Google maps, facebook and twitter are finished products; not just APIs.
As we’re currently in the age of Integration and moving towards Aggregation, the same old arrogance in programmers still remain.
So here comes the big question - what’s the big deal?!
I’m a programmer myself, an architect, as well as system analysis. I manage my own projects with time lines, priorities and schedules. My game engine project has been on for the last 7-8 years. I’ve written almost 200,000 lines of codes throughout this period. So what? What’s the big deal?
I do not make a fuss out of my achievements or my technical skills.
I’ve also been a hardcore, as well as integration programmer in areas like Java, J2EE, C/C++, DirectX, SSE, C#.NET and so on. I’ve realised one thing; I need a focus to make something for someone, instead of nothing for everyone; my work needs to be accumulative, reusable and reliable.
Soon, it becomes a matter of gathering user requirements and designing/crafting processes carefully with as much considerations as possible. A process can take up to 4 weeks to implements, 3 weeks spent on design and flow analysis, only 1 week was spent on coding.
Even during coding, the requirements are divided into very small tasks where each step can be documented in each of the methods. Adherence to the design is of paramount importance throughout every mini-SDLC.
So where does this leave the programmers? What’s the programmer supposed to do?
1) Adhere to the steps described in the methods without questions
2) Apply conscious problem solving techniques as you code
3) Translate requirements accurately and responsibly into the language of development
4) Raise questions early before development
5) Prohibit unwarranted changes and additions to the code or requirements
I seriously wonder, does any of the above make a programmer a big deal compared to the rest?
NO! Of course not!
In fact, a developer can be thought as a translator-cum-typewriter. To excel in their jobs, they have to translate their requirements into the right codes. (not the best codes in their perspective)
So who should be the ones to govern the requirements? The technical lead, architect and the project manager! Developers should know their place and avoid doing other people’s job when they can’t even do theirs (translation of tasks into codes) properly!
So since, a programmer or developer’s responsibilities are so clear cut, what’s the big deal?!
I cannot imagine a real life international translator that performs speech translations between 2 nations being haughty and arrogant.
Just as the developer needs to solve problems technically, a translator also need to translate whatever that’s being transpired into politically correct/sounding sentences. Now this is certainly not an easy task.
Conclusion
The next time if a developer tries to be haughty or arrogant, try to remind him or her that jobs of every industry is as challenging as their straightforward jobs. There is therefore, no reason to be condescending towards anyone.
Signing off,
Jeremy
- Permalink
- Admin
- 14 Jul 2009 4:38 PM
- Comments (6)
July 14th, 2009 at 5:41 pm
from the tone of your article, it seems like you have met a lot of these ‘arrogant b#tards’
translator-cum-typewriter! Great one!
July 14th, 2009 at 5:50 pm
Hi Anteater,
To be honest, I’ve met many. Some are conscious of it while most are completely delusional.
On the other hand, I have to apologize a little for ranting all the way out. Didn’t really feel good afterall.
It’s just that sometimes that condescending tone of a programmer really turns me off.
One thing I’m almost certain is that, such developers usually cannot listen properly. (Whether it’s requirements or normal speech)
What do you think?
July 15th, 2009 at 5:36 pm
would you call aggregators as programmers?
July 15th, 2009 at 7:57 pm
Good article.
Already last minute requirements from supervisor in internship irritates me.
July 15th, 2009 at 10:23 pm
That will depends on how much efforts they have put into a overall technical design.
If it’s just a stitch job, it’s still some work, just that there is no real work done in terms of development. However, in order to stitch, one still needs to know how to program, therefore I think it’s still fair to call aggregators, programmers.
It’s just that do-little-claim-a-lot kind-credit of attitude that pisses me off big time.
July 15th, 2009 at 10:24 pm
Nice to hear from you Cannie.