A Knowledge & Competencies Checklist for Software Project ... - iPage

Report 3 Downloads 27 Views
A Knowledge & Competencies Checklist for Software Project Management Success What software project managers need to know and do to be effective Lawrence Peters SCI Limited, Auburn, Washington, USA, and Universidad Politecnica de Madrid, Software Engineering Department, Madrid, Spain [email protected]

project to project and often changes during the conduct of a project, the authors of the nearly 600 published reports studied felt they had been successful and reported on it in various journals [3]. Keep in mind that today, success goes beyond meeting requirements, schedule and costs.

Abstract—By their very nature, software projects require someone to coordinate and direct the efforts of the development team – the software project manager. Although this role has traditionally been viewed as a technical one, there is growing evidence from many sectors that technical skills are only part of what a software project manager needs to be effective. This paper delineates these knowledge areas and notes how they impact the software project. Keywords; software engineering; management; essential knowledge areas

I.

software

III.

Some years ago, researchers noted that people from a broad range of backgrounds chose software engineering as their profession [6]. One of their findings was there was something about developing software that their personality was compatible with. In other words, to some extent, they were born to it. Such is not the case for software project managers. Although many have been selected from the ranks of high performing software engineers to lead software projects, this may not be a cost effective practice. Table 1 lists the five primary functions needed to manage software projects [7, 8, 9, 10]. Note the strong presence of interpersonal and communication skills. These five primary functions comprise the “traditional” (control) focused view of project management. While these skills are necessary, they are not sufficient to successfully conduct a software project.

project

INTRODUCTION

For several decades, the software engineering community has attempted to improve its ability to deliver quality results on time and within budget. To that end, several dozen programming methods and techniques have been developed, published and put into use [1] with disappointing results showing only a one source line per programmer per month improvement in productivity over a 30 year period [2]. Given such a poor return on investment, it appears that the “software problem” does not lend itself to technical solutions. Turning our attention away from the knowledge needed to write software leads us to conclude that perhaps the management of software projects may be a beneficial adjunct to the technical activities involved in software development. There is growing evidence the knowledge of how to manage software development may enhance our success rate.

TABLE I. Category

Plan

II.

EFFECTIVE SOFTWARE PROJECT MANAGERS

SUCCESSFUL SOFTWARE PROJECTS

A study of successful software projects was recently published [3]. It sought to help software project managers’ chances of success by identifying the characteristics that successful software projects had in common. This was accomplished by analyzing published papers that reported on successful software projects. The research found a common set of factors were present at the start of these projects and other factors were present when the projects had completed. None of these factors were technical in nature but one, “competent software project manager,” lends credence to the proposition that the software project manager plays a critical role in the conduct of successful software projects [4, 5]. This raises the question of just what knowledge and skills must a software project manager possess to be competent thereby increasing their chances of success? While it can be argued that perceptions of “success” vary from stakeholder to stakeholder,

Schedule

Control

Staff

Motivate

241

THE FIVE FUNCTIONS OF PROJECT MANAGEMENT Description

-Tasks and subtasks -Synchronized with the project schedule -Shows how each event will be achieved -Done in collaboration with the team -List of dates of project events -Supported by the Project Plan -Done in collaboration with all involved -Continuous monitoring and analysis (e.g. using Earned Value Management) -Apply corrective action to achieve plan -Acquire skilled, knowledgeable team with compatible personalities and complementary skills -Resolve intra-team conflicts -Review/evaluate team and individuals -Help develop individuals’ career goals -Engage team to perform well on project

IV. SO WHAT KNOWLEDGE AND COMPETENCIES DO SOFTWARE PROJECT MANAGERS NEED TO BE SUCCESSFUL?  

The five basic functions (Table I) represent the foundation for software project managers upon which to develop the competencies they need to be successful. The fact that perceptions of success vary during the course of a software project is only one aspect of the complexities a software project manager must deal with. To better understand the competencies needed to complement the basic five functions, it may be useful to identify what knowledge and skills a prospective software project manager must possess in order to, potentially, bring a software project to a successful conclusion. In a recent study related to this issue [11], thousands of advertisements worldwide for project managers were analyzed to identify what knowledge and skills industry sought in project managers. The companies placing the advertisements ranged from multinational conglomerates to specialized contracting firms. In order to determine if there were differences between industries, the advertisements were separated into six industry categories. Significantly, the software industry was the only one that required significant domain specific skills. All the advertisements required communication skills, management skills and other, non-technical knowledge and competencies. From a recently published work [3] which analyzed what factors successful software projects had in common, we know what factors improve the chances a software project will be classified as successful. One significant one was a “competent” software project manager. Some of the knowledge categories critical to being a “competent” software project manager are listed in Table II. Notice that these knowledge areas are “soft” in that they are not related to strongly technical topics. This often presents a problem to strongly technical people who are put into leadership roles when their previous success had been dependent upon solving problems by obtaining the “correct” answer. Once they are in project management, “correct” answers are neither obvious nor readily identifiable and there may be several. This causes many to leave the ranks of management after a relatively short time [12]. Adding to the difficulties software project managers experience is the fact that the path into software project management is rarely clearly spelled out and new managers are rarely trained prior to assuming their new position [12, 13]. V.



