--- May 02 - July 24, 2023 ---

Software Engineering Project Management

Artifacts List

  • Unit 1: Introduction to Software Engineering Project Management
  • Unit 2: Why Projects Fail and Gathering Requirements Exercise
  • Unit 3: Estimating, Planning and Risk
    • Unit 4: Risk Assessment and Estimating Tools
    • Unit 5: User Experience
    • Unit 6: Pytest and Test-Driven Development
    • Unit 7: Software Development Life Cycles
    • Unit 8: Python Data Structures
    • Unit 9: Quality Management Strategy
    • Unit 10: Software Quality Monitoring in Python
    • Unit 11: Software Engineering Project Management: Future Trends
    • Unit 12: The Case for the Future Direction of Software Engineering Project Management
    • --- June 12, 2023 ---

      Unit 1

      Collaborative Discussion #1

      Causes of Project Failures

      Analysis of the causes of project failures will surely reveal a complex and interrelated culprit, but they boil down to social problems, like communication and collaboration issues that lead to poor requirements gathering or understanding, management and planning issues, and lack of testing resources (Lehtinen et al., 2014).

      The first example that supports that is the case of the FBI virtual case file, where an ineffective requirements-gathering process and failure to report troubles in the progress of the project led to 170 million us dollars in loss, and the project had to be redone completely (Calleam Consulting, n.d).

      The second example is the case of Qantas's “Jetsmart” engineering parts management system. In this case, the users of the system were never consulted. So, there was no user acceptance test or early user involvement in the requirements gathering stage. This led to users refusing to use the system, and it was redone completely. In this case, the management was involved in poor decision-making by forcing the users to accept their decision (Calleam Consulting, n.d).

      References

      Calleam Consulting (n.d) Why Projects Fail – Why Do Projects Fail? Available from: https://calleam.com/WTPF/?page_id=2213 [Accessed 03 May 2023].

      Lehtinen, T. O. A., Mäntylä, M. V., Vanhanen, J., Itkonen, J. & Lassenius, C. (2014) Perceived causes of software project failures – An analysis of their relationships. Information and Software Technology 56(6): 623-643.

      --- June 12, 2023 ---

      Unit 2

      Requirements Gathering using Gherkin Language

      Open in a New Tab

      --- May 29, 2023 ---

      Unit 4

      Risk Assessment Activity

      Read the articles by Verner et al. (2014) and Anton & Nucu (2020) and then answer the following questions: 

      1. What are the main risks that the authors identify? 

      Answer: The main risks that were supported were communication efficiency, incompatibility of infrastructures, cultural differences, language differences, incompatibility of infrastructures, and differences in standards.

      1. Which of the frameworks discussed in the Unit 3 lecturecast would you use to capture and categorize the risks? 

      Answer:  I would use OCTAVE.

      1. Add a risk and a suggested mitigation to the module forum.

      Answer: One additional risk that I can think of is the bias of the vendor’s project managers toward their teams. This may lead to conflicts between vendor’s and client’s project managers. A mitigation of that is to have a clearly documented vision and scope document and requirements specifications and thoroughly discussed project schedule.

              

      --- June 01, 2023 ---

      Unit 5

      Collaborative Discussion #2

      Components of User Experience

      Based on the results of Minge and Thüring (2018), the duration of use affects the perceived usability of the system caused by “non-instrumental characteristics” like appearance. Increased duration of use removed the hedonic halo effect completely. On the other hand, the increased duration of use led to the perception that a usable system is appealing.

      So, if I had the chance to modify figure one of the article, I would have added a time factor over the arrows pointing away and toward the emotional reactions as shown below.

      Reference

      Minge, M. & Thüring, M. (2018) Hedonic and pragmatic halo effects at early stages of User Experience. International Journal of Human-Computer Studies 109(13-25.

      --- June 13, 2023 ---

      Unit 6

      Development Team Project

      Project Proposal

      Open in a New Tab

      Tutor's Feedback

      The report included some good explanations and discussions of methodologies. The requirements table was useful, but I think some of the Gherkin requirements should have been included as well. There was no discussion of missing or unclear requirements from the case study. The set of Gherkin specifications was good. The report included a very good plan although I think there may be too much emphasis on architects (although I have worked on govt projects with the same ideas :). It also includes a good explanation of sell prices and related data. It was good to see design times and testing, although I would have liked to have seen more discussion and justification around testing. There was a good discussion of the sell price. Overall, the report was well-presented and structured. It was a very good report and analysis with a few assumptions that could have been challenged. References were good but limited.

      --- July 06, 2023 ---

      Unit 7

      Managing Customer's Emotional Reactions

      For project managers, customers’ or users’ emotions are essential to the overall success of project implementation and satisfaction. It is mandatory to be proactive as negative experiences will adversely affect after-sale behavior, as shown by Chea and Luo (2008). The authors concluded that customer satisfaction resulted in higher customer retention, lower complaints, and higher endorsements.

      There are different stages of managing customers’ emotions. The first stage is at the development phase. A study that explored the effect of service and relationship qualities found that higher quality in both aspects resulted in happier and more satisfied customers, with service quality being more important than relationship quality (Nordhorn et al., 2018). This represents a crucial tool for project managers to gain customers' acceptance. The willingness to acknowledge customers’ concerns and wishes and timely responses to accommodate changes are fundamental aspects of the user experience.

      The second stage is user acceptance testing. Since emotions affect the user experience (Van der Linden et al., 2019), it is wise to manage the customers’ emotions by performing user acceptance testing early in the software to ensure that the software satisfies most, if not all, the user types.

      Lastly, training is expected to enhance user experience since the ability to perform tasks successfully without frustration and self-confidence in performing such tasks affect the user experience (Jokinen, 2015). So completing pre-release training for the system user is necessary.

      References

      Chea, S. & Luo, M. M. (2008) Post-Adoption Behaviors of E-Service Customers: The Interplay of Cognition and Emotion. International journal of electronic commerce 12(3): 29-56.

      Jokinen, J. P. P. (2015) Emotional user experience: Traits, events, and states. International journal of human-computer studies 76(67-77.

      Nordhorn, C., Scuttari, A. & Pechlaner, H. (2018) Customers’ emotions in real time: measuring affective responses to service and relationship quality at the reception desk. International journal of culture, tourism and hospitality research 12(2): 173-184.

      Van Der Linden, J., Amadieu, F., Vayre, E. & Van De Leemput, C. (2019) User Experience and Social Influence: A New Perspective for UX Theory.

      --- July 06, 2023 ---

      Unit 8

      A Data Struccure for Requirements

      For a list of functional and non-functional requirements, I would choose a Python dictionary data structure because it allows efficient storage and retrieval using key-value pairs (Bader, n.d).  And to be more specific, a nested Python dictionary (Semwal, 2018) will help store a separate dictionary for functional and nonfunctional requirements inside a single dictionary that holds all the requirements of the system as the following:

      requirements = {
          "functional": {
              "FR1 OS": "The computer should have an industry-standard operating system installed",
              "FR2 RAM": "The computer should have at least 512K or RAM",
              "FR3 CPU": "The computer should have at least 68000 CPU", 
          },
          "non-functional": {
              "NFR1 CPU Upgrade": "The computer should allow users to upgrade the CPU",
              "NFR2 RAM Upgrade": "The computer should allow users to upgrade the RAM",
              "NFR3 OS Upgrade": "The computer should allow users to upgrade the OS",
          }
      }
      

      References

      Bader, D. (n.d) Common Python Data Structures (Guide) – Real Python. realpython.com.

      Semwal, S. (2018) Python Nested Dictionary. GeeksforGeeks.

      --- July 12, 2023 ---

      Unit 9

      Scope Creep

      After watching a YouTube video about project management (Beginning Engineers, 2015), I answered the following questions:

      • What is scope creep?

      It is the gradual increase in the scope of the project resulting in an increase of cost and time.

      • What aspects of a project are dependent on scope creep?

      Cost and time.

      • How to balance the competing requirements when scope creep occurs?

      Quality should be the priority, then cost and time should be balanced to reach a compromise.

      • How do you stop scope creep?

      It can be stopped with good project management skills that involve clear communication and project expectations.

       

      Reference

      Beginning Engineers (2015). Beginning Engineers Project Management. Available from: https://www.youtube.com/watch?v=Bhm4mLoJ48I&ab_channel=BeginningEngineers [Accessed 12 Jul. 2023].

      --- July 23, 2023 ---

      Unit 10

      Reflection Software Quality

      McCall’s identified eleven software quality factors which are: correctness, reliability, efficiency, integrity, usability, maintainability, testability, flexibility, portability, reusability, and interoperability (McCall et al., 1977) . Some of them are still valid today, while others may be repetitive, as sated by Fitzpatrick (1996).

      On the other hand, Janicijevic et al. (2016) has another view of modeling software quality by controlling the elements affecting the quality. Such elements include “stochastic processes,” availability of resources, and economic issues. Stochastic processes are modeled using the Markov chain. The resultant advantage of this model is that it will enable stakeholders to select the ideal path that will enable them to achieve high-quality software and satisfy the requirements of their customers. Compared to McCall’s quality factors.

      References

      Fitzpatrick, R. (1996) Software Quality: Definitions and Strategic Issues. Dublin Institute of Technology.

      Janicijevic, I., Krsmanovic, M., Zivkovic, N. & Lazarevic, S. (2016) Software quality improvement: a model based on managing factors impacting software quality. Software quality journal 24(2): 247-270.

      Mccall, J., Richards, P. & Walters, G. (1977) Factors in Software Quality Concept and Definitions of Software Quality. Available from: https://apps.dtic.mil/dtic/tr/fulltext/u2/a049014.pdf [Accessed 12 July 2023].

      --- July 17, 2023 ---

      Unit 11

      Development Team Project

      Presentation

      Open in a New Tab

      Presnetaion Transcript

      --- July 19, 2023 ---

      Unit 12

      Future Trends in Project Managment - Group Presentation

      Open in a New Tab