Software Engineering in Pakistan
This post is in response to a blog post by Ali Shah, in which he talks about problems faced by software engineers, developers, and consequently by the organizations, in developing quality software. I have decided to keep the focus on Pakistan in order to keep the scope limited, because, one can write a book on this topic from a global perspective.
Why does a software project, or a product, fail? I can come up with several reasons after thinking for a while, some of which are as follows,
1. Incomplete requirements specifications,
2. Incomplete/inaccurate/inadequate design specifications,
3. Inefficient development methodoligy/process,
4. Incompetent project manager,
5. Incompetent developers,
6. Lack of quality assurance and control.
If each of the above is considered as a factor deriving the success of a software project, then, in Pakistan, all but one of the factors are either totally ignored or not given it’s due attention. The only factor that is given importance is, developers. Right from the first day of an undergraduate software engineering (or computer science) degree program, the students are taught only one lesson: Improve your programming skills. They are taught everything from advance uses of recursion to the taboo of goto command, to the most complex algorithms in computer science. Hardly any of my instructors stressed upon the importance of a good software development process, or the need for quality assurance, until I was in the graduate school. As a result, most of the undergraduate degree holders in Pakistan are very good programmers, but hardly anyone of them realizes the difference between being a programmer and a software engineer.
When the time comes that the programmer has gained a few years of programming experience, she deserves a promotion/raise. There happens to be a vacancy for a project manager/system analyst/requirements engineer (if all of these positions exist) in the company, and being a respectful programmer and a faithful employee, she is promoted to that available position, without any significant experience/knowledge in that area. This is where the problem starts. The project manager, although a hard working person, is incompetent. She doesn’t know what it takes to successfully manage a software project (in most cases). The result: the project fails, or is seriously delayed, exceeding the budget, and we need a super-hero to save the project, as mentioned by Ali in his post.
Moreover, there is a serious lack of standardization of the process within an organization (or so it seems). If suppose, after few years of operation, a company still manages most of the projects in a chaotic fashion, it’s day-to-day operations are performed in an ad-hoc manner, and finally, a miracle is needed to complete the projects, then it would be no surprise if the company goes under without a warning. There is no set rules for spending time on a particular phase of the project and the development team seems to be eager to start coding without spending enough time on requirements, analysis and design phases, which results in developing the product with incomplete or incorrect specifications, and the project ends up being over-budget.
Finally, there needs to be quality control department in every software development organization. Some of them do, but are seriously ignored and under-paid, resulting in lack of people who know about the field. Even though programmers in Pakistan are very good, they don’t follow a particular standard. Everybody write code in their own style. Even within a team, you can find several styles of code writing. This makes the debugging and modification very complex, again resulting in the failure of a project. A quality control department not only checks the final product for bugs/erros, it also enforces and monitors the coding style, and eventually, standardizes the entire development process, from concept to product launch.
It is probably because of these issues that the major projects in the US are being outsourced to India and not Pakistan.
I would agree with a few things and won’t with some other. First of all, I have read many articles all of which indicate that the problems you have specified in the beginning of your post are global (i.e., it’s the field to blame and not Pakistan).
Secondly, unfortunately we aren’t good in algorithms and computer science either. There is a general experssion of uneasiness shown by many programmers (including me) when you tell them to write, for instance, a tree control or a data grid. The first response is “can’t we download it from somewhere?”
On the other hand, I totally agree with the promotion thing. People get promoted because they had x number of years of experience and now they deserve promotion. I would like to ask the management, “Is there a defined skill set for the next level in hierarchy?” “Has the other person shown the ability to take on the challenges?” By promoting a very good programmer (who doesn’t exhibit good management skills) you are shooting yourself in the foot: you are acquiring a very bad manager and you are loosing a very good developer. I would rather advise to compensate the guy; give him a bonus; send him on a vacation; give him a free ticket to some resort; but please don’t promote him.
Lastly, the quality of India vs. Pakistan is an interesting topic. IMHO, on average we are way ahead of India in terms of quality because a large number of substandard software houses exist in India. I may be wrong but my opinion is based on the projects that get re-directed to Pakistan from India because of low quality. I have seen a few companies trying to make sense out of Indian code. I, myself, however, never worked on any such thing.
If you ask me two basic activities that can tremendously help in improving the quality of work, they would be:
-> Code Review
-> Project’s Postmortem (once we are done with development and testing)
Thanks to both of you guys, but will you plz list some practices which a developer has to follow while developing some product to enhance its quality as specified by you guys.
Mobeen, I think it takes more than just developers to make a quality software. The quality has to be maintained across the entire development process, starting from analysis to testing to deployment. However, to answer your question, developers should play their part in developing quality software by writing quality code. They should be consistent, follow the standards, and take care of small but important things such as proper commenting of the code.
hi sir.
i m a MS-IT student in Peshawar.
now i m confusing in choosing “software Engineering” for me in research area. i m not a programmer nor can write codes/scripts
so what i choose with respect to ms research & market.
0313 9586534
only to guidence me
Aoa omar
can u pls tell me any 3ree flop s/w project in s/w industry??
Well, I desire to be be a good software engineer. can anybody guide me what should I do to be one, remember i am looking for the best institue in Pakistan for SE. So come up with results, and show me the way to the brilliance as you all are. Consider me a younger brother and please help me out. I am pleading to all of you. Please Email me at PEACEMISSES@hotmail.com or IRFANSHAH444@YAHOO.com if you are intrested in helping a kid.
Dear irfan u should first look for ur
interest , u should first know what
software engineering is and either u r
willing to engage ur self in that field
for the whole life.
For doing ur graduation u can choose
BCSI FAST, karachi university,GIK
and or any other university of
that standard.
Im not a software engineer or programmer. but i just want to ask a question .have you ever given a thought to the lack of practicality in the education system of software engineering! i mean how many times have u been to a software house when u were a student.what sort of interaction did u have with real working enviroment. doctors have their wards during third year by the end of their studies they r quite familiar to their WORKING ENVIRONMENT.its not just wid enginnering!! but still… anyone of u want to say something about this………
hi,
I practiced some programming languages in my school and college age, and my mind advanced to do computer related engineering.
Now i am doing software engineering here in pakistan. while studing here, my heart and feelings are so much disorted. because universities are doing only “money collection job”. staff is not interested to teach, and what they teach is old enough. students have no concepts so they try to copy eprinted materials.
our target now is not to become a good software engineer but to have good GPAs and a degree one day.
Hi
I want to know is it possible for someone to access my computer desktop and hard drives while I am online chatting on MSN or IRC?
I am using window visa .
Fatima
Pakistan
u install a chatting software his name is (msn chat box ).this is easily available on inter net.
yes it is posible but first u will conform it.when he want to shar it with u.rnthanks
Yes its possible fatima, nThrough remote assistance as well as remote desktop tools of windows utility ans also its possible through other saoftwares like Team viewer, etcnnRegardsnSadique alin03147329172
HI,
I want 2 asked that from which university or insitute I start software engineering ???
plz tell mee complete process ..!
if u are live in lahore punjab uni is best for u.and 2 option is uni of central punjab lahore.and 3 option is uni of agriculture fasilabad.
PLEASE TELL ME FRO WHICH UNIVERSITY I START MY SOFTWARE ENGG IN ISLAMABAD
WAQAS
sir i want join softwere engneer how can i do plz tell me
i want it computer engenair for some software help me.ites mean need conseltant it engener how help me.i pay if creat some software for my ideai
plz conectect me
send me problems of softwares.
http://www.haker_uaf@yahoo.com
i am a software engg.please share with me an problem abou software engg.i try my best to solve this problem.
HI
SOFTWARE ENGG IS BEST FOR YOU IF YOU ARE INTRESTED IN THIS FIELD.SOFTWARE ENGG IS VERY TOFF FIELD OF COMPUTER SCIENCE.IN FUTURE THIS FIELD IS VERY POPULAR .EVERY CODDER IS NOT A GOOD PROGRAMER.
thx arfta me too confuZ to choZe bsc in software enJNrng , ,
or b cs so sjst me bst am frm rawlpindi and wants to join pak army or airfprce later
HI SIR.
SOFTWARE ENGG IS BEST FOR YOU IF YOU ARE INTRESTED IN THIS FIELD.
SIR I WANT JOIN SOFTWARE ENG HOW CAN I DO PLZ SIR TELL ME
MY CELL PHONE NO 03013993629
Umar , how many years are you working in software ? In fact your statement that Indians are bad programmers shows that you are just another novice. Patriotism and bad mouthing is not going to help but good work will speak automatically.
Work hard and furious and deliver good quality and i am sure automatically work will come your way.
heyyy…i am confused between 2 fiels …BSCS or physiotherapy…..interested in both…which is a better career option..plzzzzzz replyyy
Hi everyone, nice productive discussion. I have made a forum for all software developers of Pakistan. I will like all to come and share their ideas and help others to exceed in Pakistan software development field. http://www.softwaredevelopers.com.pk
Regards
Nasir Hussain
hi i want to know which university is best for software engineering? i want to do this.plz
what mean of flop miss sana…..
if u mean that did not servive in real world.
so when the programmer used C language so there was lack of object oriented programming in C language.due to this reason Billion dollars project was failed and programer moves form the C langueage to C++ language.which is combination of structure language and object oriented progrmming language.after this JAVA was come whch is plateForm independent….most of programmer use JAVA due to this reason….
Dear Brother
first u have to look about ur creativeness if u have ability to creat some thing then u go to software engineering…..
and for my point of view BS in SOFTWARE ENGINEERING islamic internation university is good…for BS in SE….
and ont wast time….take ur own decision……….
AizazAhmad1989@gmail.com……ID
salam ……nany brother help me.from where i shall start my study .and how i work.and what could i do to become a good programer.nvicky
It’s interesting how many comments this article generated, and it’s still generating!
hi all i have graduated recently .did my bscs hons. surprisingly i have no idea or clue that where i shud move to … i’m not the coding or programmer type i have never been gud at it . the thing which interested me was networks and software engineering.. i cundt go on with networks b’cz there is master’s program for it in lhr..anyways what i want to ask is if i move towards s/w engineering side would i still have to code and program? or is it just testing,designing and implementing test models that i have to work upon ? plz guide me my mail is shahrukh.khan@msn.com thanx
and yea 1 more thing .. does s/w engineering consists of q/a(quality assurance)???
aslam i am mudassir ikram and i wnat to do softwer enng but i wnat to know which is the valueabl bs softwer eng or be softwer eng and tell me what is the differ b/w bs or be and which is better thing for paki students
aslam i am mudassir ikram and i wnat to do softwer enng but i wnat to know which is the valueabl bs softwer eng or be softwer eng and tell me what is the differ b/w bs or be and which is better thing for paki students
aslam i am mudassir ikram and i wnat to do softwer enng but i wnat to know which is the valueabl bs softwer eng or be softwer eng and tell me what is the differ b/w bs or be and which is better thing for paki students
aslam i am mudassir ikram and i wnat to do softwer enng but i wnat to know which is the valueabl bs softwer eng or be softwer eng and tell me what is the differ b/w bs or be and which is better thing for paki students
aqdas,m doin software engnrng,wot ma problm is,that m not satified wid 3 to 4 assignments related to programing n only one project per semester,i wnt to do sum thing having practical approach,plz guide where can i get info n proper guidance.
sir i m from pakistan. i have passed the examination of F.Sc in medical but i don’t like medical or theoratical study. i want to learn some techanical study for example software engineer,etc..
is that good for me. what is its scope in pakistan and also in afghanistan.how long is this and how difficult. and which university is good for this.
plz sugst me soon.
hi everbody, can somebody tell me about chosing software engineering.Any how in my opnion its future will be bright every where if we people do work hard wajid ali from swat .
software engineering
Â
plZzzzzzzzz tell me the diffrance btween BE software engg and BS software engg??????????????rply fast
hmmmmm….i also want to know the diff.????????????
BS Computer Science is based on both software and hardware but on the other hand Software engineering is totally based on Software,,,Software engineering is too difficult than computer sci,,,
please guide me i have done fsc with pre-enginering…..not with ics…..i dont know extra ordinary about computer…..should i choose software eng.???????
Don’t choose it..If u have no interest in IT field..
Hi!
software engeenering is better in pakistan forign countries……?
Which is better riphah or Bahria
i also took admission in software engeneering ..
http://www.adsheat.com
pakistan largest online free classified site..
post free ads
hye i want to know tha what is the scope of software eng in pakistan and other countries also..plz tell me
hi sir i want to ask 4rm u that how we can learn programing im doing bscs frm degree colege larkana but we havnt any good teacher for this>plzzzzzzzz give me tips