Level 5 Project Management #
1. Abstract#
This document will serve to provide Level 5 students with knowledge of the concepts involved in project management, where you can then apply these concepts to your own projects. Project management is very important for your group assignments and work with clients, therefore you should refer to it and use the appropriate tools highlighted in the tools document where possible.
2. Table of Contents#
- 1. Abstract
- 2. Table of Contents
- 3. What Is Agile Project Management
- 4. Tools
- 5. Allocation of Tasks
- 6. References
3. What Is Agile Project Management#
You should be familiar with what project management is, and why it is useful from the level 4 management guidelines document. When you have a grasp on this, it is now important to look at the different project management methodologies.
At Level 5 and beyond, we would encourage you to use Agile Project Management.
Agile is a project management methodology that uses short development cycles called “sprints” to focus on continuous improvement in the development of a product or service. Software development methods go back as far as 1957, although agile was first discussed in depth in the 1970's. In 2001, the Agile Manifesto was created, highlighting four key values and twelve principles to guide developers.
These 12 key principles are:
- Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
- Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
- A product or service is delivered with higher frequency.
- Stakeholders and developers collaborate closely on a daily basis.
- All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
- Face-to-face meetings are deemed the most efficient and effective format for project success.
- A final working product is the ultimate measure of success.
- Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
- Agility is enhanced through a continuous focus on technical excellence and proper design.
- Simplicity is an essential element.
- Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
- Regular intervals are used by teams to improve efficiency through fine-tuning behaviors.
Although it was originally designed for the software industry, it is now becoming more and more popular in many other industries due to its highly collaborative and efficient nature. It is likely many of the companies you will be applying for after graduation and for placements will use some form of the Agile methodology.
3.1. Benefits of Agile for Project Management#
- More rapid deployment of solutions
- Reduced waste through minimization of resources
- Increased flexibility and adaptability to change
- Increased success through more focused efforts
- Faster turnaround times
- Faster detection of issues and defects
- Optimized development processes
- A lighter weight framework
- Optimal project control
- Increased focus on specific customer needs
- Increased frequency of collaboration and feedback
These are based from reference [1].
3.2. Agile Methodologies#
Agile is an umbrella term for a number of different methodologies. Many of these methodologies will be useful to you as Level 5 students. The most widely used Agile Methodologies are:
- Agile Scrum Methodology
- Lean Software Development
- Kanban
- Extreme Programming (XP)
- Crystal
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development (FDD)
These are based from reference [2]. If you would like to know more about these methodologies, follow the link for reference 2 at the end of this document.
For your group assignments and work with clients, we encourage you to adopt one of more of these methodologies, we especially enourage you to use Scrum and Kanban for team communication and project management respectively. Using these two together can greatly increase the projects chance of success (more on Scrum on the Team Communication guidelines).
4. Tools#
At Level 5, we expect you to use a project management tool to track the status of your projects. There are a number of tools available to you for free, some we would recommend are:
- Trello
- MS Project
- Github Projects
- Creating your own Kanban style board using post-it notes/paper/whiteboard
All of these tools use the Kanban Agile Methodology, which is great for project management as you can oversee the entire project and track the status of tasks. You can find more information on how to use these tools, with some examples, on the tools document.
4.1. Creating a Structure#
When using any of these tools, you will want to create some form of planning structure. To do this, you should be using cards (or post-it notes if you are creating your own). Cards allow you to catagorise your tasks into seperate lists. These lists should take a form similar to this:
- To Do
- Doing
- Needs Review
- Done
This will allow you to track the status of tasks, and have a good overview of the whole project. A task backlog should be added to the To Do card, then, developers can be assigned to them and brought over to the Doing card to show they are being worked on. Once completed, they can be moved to the Needs Review card to be reviewed by a dedicated code reviewer. With all things being well, the task can be moved to the Done card to show the task is complete and ready to be merged with the main branch of the repository. More information on how to do this with each of the tools above can be seen here.
5. Allocation of Tasks#
In project management, it is important to work with your fellow developers to create a clear allocation of tasks and roles, so that you can work on tasks with the highest priority first, updating the choice of tool approriately. To do this, we expect you to have created a set of User Stories or requirements specification for your current project.
You should then use the MoSCoW Method to prioritise your stories and turn them into tasks. Add these tasks to your tool choice under the To Do card and allocate the Must tasks to members of the team. In a SCRUM style environment, developers may choose what tasks to work on themselves, but ensuring the Must tasks are completed first should be your top priority.
6. References#
[1] CIO. Agile project management: 12 key principles, 4 big hurdles. By Moira Alexander. https://www.cio.com/article/3156998/agile-project-management-a-beginners-guide.html.
[2] Blueprint. Agile Methodologies. https://www.blueprintsys.com/agile-development-101/agile-methodologies#:~:text=The%20most%20widely%2Dused%20Agile,Extreme%20Programming%20(XP).