TechViews

Software project management in country faces crisis

Md Anwarul Kabir

A few months ago, renowned computer scientist of the country Prof Zafar Iqbal in one of his articles published in the Prothom Alo had predicted that local software industry would face crisis in human resources within a short span of time. He said Bangladesh would have to invite Indian computer programmers to resolve the looming crisis. Indeed, the present picture of the country's software industry supports what he staked out. My recent survey, which covered twenty of the country's leading software firms providing outsourced services, reflected this reality. Eighty percent of the firms surveyed said that they are in real crisis in recruiting competent programmers as well as managers for their projects. This is largely due to the reluctance of many of the talented students over the last five-six years to pursue computer science courses at undergraduate level. In fact, over the last few years most of the brilliant students opted for electrical & electronic engineering or telecommunications engineering as these subjects sold like hotcakes on the local job market. This was because mobile operators needed a huge number of engineers for installing base stations countrywide. The situation, however, has changed as most of the carriers have completed their base-station installation phase. For obvious reasons, they now need a handful of regular staff for operation and maintenance. On the other hand, in the realm of software development, the situation has become just the opposite. Although the exact rate has not been found, my survey has revealed that the growth of outsourced jobs for local software development sector has dramatically increased over the last few years. Many software firms are now working on software development projects outsourced from the USA, the UK and other Western European countries. Besides, due to globalisation, the demand for software systems for our own market has also increased further. For this, we need a large number of competent programmers and other computer experts along with efficient software project managers. Most importantly, for ensuring quality and efficient software products, we must put emphasis on efficient software project managers. An efficient software project manager always tries to ensure quality end products following software development standards like CMMI (Capability Maturity Model Integration). Unfortunately right now, Bangladesh lacks such software project managers to fulfil the requirement of the industry's growing demand. It may be noted that unlike project managers for other engineering products, software project managers require some extra qualities. Specifically, making a good estimate of the effort and time is crucial for software project management as the budgeting and scheduling of a project mainly depend on this. The effort calculation in other engineering projects is straightforward but such calculation in software development projects follows fuzzy logic. Moreover, the efficiency of all programmers is not on a level. Although some standard methods like COCOMO (Constructive Cost Model) are useful in this regard, these are not fully mathematical procedures. Rather, many parameters used in these methods are subjective and derived from past experience (or historical data) of the individual manager or the software firm. One amazing thing in effort calculation is that empirically it has been found that in software projects underestimation is better than overestimation. Project activity planning and risk management are also crucial issues for a software project manager. Many software projects fail due to inefficient project planning and ignorance of possible risks. An efficient project plan must address: a) feasibility assessment b) detailed costing c) detailed scheduling for the software development life cycle d) resource allocation e) coordination f) monitoring and evaluation criteria g) software quality assurance methodology. During the planning stage, possible risks should be identified and classified into different categories based on their possible impacts on the project. Moreover, in this case a project manager must be proactive and chalk out possible strategies beforehand with a view to resolving possible risks if those risks become reality. Ideally, a software project manager should possess versatile qualities. They should be excellent in managerial science as well as software engineering. For example, selection of an appropriate process model for a software project relies on various factors such as the nature of the end product, strength of the firms, willingness of the clients to provide time for the project, etc. Unless an appropriate process model has been chosen, the risk of project failure is very high. A software project manager should also have excellent communication skills as they need to communicate frequently with all stakeholders of the project as well as the software development team. Monitoring and evaluation, the generic activities of any project, are also relevant to software projects but these require some additional technical know-how, specifically designed for the software development. As Bangladesh is relatively new in the arena of software development, we have to work hard to minimise our deficiency. Otherwise we will lose the inflow of outsourcing jobs in this field. In this context, the involvement of academics in software projects run by the industry may contribute much to improving the quality of the software development projects. The academic institutions that impart computer science course should also give more emphasis on software engineering and software project management in their curricula. The author is an educationist, teaching computer science at AIUB and is a freelance writer.