Software Project Management: Beyond Methodologies
Tempo de leitura: 6 minutes
Luckily for all those not involved with researching and developing work methods, there are models and references for complex software processes—at least, that is, for the most common processes, such as development, testing, customer support and project management. For the latter, the Project Management Institute (PMI) provides the market with the PMBOK Guide (A Guide to the Project Management Body of Knowledge) and several educational resources. The available material is very good and the training resources, complemented by a certification process, bring added value by assuring that the professional mastered particular concepts and techniques, and had a certain exposure to practical work. There are also more and more materials and frameworks targeted to agile approaches, helping teams tackle larger software development scopes.
Such a positive standpoint sadly forces us to observe the negative aspects of this reality and the trends it may cause. As I have seen during my almost thirty years of experience in the software cycle, trends come and go, though they usually leave some form of legacy that is, naturally, lesser than the excitement of their peak periods. In the last decade we experienced the project management trend, with a vast proliferation of courses, books, consultants and certifications, providing professionals and companies with better approaches and methods for managing the core of large software development and services: projects. However, without practical experience, this flood of information often builds a bubble of expectations regarding the possibility of forming project managers in classrooms.
Companies are living organisms that are highly complex due to the interaction between people, tools, procedures, communications, policies, cultures, equipment, technology, regulations, investors, competitors, clients and numerous other factors. A physician studies mostly theory for four or five years, goes through a hands-on internship to get a diploma and then still faces another two-year or so residency for specialization; in much the same way, one cannot be expected to simply walk out of a classroom or conclude time spent in virtual classes and be ready to conduct complex software projects efficiently.
It is precisely this efficiency that has often been lost about the subject of project management and its derivatives: project managers, portfolio management and PMOs (Project Management Offices), among many others. As no two software projects are the same, comparing projects is difficult and, therefore, any evaluation of a project manager becomes somewhat subjective. Consequently, precisely measuring the value added to a project by a project manager is impractical. However, in my experience in the software business, complex projects in complex contexts with only partially qualified teams is the norm for about 95% of software projects, for which just a minority of the team players are highly experienced people. In this context, and based on my own experience in hundreds of projects of all sizes, natures and levels of complexity for software development and implementation, I feel it is safe to say that the performance of a project manager can improve or worsen one team’s productivity by up to a frightening 50%.
Thus, it is hard not to advocate in favor of good project management for projects of software development or implementation. The most common justification for neither hiring nor internally developing project managers, which is that “project managers are expensive,” lacks any vision for the context, dynamics and immediate impact that a project manager has on the work of a whole team. In addition to adequately attending to many aspects that other team members frequently would not, such as planning, control, risk analysis, financial follow-up, search for resources, coordination and communication, a project manager also contributes decisively to the most basic need of any project team: allowing members to actually work! How? Simply by helping them avoid wasting productive time on contacts and coordination between team members, on redundant documents and communication, or even tackling the main villains in processes of execution and mental concentration: interruptions. According to available research, just one of these interruptions can increase the time of a mental task by an average of 25%.
There are many requirements for achieving these important benefits, however. While methods applied alone will help a project team reach its objectives, the best results are beyond the reach of the inexperienced. Knowledge and experience in the processes, environments and the business itself are essential for achieving top results. A project manager must do more than simply generate schedules and plans, hold meetings and issue status reports. He or she must efficiently promote analysis and ideas that will provide higher quality to project products, reduced risks, shortened delivery times and economy of all types of involved resources: human, financial and material. For this, besides the fundamental concepts and techniques for project management, a project manager also needs to:
- Know the members of the project team and understand how they operate together. In cases of unfamiliar people on the team, experience and personal skills will allow the project manager to rapidly identify these aspects;
- Know the organization (or organizations, if involved with clients, vendors or partners) both formally (as published) and informally (as defined by influencers, personal connections, individual interests, values, specific commitments, etc.). Only this knowledge will allow a project manager to envision unapparent opportunities, such as asking a current salesperson, who years earlier was the creator of a product, to work over a weekend to perform in a few hours what would take a system analyst days to accomplish—even if this requires offering a gourmet meal, flowers and champagne to thank the deprived spouse (the unaware may ask, “But is expensing a romantic dinner to a project allowed?” Why not? If it is crucial to saving time and resources, it could certainly be authorized by management);
- Know the product, the technology and the business to which they will be applied. Similarly, only such knowledge will allow a project manager to identify certain opportunities and difficulties, in addition to supporting him or her in properly communicating with the technical teams and users;
- Know the business context of his or her own company. Identifying risks, opportunities and impacts on the software life cycle, on company image and on the company’s business context is only possible for those who have had the opportunity to experience and understand the company, gaining a holistic view of its operations; and
- Deeply know the process and methodologies themselves, according to which the software development or the implementation will be conducted.
We can therefore extract three simple lessons. First: Reducing a project budget by reducing management effort will inevitably result in higher total costs in the project life cycle. Second: Project managers not only pay for themselves but also help guarantee and promote the project quality, reduce its total time, maximize its resources and improve communication. And third: For a project manager, a title is not enough.