Written by: Marc Jerome T. Tulali
Scholar batch 2021-2022
School: Mariano Marcos State University
Students can sometimes be loaded with school requirements, a report to be done, an assignment to finish, or maybe an undergrad thesis to write. However, we can’t ignore the need for software development projects as these are so useful in showcasing our code quality, problem-solving skills, and our knowledge and competence in a specific programming language or computing domain. Aside from that, these projects can help us to understand a language or framework feature and also, may help us solve a problem in our community.
Sadly, students can be on frequent work for school submissions, reviews, or exam preparations which result in unfinished projects and a possibility of being lost in the track.
To prevent this from happening, it is essential to not only think about the coding aspect of it but to put software engineering into perspective.
For a formal definition, software engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance.
The definition might be too formal to consume but ill show some parts of it as it is helpful in managing software development projects in the midst of much school work.
Now, to demonstrate the process of managing software development projects, let’s try to make a blog site.
Firstly,
1. Have an MVP
MVP means minimum viable product. It is a development technique popularized by Eric Ries in his book, The Lean Startup. Having an MVP means having enough functionality to be used by early adopters of the software.
As students, we get excited to start a project for the reason of having something to show off to employers or maybe just to learn, try or build some cool things. However, there may be a feeling of being unfulfilled unless the project that we started will be finished. Having an MVP allows us to release a functional project possibly in a short period of time.
For our blog app, the features that may be included in our MVP are authentication, management of articles, user profile, tags, and as well as with a brilliant design. Other features can be added later in the next incremental process of development like the implementation of multi-author feature, recommendation algorithm, bookmark feature, just to name a few.
2. Organized it into a board.
The use of a board is a practice in Scrum & Kanban. These are agile methodologies and it’s not the focus of our topic right now. Now, going back, this board is very useful since it can give us a visual perception of what features or bugs are to be done in the project. The board can be simple as having a To-Do, In Progress, and a Complete column. You can list tasks in the to-do. You can move one to the in-progress column when you start doing it and move it to the complete column once done. It really is a good help in visualizing tasks for a project.
3. Set priorities, estimates, and deadlines.
Time management is a very important skill to develop. In fact, it is a required skill in managing projects whether it would be school work or software development work.
You can set priorities in the task that was listed on the board. This can be urgent, high, normal, or low. With the priorities set, you know what task to do and drag it in the in-progress column.
Set also estimates. If you have no idea how much time will you consume for a given task, just set your estimate and keep track of it. This is because there is a possibility that a task will be repeated on the project, or, on other projects. Repeatedly doing these tasks with an estimate will help you make your estimate closer to your actual time of work. Also, setting estimates helps you to know if you can meet a deadline or not.
4. Commit to work until the project is done.
Due to the time needed to accomplish other requirements in school and work as well as other chores at home, it is tempting to leave a project unfinished. However, it is not so rewarding when we do it that way. Also, what’s the point of our MVP, board and priorities, and estimates when we leave our project unfinished? Commit to work and have a working project. You can show it to other friends The feedback can be used for another coding increment, in which we can use it as features or bugs to be listed in our board and set estimates and priorities. This new increment will again require us to manage it. Thus, improving our management skills.
It’s great when students develop software in order to learn a framework or programming language feature, to polish one’s code quality, or just to have something to show off to employers. But they must realize that developing software projects is not only coding. It’s an engineering process concerned with all aspects of software production involving software project management. Having this skill is great as it helps them to develop software amidst school work and also, it prepares them to work in the tech industry.
References:
Hunt, A & Thomas, D. (1999). The pragmatic programmer: From journeyman to master. Addison- Wesley Professional
Krasadakis, G. (2019). The minimum viable product explained. Medium. https://medium.com /anoda-mobile-development-agency/what-is-minimum-viable-product-and-how-to-make-it-right- 8b885001c6f5
Sommerville, I. (2015). Software engineering (10th ed.). Pearson Education.