Base Knowledge
Students should have fundamental knowledge and practical experience in software programming, including software modeling and design, usability, and Java programming.
Teaching Methodologies
The course revolves around a software development project.
The theoretical classes aim to present the topics covered and the corresponding study materials.
The lab classes are intended for learning the processes and tools, as well as for holding meetings between teacher and working groups, including project and sprint planning meetings, review and retrospective meetings, backlog refinement meetings, progress monitoring meetings, etc. These meetings provide clarifications and collect feedback on the progress of the work, the materials produced and the tools used.
Students carry out the work weekly, in groups, both inside and outside the classroom, and consult the teachers throughout the week, either in person or via forums, chat and video call. During the progress meetings, the groups participate in classroom sessions and, in exceptional cases, may participate via video call.
The work consists of planning, organizing, carrying out and monitoring an agile software development project, which must be carried out throughout the semester, and is permanently monitored.
The course is mainly supported by Microsoft Teams and GitLab, which are used for communication between students and teachers and for project management support.
On the MS Teams platform, the following are regularly made available:
- The tasks to be completed by each group and/or student, both within the scope of the project and in preparation for the theoretical classes
- The submission activities for the deliverables, as well as the feedback and evaluation of each group
- Other communications, through discussion forums and chat
Learning Results
The Software Project Management course aims to provide students with a practical and integrative experience in software development. In this course, students apply the knowledge acquired throughout the study programme, in areas such as requirements, software architecture, usability, programming and testing, working as a team to develop a complete software project. The focus is on the application of good software engineering practices, project management and agile methodologies, promoting collaboration, informed decision-making and the delivery of a functional and quality software product.
Upon completion of this course, students should have acquired the following skills:
- Describe software development as an engineering discipline, using appropriate terminology;
- Carry out a software project as a team, following defined processes and good software engineering practices;
- Plan a software development project using estimates, task scheduling, and resources’ allocation;
- Apply the best practices of quality management, risk management, team management and stakeholder management;
- Manage a software project, monitoring and controlling its progress, ensuring deliveries within the planned deadlines and costs and managing stakeholders’ expectations;
- Demonstrate knowledge of software development processes and methodologies, as well as the principles and fundamentals of improving software processes to new situations.
Program
- Traditional and Agile Software Development Lifecycle
– Scrum
– Waterfall - Software project planning
– Drafting a software development plan
– Software requirements, use cases, user stories
– Delivery planning
– Sprint planning
– Task estimation and scheduling
– Software Architecture - Agile software project management
– Requirements and backlog management
– Risk management
– Team management and communication with stakeholders
– Sprints Review - Quality management
– Quality plan
– Reviews
– Tests and test plans
– Version management
– Process improvement - Agile software development
– Scrum ceremonies, team, and artifacts
– DevOps principles and continuous integration practices
Curricular Unit Teachers
João Carlos Costa Faria da CunhaInternship(s)
NAO
Bibliography
Recommended
- Schwaber, K., & Sutherland, J. (2020). The Scrum guide: The definitive guide to Scrum: The rules of the game. Scrum.org. https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf, https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Portuguese-European.pdf
- Shore, J., & Warden, S. (2008). The art of agile development. O’Reilly Media. 1A-7-78 (ISEC)
- Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly Media. 1A-7-73 (ISEC)
- Sommerville, I. (2011). Software engineering (9th ed.). Pearson Education. 1A-7-107 (ISEC)
Complementary
- Project Management Institute. (2017). A guide to the project management body of knowledge (PMBOK guide) and the standard for project management (6th ed.). Project Management Institute. 2A-4-82 (ISEC)