Hello there (General Kenobi). Welcome back to my blog posts. Grab a drink, grab your snacks, ’cause today we’ll be talking about models and standards for software process improvement (woo-hoo?). I’ll try to keep it short, but I can’t promise you anything. In fact, it’s probably gonna be a rather long one.

General Grievous saying General Kenobi. Taken from https://gfycat.com/freshgleamingfulmar-quotetheguy-definition-highdef-movie

So uh, what are these models and standards all about? Well, they’re supposed to improve the way we develop software by planning and implementing new activities that are designed to achieve specific goals set by the company you work for. …

Software never was perfect, and it never will be, get used to it. “But why?” you may ask. Well, if we knew why, we’d probably be working on making it perfect, but that’s the thing: we don’t know what the hell we’re talking about when we refer to “Software Quality”. That’s right, today we’ll be talking about software quality and why we, software developers, aren’t its biggest fans (spoiler alert: because we can never seem to achieve it).

Let’s start with probably the most important question: what is Software Quality? Well, it’s an ambiguous term that we like to throw…

— NOTE: This was an unpublished draft from a couple years ago. I'm not even sure why I wrote this, but after reading it, I figured it wouldn't hurt to just publish it, even if it feels rough and unfinished. There are some good pieces of information and knowledge in this blog post, and it would just feel wrong to keep it to myself. I might come back to it in the future and re-write it (maybe).

After dividing your big problem into several small ones, the next big question is: “where should I start?” It’s easy to get confused…

As programmers, we should all be familiar with the object-oriented concept. Just in case you’re new to this, here’s a very quick summary of what it is: before starting anything (analysis, design or programming) you should get used to looking at everything as an object. An object has a set of attributes that describe it, and a series of methods that it can perform. The trick to mastering is being able to identify what identifies an object, and what an object is good at doing. That’s a really brief explanation, but I’m guessing it should be enough to help you…

This is a software development process that helps us avoid duplicate code, making it clearer and easier to read and comprehend, facilitating early bug detection. This is a process that is repeated several times during very short development cycles. With this, you need to transform your requirements into test cases, and with each cycle, your software is improved and is now ready to take on a new set of tests. With this, you’re always making sure that you software meets all the requirements.


For each new piece of functionality of an application, a new test is created to make sure…

Testing is a big, important part of the software development process. In this phase, we make sure that we identify as many bugs as possible, and fix them before we deliver our project. Well-done testing makes sure that you solve problems early and spend less time looking for bugs later on.

This step is usually very time-consuming, and more so if you have no idea how to test efficiently. If that’s the case, you might not be able to make sure that your software does what it’s supposed to, or if it performs the way you really want it to.

Code testing

As software engineers, we should all already know that we must always test our programs before delivering. The two main questions you should always ask yourself before even considering showing your client a product are:

  • Is it verified?
  • Is it validated?

While these two might sound similar and they both refer to what the client wants to build, they refer to two completely different things, and should never be confused when making sure that your code is ready to be delivered.


This is the process of evaluating our code to make sure that the products of any given development phase…

It’s also known as peer review or walk-through. It refers to a thorough review of a code module during the software development cycle to make sure that every requirement is met, and all possible improvements have been implemented. Code review can be applied to small parts of a program, such as subroutines or methods, or complete programs to make sure everything works as it should. …

Back in 1991, when the article was originally published, Lisp had been doing great as a programming language; it was about to become a standard, it was achieving excellent performance, had good environments, amongst other things. However, its success didn’t depend on how good the language was, but on how its community took advantage of that, and they were failing to do as well as they could’ve.

Lisp’s successes

Lisp had been in better shape than it had ever been in past years, and it was due to various aspects.


One of the major successes for Lisp, is that there was a…

Not quite, but we’ll get there. As much as we’ve been working in order to make our software better, we only ever work on one thing at a time. Never do we stop and think how we could combine everything we’ve learned through years of education into a single process that we can reuse to write great software consistently. Well, today we will create a recipe for success.

Image of recipe

We’ve all got lots of techniques and ideas tot create good software, but rarely do we ever use them together. We should all learn how to take all the individual things that…

Jorge Andrés Pietra Santa Ochoa

Decently-fed student majoring in Computer Science. You probably don’t know me, but you will.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store