In my final year of college, I took ICS414, which is similar to ICS314, focusing on Software Engineering, but instead with an actual client, Spire Hawaii. It’s a whole different experience having to work with a client and understand and meet their needs for a project. It taught me a lot about what to expect post-college when I’m actually going to work.
Working with a client comes with a fair share of difficulties. The most significant difficulty is understanding what they want. Spire Hawaii is an accounting service, and I have zero experience with accounting. They discussed a lot of accounting terms that I couldn’t understand. In software engineering, it’s not strictly necessary to completely understand their line of work. Still, sometimes, some information is necessary for you to implement what they want and what they want. It definitely took my team and me some time to figure it out.
Since this software is meant to be used commercially, there are a significant amount of other things to consider compared to a personal project. One is security. Users will always somehow figure out how to exploit something, whether by accident or intentionally. You have to program with security now in mind, coming up with ways to prevent exploits. Another is design. No one wants to buy a product with a visually appalling look (unless they’re into that). You have to spend long hours figuring out how to format and color.
In the real world, and in this case, for ICS414, you have to be ready to work with people you don’t know. Some are good, others questionable. My team, in particular, was pretty good. Everyone was able to pitch in, and we made a pretty nice project for Spire Hawaii. In the future, I probably won’t be so lucky.
ICS414 furthered the things we learned in ICS314. Working with an actual client was a very valuable experience, which I needed to have in order to work in the real world. It probably won’t be so smooth sailing in the real world, but I’ll manage.