Software Project Management
Software Project Management is the art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.
The Need for Software Project Management
Software is said to be an intangible product. Software development is a kind of all new stream in world business and there’s very little experience in building software products. Most software products are tailor made to fit client’s requirements. The most important is that the underlying technology changes and advances so frequently and rapidly that experience of one product may not be applied to the other one. All such business and environmental constraints bring risk in software development hence it is essential to manage software projects efficiently.
The image above shows triple constraints for software projects. It is an essential part of software organization to deliver quality product, keeping the cost within client’s budget constrain and deliver the project as per scheduled. There are several factors, both internal and external, which may impact this triple constrain triangle. Any of three factor can severely impact the other two. Therefore, software project management is essential to incorporate user requirements along with budget and time constraints.
Software Project Management Activities
Like typical project management, IT project management involves number of activities to plan, track, monitor and deliver project. Software project management also involves certain activities about software development and maintenance. Software project management can include following activities: (see diagram below)
- IT Project Planning & Tracking
- IT Project Resource Management
- IT Project Budget, Cost and Billing Management
- IT Project Bug/Issues Tracking
- IT Project Risk Management
- IT Project Change Request Management
- IT Project Document Management
- IT Project Communication Management
- IT Project Stakeholder Management
- IT Configuration Management
- IT Integration Management
- IT Procurement Management
Challenges in Software Project Management
- 1. Globalization causing extremely high competition: If your business is in the software industry and has a great idea, odds are another software company may have ready thought of it; if not, there may be no away to determine how close another company is to developing it. Time to market pressures is a stressful reality in the software industry. Competition can be local or international and impact software companies in terms of pricing structures, customer reach, customer retention, service level agreements and a host of other factors. Project managers will need to work closely with business owners, executives and other stakeholders to flush out all factors that may impact the successfulness of software related projects. There have been many software companies that have developed and implemented terrific software only to find the return on their investment was simply not there due to high competition.
- 2. Legacy systems and infrastructure issues: Often businesses have invested significant financial and human resources implementing, enhancing, maintaining and patching older legacy systems and infrastructures. As a result, there may be great reluctance to replace them, even if these systems no longer meet their needs, creating a scenario where it is an uphill battle for innovative software companies to get their foot in the door, even though they have a top-notch solution that businesses can greatly benefit from. If and when they do manage to convey the benefits to a company and are successful, project managers typically still have an uphill battle working with various stakeholders who are personally vested in older legacy systems and infrastructure, making them change resistant. In order to gain buy-in, it is critical for project managers to be able to clearly convey all benefits to stakeholders and find ways to alleviate their fears.
- 3. Sufficient software specific expertise: The software selection process can be time-consuming and tedious for business owners and executives, and when it comes to implementations, finding project management professionals with the relevant experience can be just as difficult, whether in-house or outsourced. While there are general systems project implementation skill sets, it may be necessary in most cases, especially when it comes to large ERP implementations, to seek project managers who are highly experienced implementing those specific systems. As a general rule, the more complex the system, project implementation, and the larger the organization, the more likely direct system related project implementation experience will be required.
- 4. SaaS offerings taking over: With increasing frequency, older legacy systems and large ERP systems are being replaced with Saas offerings, enabling small, mid-siz and large businesses to access the same or better features and capabilities without outlaying large amounts of valuable capital. Companies are subscribing to this model because they are able to redirect larger amounts of capital towards other projects that may be more value added to the overall business strategy. They are able to instead allocate operating funds towards outsourced monthly SaaS offerings that provide what they need and are more scalable and flexible. Additionally, they no longer need to account for and deal with depreciation issues. It also may be more cost-effective and more efficient to have an outside vendor take care of maintenance and service-related requests that companies otherwise would have to hire additional staff for. Often times project managers work for these outsourced SaaS vendors and are highly experienced in implementations with that exact type of software, taking a lot of pressure off of the company’s leadership. That said, the business strategy, project alignment, and other due diligence still remains a responsibility of the leadership.
- 5. Multiple complicated user level requirements: Businesses require system users at multiple levels, some may be basic users, some may be power users, administrators and some may be strictly IT users. When it comes to systems implementations project managers in the software industry need to be versed in all the different types of users with specific systems, and the types of user access rights and permissions for each. This can range from complex to extremely complicated depending on the system. Some businesses utilize user-specific models or role-based models. There is a fair amount of technical knowledge that is required to ensure systems implementation projects go smoothly and user level requirements are properly and fully addressed to ensure internal controls are followed correctly. This is particularly critical with financial systems implementations, where there is a need to accurately adhere to GAAP (generally accepted accounting principles), adopted by the U.S. Securities and Exchange Commission (SEC).
- 6. Third-party integration and interface issues: Software vendors can no longer develop standalone solutions. There is an increasing need for third-party integration, making it more complex for project managers as they are under pressure to increase their knowledge and experience with other software that may interface with the one they are implementing. To some degree, it can be as if they are implementing multiple systems within one project. For example, if a project manager is implementing a financial management system, including G/L, A/P and A/R and financial reporting modules, these may interface with applications from external payment vendors, financial institutions, contract management, CRM or other vendor software. In this case, the project manager may be required to work with third-party vendors and have sufficient knowledge of these other systems to ensure data is accessed and passed correctly between these systems.
- 7. Quality testing and bug fixes requiring numerous software iterations: In this industry systems implementation projects are plenty and constant. Within these projects, various iterations of testing occur throughout the project cycle to ensure the actual outcome meets the intended outcome. It is common to discover issues/bugs throughout the testing phases that require fixing and retesting until the issues are resolved. It can be extremely difficult for project teams to isolate issues, requiring escalation to more senior IT staff/developers. Project managers need to practice sound judgment to ensure all issues are resolved prior to systems going live. The testing phase is critical in ensuring no additional rework is required after going live, and to avoid customer dissatisfaction.
- 8. Revenue recognition reporting requirements for the software industry: In addition to the factors mentioned above, there are specific revenue recognition requirements that are specific to the software industry that will need to be factored in throughout projects. These requirements can affect the company’s day-to-day accounting as well as customer contracts and how they are executed. Project managers need to ensure reporting requirements are sufficiently addressed with a CPA/accounting professional involvement throughout the project lifecycle. Not addressing this key factor can result in consequences for a software company. The AICPA is a great resource to find out more on revenue recognition. The software industry is extremely complicated and requires project management expertise in areas of software development, software testing and quality assurance, implementation, user security, internal controls, customer relationship management, change management, business processes and many other areas.