authority to benefit the company, stakeholders and advance the profession. Mastery of the functions in Table I. Being prepared for the transition from technician to manager. This includes realizing that the software project manager is more of a coach than a technical contributor. Not realizing this often drives people who make the transition to head back into the technical realm [12]. Receiving adequate training in not only the five functions of software project management (see Table I) but the other, complementary subjects as well (Table II). VI.

CLOSING COMMENTS

Software Engineering has had a relatively short existence as compared with other engineering fields. During the 50+ years it has existed, it has accomplished a great deal. However, the profession is still plagued by a lack of certainty with respect to project costs, delivery dates and the quality of what is delivered. Today, there is a growing recognition that our predisposition with technology as being the remedy for software project uncertainties and failures may be misplaced. We are beginning to recognize the importance of the software project manager’s role as a major determinant of project “success.” Increasing the “soft” knowledge and competencies that software project managers bring to bear on a software project can only improve software engineering’s performance with respect to certainty of delivery dates, content and cost control. Software project management is, primarily, about dealing with people, their idiosyncrasies, cultural preferences, value systems differences, age, work ethic, individual value systems and lifestyles. This makes software project management more like conducting an orchestra than commanding troops TABLE II.

KNOWLEDGE AND COMPETENCIES CRITICAL TO SOFTWARE PROJECT MANAGEMENT SUCCESS [8,9,10,11,12] Category

Estimating

WHAT MAKES A SOFTWARE PROJECT MANAGER COMPETENT?

Communications

The space available here is not sufficient to completely answer this question but a few key points can be made:  First and foremost, the person must want to be a software project manager for the “right” reasons. The fact that the pay may be better, the benefits better and other attractive perquisites come with being a software project manager can cause some people to make the transition into software project management. These represent the “wrong” reasons often resulting in frustration, disillusionment, and a succession of failed projects. Stated simply, the “right” reasons include the acquisition and use of

Personnel Management

Negotiation Collaboration

Cultural Sensitivity

Accounting

242

Description

-Use of various estimation methods -Use of Reference Class Forecasting -Written expression (e.g. status reports. Proposals) -Presentation skills -Ability to evaluate and direct the actions of individuals and teams -Labor law -Obtain consensus among stakeholders -Awareness & response to the effects of culture(s) represented on the development team -Sensitivity and response to value system differences -Cost allocation, general and administrative and overhead expenses

[8]

REFERENCES [1] [2] [3]

[4] [5] [6]

[7]

Rico, D. F.,“Short history of software development methods,” posted on the web, 2010. Jensen, R., “Don’t forget about good management,” CrossTalk, p. 30, August 2000. Ghazi, P., Moreno, A., and Peters, L., “Looking for the Holy Grail of software development,” IEEE Software, January/February, 2014, pp. 9692. Boehm, B., Software Engineering Economics, Prentice-Hall, Englewood Cliffs, N.J., 1981. Weinberg, G., Quality Software Management, Volume 3: Congruent Action, Dorset House Publishing, New York, NY, pp. 15-16 Zawacki, R. A. and Couger, J. D., “Evaluating performance appraisal systems for IS personnel,” Proceedings of the ACM SIGCPR Conference on Management of Information Systems Personnel, April, 1988, College Park, Maryland, pp. 144-147. Peters, L., “Successfully Managing Software Projects,” 2-day professional development seminar, Software Consultants International Limited, 2014.

[9]

[10]

[11]

[12]

[13]

243

Peters, L., Getting Results from Software Development Teams, Microsoft Press – Best Practices Series, Redmond, Washington, 2008. Peters, L., Managing Software Projects: On the Edge of Chaos (working title), eBook, Software Consultants International Limited, to be released September, 2014. Kerzner, H. R., Project Management: A Systems Approach to Planning, Scheduling and Controlling, 11th edition, John Wiley & Sons, 2013, New York, N. Y. Chipulu, M., Neoh, J.G., Ojiako, U. and Williams, T., “A Multidimensional Analysis of Project Manager Competences,” IEEE Transactions on Engineering Management, Q3 2013. Tarim, T. B., “Managing technical professionals: When to know to transition from technology manager to individual contributor!,” IEEE Engineering Management Review, Vol. 41, No. 4, Fourth Quarter, December, 2013, pp. 3-4. Katz, R., “Motivating Technical Professionals Today, “ IEEE Engineering Management Review, Volume 41, Number 1, March, 2013, pp. 28-38.