Sepm Unit 6

4 minute read

Published:

Learning Outcomes Achieved

  1. Identify and apply appropriate software engineering and project management methodologies, tools and techniques for the development of solutions to real-world problems
  2. Explore the implications of computer and network architectures for system-level design and development, as appropriate for risk and quality management
  3. Systematically develop and implement the skills required to be effective member of a development team in a virtual professional environment, adopting real-life perspectives on roles and team organisation

Assignment Feedback

  • A good discussion of the SDLC methodology selected and also of the system design
  • I liked how you used the gherkin approach to refine the requirements (even though you didn’t refer to the approach as being based on gherkin :))
  • Good discussion of estimates, although it would have been nice to see more explanation as to how estimates were arrived at
  • Good list of requirements and reasons for inclusion in the demo
  • Good plan and discussion - would have been nice to see products associated with sprints

The point on seeing products associated with sprints is an interesting one- it’s an approach I haven’t actually thought of before, even industrially. My understanding has always been that sprints are meant to be incremental- it can take some time to have a minimal version of a working product. Rodlitz & Silas (n.d.) discuss the idea of outputs and outcomes in scrum: outputs can be thought of as deliverables, while outcomes can be thought of as the actual need being addressed by outputs. The authors of this presentation suggest that outcomes need to be the focus, and outputs should exist so that those outcomes can be reached.

The authors gave some interesting opinions on the mindsets behind classic Scrum techniques, and I think it would be useful to apply these ideas to my own team’s development so that we can better understand just why Scrum is so effective in modern development. For example, the presentation authors mention that the outcome of daily standups should be to refine sprint plans to improve the chances of meeting the sprint commitment, and changes to sprint plans can be thought of as the outputs. This would be useful to test with my team, even if we do not meet daily.

This is something I would like to explore in my career as well, although I need to do further thinking and research on how Agile methodologies need to be adjusted to fit business frameworks where value is defined in a clear and specific way (e.g. the OKR system).

This assignment helped me to achieve many learning outcomes. Through continuous work, discussion, and refinement of goals with my team, I have reached learning outcome 4, and because of the focus on evaluating and selecting a project management methodology, I have acheived learning outcome 1.

References

Rodlitz, B. & Silas, C. (n.d.) Outcomes over Outputs. Available from: https://www.scrumalliance.org/ScrumRedesignDEVSite/media/ScrumAllianceMedia/Global%20Scrum%20Gatherings/2017%20San%20Diego/Presentations/RodilitzBen_Outputs-vs-Outcomes.pdf [Accessed 15 May 2022].

Codio Activity

As an exercise this week, students were required to make unit tests fail for a Python application. For me, this activity acted as a reminder of something that is key in project management: testing.

Personally, I’d like to take this as an opportunity to improve Quality Assurance skills, and beyond that, I’d like to be able to relate that to project management- i.e., I would like to be able to answer the question “How do we know when something is fully tested?”, and also, from a project management perspective, how do we know that we’re not testing to the point of diminishing returns?

In terms of the assignment, since my team is building a fully-fledged game, we’re going to need not just unit tests, but integration tests (since we’re using an SQL database), along with UI testing. I don’t understand the differences between various types of testing very well, so as an additional aim for the next unit or two, I’d like to better understand the different kinds of testing, and where possible, add them to the project which we are working on.

By completing this activity, I would say that I have achieved learning outcome 2, because unit tests, in a way, depend on computer architecture- when programming comes down to building small pieces of functionality/logic (as it does in Python), it is natural to verify those pieces of logic by using fake inputs. The implication of this is that this technique can be used for quality management- I will also be sure to add more tests to the assigment.

Artefacts

Codio Activity: wallet.py
Codio Activity: wallet_test.py (broken tests)
Assignment: Project Report