I have had previous experience working with web-based technologies, but mostly in the academic context, such as semester projects or assignments. Thus, I had expected the experience as a software developer at the SFU Beedie School of Business to be similar, however, it exceeded my expectations. I learnt that mainly designing a system is not enough. It has to be as simple as possible for any user and yet fulfill all the user functionalities. I got the opportunity to learn new web-based technologies and apply them towards developing new modules, updating and maintaining codes written by other developers. This position was not only limited to development. I also got the opportunity to work with the business analysts and clients directly, to understand their requirements and implement them.
The academic profile of Beedie School of Business is far-reaching. However, it might be surprising to know that Beedie has an IT development team whose task is to develop and maintain a business intelligence tool named ‘TRACS’, which is used to perform day-to-day administrative operations and has been adopted by several other SFU faculties. Our team consists of about seven persons and includes senior as well as co-op students working with the Agile software development methodology.
The colleagues that I had the opportunity to work with are very helpful and knowledgeable. Questions were always encouraged and every team member was reachable in case we have any queries. Collaborating directly with the business analysts and users for making decisions regarding the design and implementation of the modules helped me to improve my understanding of requirement management, which is one of the most important aspects of any project design and implementation. It also helped me improve my communication skills and to stress the importance of verifying and confirming the expectations of users right at the beginning in order to eliminate any possibility of miscommunication as early as possible.
The most important lesson I learned while working is that one should work smarter rather than harder. For this reason, one should have a clear idea about the problem-solution implementation, which is gained by spending more time understanding and investigating the problem statement rather than jumping to any available solution. The best solutions are the ones that are easily implemented, easy and intuitive for the user understanding compared to those that are complex and over-engineered. Generally, users prefer easy solutions to “overdesigned” ones. The best way to come up with such solutions is to design the system such that a user without any domain knowledge can also use it.
Overall, the time I have spent at Beedie has been wonderful and rewarding and I am glad that I got the opportunity to develop my skills, gain experience and enhance my understandings of real-world technologies and practices, which I am certain will be helpful in shaping my future career as a software developer.