Before I start to pen down the absolutely ridiculous things I have found in the Pakistan I.T industry, I would like to start by saying that this is not a conclusive account of the industry in this region. It is more of an observation acquired through an experience of almost 2 years.
There is no denying some or all of it could be wrong but the general consensus is this happens in majority of the software houses in Pakistan. I would also like to appreciate the organizations that believe in continuous improvement and are doing their best to better their work pracitices.
So, without futher ado, here are the Pakistan’s I.T industry’s bad parts.
1. Offering Low End Salary To Fresh Graduates
This is more of a problem with the small scale companies that run their business through freelancing websites. In Pakistan, private universities usually charge 3,00,000+ PKR for a Bachelors in Computer Sciences. I find it quite offending that a fresh graduate is offered 15,000 PKR as a starting salary irrespective of his technical prowess. My fellow graduates also need to take notice. Know your worth!
2. Paying For Experience, Not For Skill
I have found that it does not matter whether you are good at PHP or Ruby or IOS development, what matters is how much experience you have gained in the industry. For example, knowing Ruby and PHP both, I feel the Ruby skill is a bit more demanding plus the Ruby projects pay you well. However, there is not much difference in the salary of a PHP and Ruby developer, considering they both have no professional experience.
3. Overlooking Outsourcing Cultural Differences
The client base is mostly non-Asian and what attracts them most is how cheaply they can get their work done in comparision to their own region. However, they are not willing to embrace the cultural differences(nor is anyone willing to make them realize). The result, extra working hours, a bit odd scheduling at times, and working shifts on public holidays.
4. Fear Of Experimentation
Mavericks are strongly discouraged. The fear of things that can go wrong keep people and management from experimenting. If it’s been done a certain way before and it worked, let’s stick with it.
5. Lame Coding Practices
The source code seems highly unprofessional and lacks even the most common sensical, widely accepted standards that are expected from professional developers. There seems to be very little focus on architecting/designing a very solid base on which a quality software product can be built.
6. Quality Assurance === Testing
Quality assurance is a very broad term in the software industry and emcompasses almost all of the aspects of a software. However, the benchmark seems to be only the output the software produces. It does not matter if a very complex calculation is using the lamest of algorithms behind the scenes or if you have used custom styled “div” elements to present tabular data in the user interface.
7. Specialization Not Needed
Being a regular reader of blogs, I have noticed the authors introduce themselves as “Laravel Developers”, “JQuery Developers”, “Rails Developers” etc. However, in Pakistan, there is a very broad categorization of developers and those with multiple skills are preferred. Your survival in the job market can become a bit hard if you focus on a specific skill and endeavor to be great at it.
8. Unfit Job Timings
The human body is not meant to live a sedantary life style and I am not a fan of any office timing that goes over 7 hours, especially for a computer programmer. The job of an I.T professional is pretty demanding mentally and physically and pro-longed working hours do not help. Add to that the occasional late sittings and voila! we have a recipe for disaster.
9. Agile Is Fragile
The agile software practices were designed to address a software’s need to respond to change. This could be an external or internal change. Everything else remains in place for software. However, at times, the mishaps are also attributed to agile practices and it is used more as an excuse, rather than a tool to organize oneself. For example, the lame coding practices I mentioned earlier are said to be a result of the agile methodologies because things need to be done quickly.
10. No Concept Of Hybrid Platforms
Gone are the old days when software was built on a single stack only. We are now ushering in the era that can be dubbed as “Horses for courses”. If a particular technology is suited to a specific task and if a project calls to be supported by multiple stacks/platforms, why not go for it.
As I have said, some or all of this observation could be wrong so this is not a conclusive post. Care to share your experience? I look forward to hear yours in the comments section.