Verification and Validation of Software (V&V)

--Originally published at Erick learning experience

Have you ever been in the situation that you finally finish a feature in a project and then the next day the project owner told you that it was not what he wanted and you have to make a lot of changes or even create again that feature from zero? well you can prevent those scenarios using verification and validation of sotware.

V&V is the process of checking that the software meets all the specifications given, it fulfills the purpose of the client, making sure that the software fulfill the laws in the countries that is going to be available, it also helps to reduce the number of bugs at the moment of deploy.

So for the part of software verification you can use some tools for making test cases and see which outpút it should give to you with that input and reviewing all the logical part of the software to answer the question are we building the product right? and for the part of validation the ideal case scenario is that the client is available all the time of the development and ask continuous questions about if what the software is doing is what it wants, but this is unlikely to happen so you can use some strategies defined already to follow some steps to ensure a good communication with the owner of the product and the development team to fulfill all the requirements for example the waterfall development process or the iterative development processes that are more use nowadays because the constant change in the world of technology.

Iterative model

Talking about requirements is very important not to only focus in the functional requirements, for example you are building an app and you can have your payment methods in your account but in the non-functional requirements it’s Continue reading "Verification and Validation of Software (V&V)"

Models and Standards for Software Process Improvement

--Originally published at Erick learning experience

Models and standards for software at first look like something strange and unnecessary when you are working on your own, but these standards are helpful to evaluate the software quality and in this way you can see what areas of improvement you can work on and how to optimise your current project to make a better product.

There are some standards for ensure quality in software some of them are the following:

  • CMMI
  • ISO-15504

Capability Maturity Model Integration (CMMI):

CMMI was developed at Carnegie Mellon University. It is required by many U.S Government contracts, just by that you can see how important are these models to ensure that software being developed by certain company have all the requirements of quality needed, this model focus in the part of product and service development, service establishment, management and product and service acquisition, this is important as well because thanks to this best practices that this model propose is easier to maintain the software.

The Personal Software Process (PSP) provides a operational framework with the objective of helping a person in how they manage their own time, productivity. This help teams of managers and engineers to organize small projects or large projects. PSP has as objective to improve the levels of quality and productivity of the team developing those projects. In this framework or model each team manage itself, they do their own plans, how they track their work and are responsible of the quality of their work, but before someone can take part on a team is necessary to learn about TSP(Team Software process) because in each team there are roles to ensure the quality and organization of the team.

Software Process Improvement Capability Determination (ISO/IEC 15504) has the following objectives:

Software review

--Originally published at Erick learning experience

Software review is useful to validate the quality, functionality and features and components of the software. Software review consists of testing the product and making sure that it meets the requirements stated by the client.

Some reasons to consider software review important are:

  • It helps to get clarity in the initial states of the product.
  • Helps to plan testing time and costs.
  • It helps to reduce the number of bugs in the final software.
  • It helps to reduce cost because bugs found in earlier stages are cheaper to fix.

Types of software review

Software Peer Review: As the name said, this type of review is when two developers examine or resolve defects in the code. Normally in this type of review you can have pair programming this is when two developers code together an in this way they can prevent bugs while programming. Another type of peer review is called Walkthrough:
where members of the development team are guided by the author and other interested parties and the participants ask questions and make comments about defects.

Software Management Review:

It evaluate the work status, this is a systematic evaluation of a software acquisition, supply, development, operation and maintenance, this is helpful to monitor progress and determine the status of the work, what is done, what is remaining, how much time is left, confirm requirements made by the client, and check if the resources are being used in the best way possible and make changes to improve this in case of find areas of improvement.

Software Audit Review:

This type of review is the one I have experienced before and consists of a group of people external to the project that review the code or the product to see if the software meets the specifications made by the client of find Continue reading "Software review"

Tools for V&V

--Originally published at Erick learning experience

Today I am going to talk about an important topic for every software engineer and is to have a version control for all your programs you are working on, why? well let’s find out.

Have you ever been on a situation when your code was working good but when you start creating new features you did something and now your program is not working as intended? Well even if you are working alone a version controller is very useful, thanks to a version controller you can prevent this accidents uploading the version that was working and if you do something wrong while modifying your code you can always go back to the old version without having to spend a lot of time trying to make your code run as before.

Another advantage of using Version controllers is that it makes a lot easier collaboration with others, you can be working in one file while another person create and modify another file and when you finish and the other person as well instead of sending the files you just upload those changes to the version controller and everyone can see your changes and download them in their local copy much faster than sending the files by mail.

Now before continue with what you can do with a version controllers I would like to recommend some, so you can start by downloading a version controller called git, you can download it here:, when you install this, now you have to decide which platform you want to upload your project, the main I use is called GitHub.

With Github you can create repositories, where you can upload your files and share them with others, private or public. This tool have many options, you can create different branches where you can

Continue reading "Tools for V&V"

My experience on testing

--Originally published at Erick learning experience

About software testing in my first projects I used to just code and run the program hundreds of times to see if the program was working and if it wasn’t working the way expected, then I started to see in which part the error might be, okay but this isn’t sounds bad no? you always do that, try to run the program and see if it works and if it doesn’t work then you fix it right? Well yes, but this is very time consuming, first because you are making the software without a previous plan, so that’s why in my opinion is important to start making some testing or stress tests to your code so you can prevent first errors in production that you never expected because you never try that part of the code, and next avoiding to spend a lot of time searching where the error occurs by testing each part of the functionality isolated, so if a test fails you know specific in which part or in which functionality the software is not working.

I don’t know if you have experienced when coding, that you have to stop coding and spend a lot of time typing the input over and over again and run the program to see in which part the error was, and the you make some changes and again you have to spend time making all the process and typing the input necessary over and over again until it works, that in my opinion is a waste of time and effort, because you can create a program to test that function in particular and you don’t have to type the same input, another advantage of making tests is that you think about how the program is going to be structured and which part

