📢 Notice 📢

4 minute read

Short reflection on the year-long capstone computing project sequence, ISAD3000 and ISAD3001.

Reflection

This was one of the most practical and challenging units I have taken so far. More than anything else, it showed me what it feels like to work on a real software project with real people, real constraints, and real expectations.

Our team brought together students from different backgrounds, including IT, Cyber Security, Computer Science, and Software Engineering. In the first semester, we focused on understanding the client problem and planning the overall solution. Our project was centred around improving the logistics workflow of FOWI, and that meant we had to think beyond just coding. We spent a lot of time meeting regularly, discussing requirements, clarifying scope, and writing formal documents such as the SRS, TIS, and SAS.

That early stage was already a valuable lesson. I realised that a software project is not only about building features, but also about defining the problem properly, documenting decisions clearly, and making sure everyone in the team shares the same understanding. It also taught me that communication with the client matters just as much as technical skill.

In the second semester, the project became even more real because we moved into active development and implementation. This capstone unit was designed around continuing a real client project, working closely with both a supervisor and a client, and applying industry-style practices such as agile development, repositories, weekly progress meetings, milestone tracking, final submission, and presentation. That structure made the unit feel much closer to an actual workplace project than a normal university assignment.

Our team built a full-stack web application using Node.js, React, and MongoDB, and we also used Microsoft Azure Blob Storage for user-uploaded documents. Even though I had previous experience from web development units, building a solution for a real client felt very different from building a class assignment. There were many more moving parts: frontend and backend integration, document handling, database design, user roles, team coordination, and the constant need to balance technical possibilities with the client’s actual needs.

Another major part of the experience was learning how software development works in a collaborative environment. We used Jira to manage tasks, held regular meetings, followed an Agile/Scrum-style workflow, and worked through milestones, reports, handover requirements, and the final presentation. Through this process, I learned that technical contribution is important, but so are consistency, accountability, evidence of work, and the ability to explain what you have done clearly.

One of the biggest lessons I took from this project was how much I enjoy building something that can genuinely help solve a real-world problem. It felt meaningful to know that our work was not just an exercise for marks, but something designed for an actual organisation. At the same time, it was also humbling, because real projects are messy. Requirements change, unexpected issues come up, and sometimes progress is slower than planned. That experience made the project feel much closer to industry than a normal university unit.

Overall, this capstone project taught me far more than just technical tools. It strengthened my skills in communication, teamwork, planning, problem-solving, documentation, and adapting to uncertainty. It also gave me a better understanding of what professional software development looks like in practice. Looking back, this unit was difficult at times, but it was also one of the most fulfilling learning experiences in my degree.

What I Learned

  • Real software projects require much more than just coding.
  • Working with a client means listening carefully, asking better questions, and managing expectations.
  • Documentation such as requirements and technical investigation reports plays a major role in project success.
  • Agile workflows, regular meetings, repositories, and milestone tracking are essential in team-based development.
  • Building a full-stack solution for a real organisation is much more complex than a typical assignment.
  • Communication, teamwork, and accountability are just as important as technical ability.
  • Solving a real-world problem can be one of the most rewarding parts of studying computing.

One thing I realised during this project was that implementing individual features was no longer the hardest part, especially with the help of AI tools. Building functionality itself felt much more approachable than before, and learning to use services like Azure Blob Storage was both exciting and genuinely fun. What I found more difficult, personally, was the collaborative side of development. Working with six people on the same codebase, reviewing code, checking pull requests, and trying to avoid Git conflicts was much harder than I expected. Since I had some prior experience using GitHub, I often took responsibility for that side of the workflow, but even then, keeping everyone on the same track was challenging. It made me realise that writing code is only one part of software engineering, and that coordination, version control, and team processes are just as important. If I get the chance, I’d really like to learn how actual software companies handle these challenges in practice. My next area of interest is CI/CD, deployment pipelines, and rigorous testing, especially how teams in industry really build, test, and deploy production systems.

Project Highlights

  • Cross-disciplinary team collaboration
  • Real client engagement and regular progress discussions
  • Full-stack web application development
  • React frontend, Node.js backend, and MongoDB database
  • Azure Blob Storage integration for uploaded files
  • Agile workflow with Jira, milestones, reports, and final presentation

Thank you for reading my reflection on this capstone experience. 😊

Leave a comment