Part of completing our bachelor’s degree is to take and finish a capstone project. This is quite common in the IT field, and it involves creating an application or system and a manuscript for research and documentation.
We are tasked to form a group and find a client who will benefit from our project. With that, we created a web-based system for them that will hopefully help their business to thrive.
For the past 7 months of being heavily involved in our project, both in the development of the system and the creation of our research paper/documentation, I must say that I truly learned a lot from our capstone journey.
Let me share my capstone project lessons with you.
Technical
Learn programming language that you want to use in your project early on
If you are in the early years of your degree like in the freshman and sophomore years (1st/2nd year here in PH), it is recommended that you explore various technologies and programming languages to have an idea on what you will use in your capstone project.
Try to explore different programming languages used in developing desktop, mobile, and web applications. For me, it is better to know the programming language you are comfortable with to be used and productive on your capstone project.
This is the very mistake that I/we have committed in our early years in BSIT. We just relied on and explored the programming languages that our courses/subjects tackled. With that, we have only the basics of our discussed languages and we just stick with PHP since it is the one that we are more familiar with.
Learn the basics and then the best practices of that programming language
After choosing your preferred language, start learning the basics of that programming language. All programming languages have the same concepts and fundamentals so just learn how things work in that specific language. Learning programming fundamentals diligently also helps you to learn other programming languages easily.
I also recommend learning the proper conventions, syntax, and best practices of that language. Examples of these include proper naming of variables or functions, simplified syntax and other helpful procedures and tips.
After learning the ins and outs of that language, stick and conform to its best practices. This will help you eventually since the industry will require you also to follow the standards of any programming language or framework that you will need to use.
Explore AppSec (For Web Applications)
For web applications, it is great for you to learn more about application security or AppSec. If you want to develop web applications, you need to be informed about the common vulnerabilities of web applications and how to prevent these vulnerabilities. You can start with the OWASP Top Ten to learn more about AppSec.
Be serious about user testing
One of the things that truly helped us in our project is when we did our survey and user testing. Many bugs that we did not know arise from our testing, especially user testing. Having rigorous testing helps us to polish our project and to get more suggestions to improve our project even better.
Personal
I also have personal or social related learnings on my capstone project. Here are those.
Look for group/team members that you can rely on
This is important since a capstone project is a long undertaking and one of the major requirements for obtaining your degree. Our capstone project spans about 7 months which consists of one whole semester and a summer semester. Some schools have their capstone project spans about two whole semesters or 1 year.
Having an excellent group is a crucial part of the success of your project. I am extremely glad that my group/team members are very proactive and responsible. We did not have problems throughout our project since we worked on our tasks the time assigned to every team member. In addition, we made sure everyone contributed to our system code and documentation.
My capstone group/team is the best team I have had throughout my academic life. With great teamwork and communication, we accomplished our capstone project successfully.
Always be more understanding and learn to compromise
When you work on your project, there are times that some or all of you both have conflicting ideas or decisions on how your project will go through. Whether about front-end design, feature implementation, or even about documentation.
With that, I learned to listen and be more open towards various ideas and suggestions. This is important to improve your project even better. You also need to compromise occasionally if your idea or request is not implemented. You must understand that not everything you want to implement is feasible and needs to be pushed through.
Take constructive criticism lightly
Throughout our project, we received criticisms of how we work on it. This is also evident when we conduct our user testing. Many have criticized the UI/UX part of our project since the testers are more aware with fluent and existing e-commerce sites.
With that note, I learned to take their criticisms lightly. Their opinions as testers are valid especially, they are our main target audience. As developers, we need to note their suggestions and opinions since this will truly help our project thrive and grow.
However, you also need to filter those criticisms if you want to implement it later. That is because some suggestions are just minimal or extremely specific only to one user while some are just pure nitpicking. Your system or application is good if it is running properly and has a decent or above average UI/UX implementation.
I hope you learn something from my capstone project journey. Happy coding!