Continue reading "My experience on testing"

Software Quality

--Originally published at Erick learning experience

Software quality is a very important topic that is sometimes overlooked in the school because you are just focus that the program runs and the output is correct but there is a lot more things you have to consider.

So to start talking about the topic first is important to clarify what is software quality, in general a definition to it is that software quality is bug or defect free software that is delivered on time and within budget and the most important part meets requirements and expectations and is maintainable. So there are five principal characteristics:

  • Effectiveness
  • Efficiency
  • Satisfaction (solve the problem)
  • Safety
  • Usability

So why this is important? this things are of common sense no some might say, but when you are working on a real project you are not on your own, you have to write good code that runs well and do what is expected to do but you have to do some extra considerations, first the facilities you have in order to increase the functionality of your software and integration of new functions or external libraries, this is important because I have seen cases when the client wants some changes and the code written is not scalable, so the programmer has to change a lot of things and recode some functionality in order to integrate that new function. Another consideration that is ignored a lot of the times is that you have to write code that others can understand, this is very important to create good software, this because imagine the case that you are no longer in the company and they have to make changes to your code, if the code is hard to read then the software is hard to maintain and the new programmer will spend unnecessary time trying to understand your

Continue reading "Software Quality"

Final Exam

--Originally published at Erick learning experience

During this course I have learned a variety of things, during this last two partials I learned a lot of things that only the experience can teach you, one of them are the importance of making a list of contacts and be connected to people, this is one of my weaknesses because I like to do almost everything alone and I don’t have experience in working on teams, I think one of the principal reasons I don’t like to work in teams is because I have to spend a lot of time making sure everyone knows what they have to do and in occasions the members of the team disappear and I have to make everything alone with the time remaining instead of doing it alone from the beginning.

Another thing I learned is the importance of starting working during the career and not just wait until I finish my studies, this because first it helps to know what I want to do while at the same time I gain experience and it can help in the future to get a job or to solve problems I already had in last works.

Talking a little about the peculiarity of this semester of the transition of taking classes physically to take classes online was very challenging for some students and schools, that’s because in my opinion people in Mexico are used to work face-to-face with others and they get distracted easily if they work from home, but that instead of see it like a problem you can see it as a challenge because you should perform the same and have to control yourself doesn’t matter where you are.

In my case the Covid-19 is a challenge in terms of economy because all the income we have now was very reduced thanks

Continue reading "Final Exam"

Chapter 23

--Originally published at Erick learning experience

They mentioned again the importance of a goal and estimates in a project, so in this way you can motivate your people but without too much pressure and stress, because as we saw in last chapters people don’t think faster with more pressure and in my opinion sometimes is even worse work with a lot of pressure because you can make more mistakes.

Another thing I consider important on this chapter was all the lessons that Mr. T learned through all his projects and the importance of having a journal to share your learning with someone else and in case you want to make some reflections about something this journal can help you and I like how Mr. T share his knowledge without anything in change, some people would be very selfish about this and keep this knowledge to themselves but in my opinion is better to share what you have learned because thanks to that you can help to other people improve what you have done and crate a better way of doing things and learned even more about the people you teach.

And in conclusion of all the novel I like how they make the story interesting and at the end of each chapter the novel has a little summary of what Mr. T learned in each chapter, I believe that is a very good way of making someone to do not forget to easily the lesson of each chapter, first because you see the problems they were facing through all the chapter and how they solved it and then at the end of the chapter was a little summary to reinforce all the knowledge of the chapter.

Chapter 22

--Originally published at Erick learning experience

In this chapter at the very beginning I agree in the part that said the importance of having a deadline and at the same time a goal, because the main difference between those two are that a goal is for satisfaction and it can help you to motivate you to keep working hard the opposite of a exaggerated deadline where instead of motivating you to keep working it stress you and make you feel the pressure that can be cause of more errors at the time of working.

The part when Allair start talking to Mr .T it was like all the summary of what you don’t have to do in a project, he didn’t care about their last employees, then he decided to fire some of them just to make space, and then he decide to reduce salaries and rule by fear just as he threat Mr .T and try to intimidate him, but with everything I learned in last chapters I already know what was thinking and how he was going to respond to that.

Another thing I consider very important was how Mr. T know almost everything about all his coworkers and how without shame he said which coworkers can do the same job that he did in those projects and that characteristic in my opinion was very important, because it means that he is not a selfish person and recognize the work of all.

Chapter 20

--Originally published at Erick learning experience

In this chapter I agree in the part when they said the importance of having a schedule to do a meeting and make it public so people can see if is important to their respective area or not, because if the subject of the meeting is not important to them they are only wasting their time and making the meeting more difficult, and if you add factors like insecurity about the project is obvious that all the people related to the project will come even if they are not necessary in that particular meeting and for the people that truly needs to discuss something is going to be harder and time consuming , that’s because with more people is harder to talk and ask opinions about.

How to Run Effective Team Meetings - Tameday

In the part that they started to talk about how you can prevent meetings with a lot of people I like the things Dr. Winnipeg took in consideration first the people that needs their time in another important thing and are not very necessary in the meeting, another thing he took in consideration is do it in a polite way, then make a reunion at the beginning of the meeting to keep focus on the objective of it and create trust that you are only going to talk about things you put in the agenda.

Another important thing I consider about this chapter is the part they talked about anger in the work, I consider that be angry about something can represent fear but I consider that most of the anger in a work is to suffer an injustice in the work and you can’t solve it alone or it will take a lot of time to solve it.

Chapter 21

This chapter was very funny at the beginning how Belok in a mysterious Continue reading "Chapter 20"