Skip to content
On this page

Project Ideation

Software is an umbrella term! There is a good chance that your kitchen oven is equipped with embedded software. However, that kind of software is probably not the best choice for an OOSE project!

The best choices for OOSE are what is commonly known as Application software, or app for short.

App

Software that performs specific tasks for an end-user.

You use apps on your phone, tablet, and computer. Therefore, you should have an intuitive idea of what is referred to here.

As for the project idea, you can explore one of the following three tracks!

Entrepreneur track

Coming up with a new app idea and building it from scratch!

This is the most common track, perhaps because it is the most rewarding one! I encourage you to try and come up with an original app idea. It does not need to be an entirely new scheme. It could be a software solution that borrows from existing ones to solve a new problem. The emphasis here is on "problem-solving." The value of entrepreneurship is in solving real problems.

How to come up with an idea?

You are wearing different hats! You are a member of several communities and organizations. Talk to people in your circles and uptake a real problem people actually have. Indeed, there are many software applications out there. Yet, people constantly look for better, faster, and smarter ways to accomplish everyday tasks. And fortunately for us software engineers, there are still lots of room for improvements in existing software products, as well as many novel ones to be built.

Internship track

Join an existing and ongoing software project and bring it to OOSE.

You may know of or be involved in an ongoing software project. You can choose to work on that project for credit in OOSE. Ideally, you will convince a group of OOSE students to join you. In exceptional cases, I may allow you to individually work on that project (as long as there is a team involved and you will experience teamwork--and its challenge--through your involvement). Occasionally, I have ongoing projects and I recruit OOSE students to work on those.

When you join a team that is already working on a software project, you don't have the burden of e.g. product discovery or figuring out the right software stack to build it in. These decisions have been made before. On one hand, you miss the experience of building something from scratch--which is fun and challenging. On the other hand, working with an existing codebase could be far more challenging than starting from a blank slate! It requires experience and perseverance to read and understand code! If you ever get a job as a software engineer, chances are you will be doing something similar to the "Internship track."

Learner track

Replicate an existing app from scratch!

Not everyone should be an entrepreneur! I'm certainly not cut out to be one. If you don't have new app ideas, you can replicate an existing one for the learning opportunity that it affords you. Better yet, focus on a subset of its features and try to improve them if possible. If you choose to pursue this track, I will expect a polished end product from you! Indeed, in this track, there is a clear specification of what it is you are going to build. In contrast, "product discovery" (in the entrepreneur track) is in itself a challenge.

Caution

Once you have decided on a topic, you must get the instructor's approval before proceeding with it. Do not start working on a project until you obtained instructor approval.

Released under the MIT License.