Through the partial and well, all of the semester I learned about successful project management and the steps one could follow to develop as a developer. Being a developer is fun, but it is also filled with daunting tasks, requiring every bit of your strength and sleep hours to accomplish. That is why we as developers need to be great at either time management or working under pressure.
Yes, working under pressure is a skill every procrastinator must have and is a great advantage to complete tasks, but this skill has its limits and there are some things that cannot be done in a single day and have quality at the same time.
Organizing yourself is a very important part of being a developer. Especially because we are humans, and humans tend to make mistakes, organizing time can really help mitigating the time lost trying to solve a human mistake.

Through the semester, I felt really comfortable with the course since it takes into account the existence of other classes and lets us have more freedom in terms of deadlines. Even with the flexibility, just as everything must come to an end, the course needs to collect the work done in order to evaluate us. Deadlines, as much flexible as they can be, are inevitable. And so it was time to project in this blog what I learned about this past partial.
In the first 2 partials, through the masteries I learned how to plan ahead, how to execute the planning phase and convert it into the “doing things” phase and now, in this final partial, I learned how to check if everything went alright.
We learned about 5 different topics, but this time I only researched 3 (The importance of time management). At the end we as always tried to implement them in our real life project simulation. The topics viewed were:
Code revision:

Code revision is something we may have all done in some point of time. It consists, as its name suggests, of reviewing code written in order to find mistakes, errors or bugs. This is a very important step in coding and it then has to preferably be as effective and efficient as possible. That means there must be some kind of practices in order to efficiently review code.
Verification and Validation:

Verification and Validation is the process of investigating if a software satisfies specifications and standards, it makes sure the software can complete the tasks it was intended to do.
Verification is the process of making sure the software verified can do the tasks imposed without any bugs. This can be resumed in making sure it has no errors, no weird bugs and functions as it should
Validation is the process of making sure that the software can actually fulfill the requirements imposed to it. It is the process of checking that the software created is actually the software we want or need.
Object Oriented Testing:

Object-oriented testing (or OOT) is a collection of testing techniques to verify and validate object-oriented software. As we all probably know, testing is a crucial part in the development of a project, and if we don’t do it effectively we will be left with a high chance of having a buggy code, or a non-optimized program or one that doesn’t even work at all.
I personally find myself unit testing a lot, which is a kind of object oriented testing.
Project:
The final part of the project was completed! This was the wrapping up of the investigation and planning phase, we were asked to make a video of ourselves explaining it and giving our personal views about it. We also were asked as always to write a document with our advancements. The final steps were receiving feedback and adjusting the system to fulfill the new requirements of the stakeholders.
We received some feedback from each stakeholder, majorly it was positive, but there was one person who changed the perspective of our project entirely. This person is in charge of giving us knowledge on the “hardware part” of the project, meaning he was selected to give us advice in the type of sensors, how many would we need and how could they power themselves up. After hearing what we have done, he proposed reducing the number of sensors, since it would be a very resource and money expensive thing to do, he suggested for the sensors to be in an area, checking the cars that go in and go out of it. This would greatly reduce the number of sensors needed.
As we were focused more on software development and not to worried about hardware, this fault completely missed us and we did not realize how difficult of a task it was for each sensor to work properly for an extended amount of time. Since our project was focused on organizing the software part of the project, the changes we did were not that big, but it was a really good observation from that stakeholder.

For the time I’ve been in this course I think I have grown to be more responsible and more aware of time management. I feel like I have the ability to learn in my own now, thing that is very important in order to succeed. I understood that a developer doesn’t just sit in a chair and writes code. It is not just receiving a request and immediately jump to your computer to start coding. A developer has to plan ahead, socialize, organize himself, receive feedback and react accordingly. Like most projects in life, software development consists of planning, executing, and getting feedback, and you may not succeed in every plan, but being passionate of what you are doing , organizing yourself and never giving up is the key to success.