Systematized literature review about developing a project management software
Question
Task: What are the underlying concepts regarding project management with reference to software development estimation, activity planning, scheduling, and resource allocation?Identify the factors affecting and influencing communication and management of all people aspects during project management. Measure and monitor the quality of a project throughout its development cycle.
Answer
1. Introduction
Project management is the field that deals with a set of procedures in a systematic manner in order to achieve a specific outcome. Project management is widely utilised in every sector that includes but not limited to construction, software, commerce and business, education, information technology and others. However, since the types of projects differ significantly among the different sectors, the methods and approaches also vary widely depending on the type and nature of the project(Verzuh 2015). It is important to identify the type of project before selecting methodology as the methodology must be aligned with the project. The project methodology must also be identified during the planning phase when estimations are being evaluated for the project. It is to be noted in this case that different methodologies have different sets of procedures that consume different amounts of time and resources. Hence, methodology selection is very important during the planning of the project so that overall estimations can be created as accurately as possible. Other than the methodology, there are some other major factors playing role in the success of the project that include team performance as well as measurement and monitoring of the project quality throughout its life cycle.
This paper is focused on the literature review of different aspects of software project management and has been divided into three different sections, each having a research question and various sub-sections to explore covering different aspects of planning, team performance and management and quality monitoring and management.
2. Literature Review
2.1 RQ1
2.1.1 Software Development Estimation
In software projects, the project management aspect is significantly different than other projects like business or construction. The project life cycle is not linear in nature and requires very intricate planning and estimations. Moreover, unlike other general projects, software projects are entirely focused on the quality of the outcome rather than reaching the outcome at the minimal costs and resource use.
According to the authors Mishra and Mishra (2013), software development estimation is extremely critical for the entire project. The authors said that if anything goes wrong in this phase, the entire project may become failure or drain huge amount of resources and funds from the company owning the project. Hence, estimation needs to be as much accurate as possible in order for the project to be efficient in terms of time and resources.
On the other hand, Confortoet al. (2014) said that it is impossible to develop a completely accurate estimation for software projects that follow iterative approach since the outcome for each iteration may not be accurate or fulfilling the expectations that will result in repetition of the iteration that in turn will result in increased use of time and resources. The authors mentioned that it is important to stick to the estimated plan and avoid repeating the same iteration multiple times but at the same time, during estimation, identify which iterations might have to be repeated multiple times and prepare the estimations accordingly.
2.1.2 Activity Planning
Cantor (2011) in their works discussed about activity planning in software project management. The author discussed that activity planning in software projects following agile or scrum methods differ widely from general projects following standard waterfall or PRINCE2 methods. The author also further mentioned that software project methods are non-linear and pass through multiple iteration cycles. Hence, activity planning is also considerably different and multiple associated factors need to be considered during the planning part.
Author Schwalbe (2015) mentioned in their works that activity planning in software projects effectively involves dividing the entire project into separate sprints in each of which, iterations will be conducted until a satisfactory desired outcome is reached. Once a sprint is completed, then only the project can proceed to the next sprint and unlike regular projects, two sprints cannot be conducted in parallel.
AuthorHeagney(2016) said that software projects may also conducted in a linear fashion following waterfall method and in those cases, activity planning can be done like general projects including formation of phases, deliverables and work packages.
2.1.3 Scheduling
Authors Pedreiraet al. (2015) describe how scheduling in software projects is a complicated process considering the complexity of the projects. The authors mentioned that overall schedule of the project is being calculated by adding the estimated time for each sprint created during effort estimation. However, they also mentioned that each sprint can take longer than the estimated time and hence, it is difficult to estimate a specific time period for the entire project. Hence, they advised that it is important to consider some additional buffer time in case some iterations are repeated and some sprints taking longer than usual.
Authors Gido and Clements (2014) suggested that it requires skill and experience to be able to schedule a software project accurately. During schedule planning, it is important to understand a reliable estimation for each sprint that can be made from past experiences and skill. The authors also emphasized on the fact that the project needs to the schedule as much as possible or it will start draining resources from the project owner.
2.1.4 Resource Allocation
Ford and Lyneis(2020) said that resource allocation is a process by which project team members are allocated to specific work packages and sprints. The authors described that the duties of the project team members are very critical in ensuring project execution and success and hence, resource allocation must be done considering skilled resources only. In software projects, non-human resources only including hardware and software whereas there are several human resources required including developer, tester, security expert, content creators and others. Each resource must be allocated properly to each work package or sprint as per the requirements.
Authors Meredith, Shafer and Mantel Jr(2017) discussed how the performances of the resources are critical for the success of the project and hence, allocation of resources play a significant role towards the overall project output. Moreover, software projects require highly skilled professionals with experience unlike other general projects where the resources can even gradually learn throughout the project. The authors also discussed in their work that since software projects are highly technical and effort oriented, it is recommended to avoid over-allocation of resources to the same sprint as it will affect the performance of the resources and also the overall quality of the project.
2.1.5 Manage and Monitor the Project in its Entirety
Various authors including Gardiner (2017) have discussed in their works regarding the management and monitoring of the project in its entirety. The author used an example of a construction project where the project is set up using a building blueprint and the construction manager will simply have to guide and watch the workers work on the plan while the higher management can just review the finished product. On the other hand, management and monitoring of the software projects is far more complex and need to be conducted throughout the project life cycle. It involves constant monitoring of the sprints including review and testing of the product at the end of each iteration and constant involvement of the higher management in reviewing the gradual progress and test results in the project.
Authors Pedreiraet al. (2015) said that due to the continuous management and monitoring processes in the entire project, software projects take longer time than usual projects but at the same time, high quality outcome from the project can be expected.
2.2 RQ2
2.2.1 Manage the Persons and Teams involved in the Project
Many authors and researchers who have conducted detailed research and study in the field of project management have time and again emphasized on the importance of management of the persons and teams that are involved in the project. Authors Fleming and Koppelman(2016) discussed that the teams and the team members are the ones executing the project on guidance of the team leads and / or project manager and hence, their performances will determine the overall outcome and quality of the project. Moreover, since software projects are highly technical in nature, it requires great deal of skill, experience, persistence, efficiency and interest of the team members working in the project. In order to avoid lack of effort or work from the team members, constant management is necessary from a higher authority like team leader or project manager.
Authors Meredith, Shafer and Mantel Jr(2017) said that managing persons and teams is also important for overcoming complex challenges encountered during software projects. Some team members, despite having skill and experience may face complex problems that they are unable to resolve by themselves and then, intervention of the management level of the project will be necessary. The effective management and guidance of the project manager or scrum master or a person with a similar role is very important for the team members overcoming challenges and fulfill all the duties within the project.
Gardiner (2017) highlighted another aspect of team management in software projects where there might be conflicts or clash between two or more team members causing major disruptions within the project. In these cases, the team leads need to handle and resolve the conflicts and use proper management skills to move forward in the project.
2.2.2 Management of Information Technology Contracts
Like other projects, software projects also often require signing contracts, especially for large scale software projects. However, considering the extent of uncertainty of outcome of the projects, the contracts used in software projects are significantly different from the other projects. Authors Ford and Lyneis(2020) mentioned that the contracts used in software projects are called information technology contracts, which again are of different types and at the same time, they differ considerably from the general contract types.
Authors Meredith, Shafer and Mantel Jr (2017) mentioned in their works that information technology contracts are being developed considering the uncertainty of outcomes and hence, the terms are mostly performance based rather than outcome based. Moreover, the contract terms are specifically designed to fulfill quality based goals and objectives rather than the delivery of the final product itself. This is in line with scrum or agile methodology of software project management in which, the quality is more important than the delivery of outcome itself. The authors also described how the contract terms are required to be aligned with different aspects of the project including both hardware and software. Hardware related terms are generally easier to fulfill since they just need to purchase hardware with certain predefined specifications but software related terms are difficult to fulfill. Moreover, due to uncertainty of outcome of such projects, resource and timeline terms in information technology contracts are hard to define and fulfill.
2.2.3 Different Management Styles and their Effect
Various authors have published in multiple works that different management styles have deep lying impacts on the project especially due to the changes in behavioural patterns of the project team members. Authors Pedreiraet al. (2015) noted that different management styles have different types of effects on the team and as a result, the behavioural patterns exhibited by the team members may be positive or negative for the project. The authors also said that extreme management traits are never beneficial whether they are autocratic or democratic or others. The authors said that extreme autocratic management style ultimately angers the team members and they gradually stop working or provide less and less effort on the project. On the other hand, extreme democratic management style may hand over too much power to the team members, which they may start misusing and stop working on the project at all.
However, authors Gido and Clements (2014) discussed the fact that the general perception is autocratic management style is ‘bad’ and democratic management style is ‘good’ or ‘ideal’. However, there should not any absolute judgment on the management styles; the authors said that the need for any of the management styles may occur at any time in any project and hence, selection of suitable style is very essential for the project. The same concept is applicable for software projects as well and the management style may have significant impact on the execution and delivery of the project.
2.2.4 Recommendations for Motivating and Managing Teams
Schwalbe (2015) discussed in their works that motivating and managing teams are two of the most important skills that a project leader or manager must have. When the project is being planned and approved, a project manager and / or team leaders are assigned to guide and lead the teams that will work in the project. However, there can be many issues that team conflicts, clash of ideas, different obstacles and challenges, lack of motivation among the teams and others. It is the job of the project manager / leader to motivate the team members and manage the teams throughout the course of project life cycle.
Authors Pedreiraet al. (2015)said that in software projects, motivation is critically important as due to the long drawn repeated iterations in the approach, times can be very much frustrating and demotivating for the team members. Hence, they require constant sources of motivation and this must come from the team leads and / or managers. Motivated teams work faster and with more efficiency and hence, better quality of the outcome can be expected from the project.
AuthorHeagney(2016) discussed the importance of creating a motivating environment within the project space and a constant positive interaction with the manager / leader. The motivating environment can keep the team members calm and focussed on the project so that they can work together towards a common goal of developing high quality product fulfilling all the requirements.
2.3 RQ3
2.3.1 Factors that affect Quality Management
Different projects have different quality requirements and hence, there are also many different factors that can affect quality management in the projects. However, in this literature review, the focus in only software projects and hence, quality management henceforth will refer to quality management in software projects only.
According to authors Mishra and Mishra (2013), software projects are strictly focused on the quality of the product rather than delivery of the product. In order to achieve quality requirements, even the delivery of the project can be delayed and pushed back and additional resources might be granted but the quality requirements has to be met at any costs.
Authors Pedreiraet al. (2015) studied about the factors that may affect quality management of a software project and listed and discussed a few. The authors discussed that the most important factor that affects quality management of a software project is changed requirement. The authors identified many instances where the project owner changed their requirements repeatedly and it led to the degradation of the project quality significantly. The author also noted unrealistic requirement as another major factor affecting quality management of a software project. The authors said that unrealistic requirements can result in setting unrealistic goals and sprints that drain a lot of time and resources but ultimately, the final outcome is still not reached. It is important to scale the requirements into a realistic range so that the goals and objectives are met without facing major obstacles.
On the other hand, authors Confortoet al. (2014) discussed about some of the positive factors affecting quality management. One such factor, according to the author, is a creative and flexible environment in which the team members are allowed to show their creativity without facing strict work orders. In many such cases, the team members come up with unique solutions and ideas that are even better than the suggested plan while fulfilling the requirements of the project. Again, another important positive factor affecting quality management of a software project is technology. With the help of technology (quality hardware, advanced software and others), quality management is much easier and additionally, it is easier to fulfill quality requirements of the project itself.
2.3.2 Principles of Quality Management
Authors Gido and Clements (2014) discussed about principles of quality management and how they are applied to software projects. The authors have studied all seven principles of quality management that includes engagement of people, customer focus, leadership, process approach, improvement, evidence-based decision making and relationship management. The authors mentioned that like other projects, software projects should also abide by the principles of quality management but they will be slightly different for software projects. The authors provided a bit of clarification on this as pointed out below.
Engagement of people – Software projects should have proper engagement of the team members with full motivation and commitment towards reaching the goals and objectives of the project.
Customer focus–Software projects should have strong focus on customer requirements and details that are provided by the customers themselves. Any additional work required should have to be discussed with the customer first.
Leadership–Strong and skilled as well as experienced leadership is desired in software projects where leaders play an extremely vital role in managing the teams throughout the project towards success.
Process approach–Software projects should always follow a specific process approach following a suitable methodology. The success of the software projects depend significantly on the methodology and process approach followed.
Improvement–Software projects rely on continuous improvement process on each iteration and hence, it is a major factor in quality management of software project.
Evidence-Based decision making–Decision making in software projects must always be evidence based rather than perception based as it is almost impossible to generate flawless and accurate perceptions in this type of project.
Relationship management–Software projects should have proper relationship among team members, higher management and customers in order to build a successful project environment.
2.3.3 Recommendations for Measuring and Monitoring Quality during the Development Life Cycle
Various authors have presented various recommendations for measuring and monitoring quality during the development life cycle of a software project. Different opinions from different authors vary significantly but there is one common theme – ensure high quality of the product before it is being delivered and the project is completed.
Authors Pedreiraet al. (2015) recommended that in order to measure and monitor quality, teams must create a sprint log in which they will document the project state after each iteration. Once a sprint is completed, the entire log should be handed over to project manager for review, measuring and monitoring. However, the authors have doubts over the chances of success of this method as the sprint log can be modified or altered and fake report may be submitted.
On the other hand, authors Confortoet al. (2014) recommended the project owners to not add new requirements to the project once it is underway. The authors opined that major modifications or addition of new features can significantly affect the overall quality of the project and hence, this practice must be avoided at all costs.
Authors Gido and Clements (2014) recommended recruitment of a monitoring personnel externally who will constantly keep track of the project progress and communicate with the management regularly. This will increase the costs for the project but will ensure, regular monitoring and reporting are done and the quality factor of the project can be monitored without any major issues or obstacles.
3. Conclusion
It can be finally concluded that software projects are significantly different from general projects mostly in terms of approach and method followed. Software projects generally utilise scrum or agile methods that involve long drawn iterative approach throughout the project life cycle. The study of literature has provided the information that development estimation is a critical factor for project success and hence, any major or minor error in this phase can result in the entire project becoming failure and even if the project does not fail entirely, the company owning the project may face significant financial and business related losses. Hence, it is critically important to make the estimations as accurate as possible so that the project can involve efficient utilisation of resources. On the other hand, activity planning in software projects differs widely from general projects following standard waterfall or other similar methods since they mainly utilise iterative approach in agile or scrum techniques. Literature also further mentioned that unlike general projects, software projects mainly follow iterative approaches that have multiple sprints each of which includes one or more cyclic iterations until specific quality standards have been achieved..As a result, activity planning is also significantly different from regular projects and most of the focus is put into the overall quality of the product. On the other hand, the literature survey on other aspects of software projects like quality management provides significant amount of information regarding quality management of a software project. It has been understood that rather than quickest delivery of the outcome, the most important aspect of software projects is the quality of the product. Due to the importance of the quality of the project, some adjustments are often made by the project owner to even increase budget and timeline for delivery but the necessary quality standards has to be met. At the same time, various authors have suggested various recommendations for measuring and monitoring quality during product development in a software project and some of those works have been analysed and discussed. Many different authors’ works have been used for cross-examination and verification of the data before they were being put into the literature review essay.
References
Cantor, M., 2011. Object-oriented project management with UML. Retrieved from: http://elibrary.lt/resursai/Leidiniai/Litfund/Lithfund_leidiniai/IT/(Ebook)%20WILEY%20-%20Object-Oriented%20Project%20Management%20with%20UML.pdf
Conforto, E.C., Salum, F., Amaral, D.C., Da Silva, S.L. and De Almeida, L.F.M., 2014. Can agile project management be adopted by industries other than software development?. Project Management Journal, 45(3), pp.21-34.
Fleming, Q.W. and Koppelman, J.M., 2016, December.Earned value project management. Project Management Institute. Retrieved from: http://anclasol.com/AS/e-books/ing/FREEeBooks/earned%20value%20project%20management.pdf
Ford, D.N. and Lyneis, J.M., 2020. System dynamics applied to project management: a survey, assessment, and directions for future research. System Dynamics: Theory and Applications, pp.285-314.
Gardiner, P., 2017. Project management: A strategic planning approach. Bloomsbury Publishing.
Gido, J. and Clements, J., 2014. Successful project management.Cengage Learning.
Heagney, J., 2016. Fundamentals of project management.Amacom.
Meredith, J.R., Shafer, S.M. and Mantel Jr, S.J., 2017. Project management: a strategic managerial approach. John Wiley & Sons.
Mishra, A. and Mishra, D., 2013. Software project management tools: a brief comparative view. ACM SIGSOFT Software Engineering Notes, 38(3), pp.1-4.
Pedreira, O., García, F., Brisaboa, N. and Piattini, M., 2015.Gamification in software engineering–A systematic mapping. Information and software technology, 57, pp.157-168.
Schwalbe, K., 2015. Information technology project management.Cengage Learning.
Verzuh, E., 2015. The fast forward MBA in project management.John Wiley & Sons.