Signed , sealed, deliver

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnell.

There’s a moment, at the beginning of any project, where you start to organize how the process of making the project is going to be. It can be a little hard to think about «how to organize a software project», because there are many elements involve. But when we are in this phase of organizing the project we need to have in mind, that a project consist of three mayor phases, which are: Discovery, Invention and Implementation. McConnell says that this phases or steps, are going to cross paths during the process of the project. In my personal experience, I can assure you that it is true. But also you have to take in consideration that each phase needs its own time and consideration. In the projects that I have been, we didn’t respect very much the «time» each phase needs and we just make a combination of the three at the same time, which can lead to make a lot of work in the future.

Returning to the topic of how to organize a software project, well, there are plenty of methodologies, one can follow. There is the waterfall development, spiral development, code and fix, and many more. McConnell in his book, proposed the «stage delivery» method. This method consist of creating the project in parts, rather than in a whole. For a better explanation, here is a picture of how stage delivery works.

 

Screen Shot 2017-03-07 at 12.44.35 PM
Fig 5-2 from Steve McConnell book «Software Project Survival Guide»

The picture above shows, how the stage delivery method needs to be develop. As you can see, the upstream activities are only realize one time, while some of the downstream activities are in a constant cycle, until the project is release. I have kind of  work, with this method, because in the school projects every partial teachers ask you for your advance. The difference comes, when instead of release the software at the end of each phase, my team and I, we just showed what we have done.

McConnell list some of the most important benefits of stage delivery, which are:

  • Critical Functionality Is Available Earlier
  • Risks Are Reduced Early
  • Problems Become Evident Early
  • Status-Reporting Overhead Is Reduced
  • Staged Delivery Makes More Options Available
  • Staged Delivery Reduces the Possibility of Estimation Error
  • Staged Delivery Balances Flexibility and Efficiency

All of this advantages are great, but in my opinion one of the most valuable is that risks are reduced early. I say this, because I have been in situations where the planning wasn’t good enough and almost at the end of the project, there appears dozens of bugs and problems that could have been solve in the beginning of the project.

Take in consideration, that McConnell is just proposing one way out of other ways of doing a project. He mention this one because is the one that he observed that has more advantages in some cases. According to the situation you are in maybe stage delivery won’t be the best approach to make a project. So before you start your project organize yourself and your team, and try to select the best methodology according to the project.

Stay Safe

A.C.


References

McConnell, S. (1998). Software Project Survival Guide. Redmond: Microsoft Press.

Planning DNA

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnell.

In a previous post I have talked about the importance of having a process in a software project. And as a mention also in the post, planning is fundamental in a project for it to succeed. When we talk about planning we take in consideration many things, like: the software development plan, take estimates, review those estimates, having a quality assurance plan, etc. Planning goes beyond telling everybody what to do, how to do it and when it needs to be deliver. Planning is about checking if the project could really be made, checking risk that can appear, having control of the project.

McConnell mentions in his book that the success or failure of the project can be determine as early as the 10 percent of the way of the project. This is a very important fact for project that needs some kind of funding. For the projects that need some money to continue or to even start, McConnell proposed a two-phase funding approach. Basically, what this approach is about, is to go and find some one that can fund you for a exploratory phase, which could be the 10 percent of the project life; and after that, have a meeting to check the feasibility of the project. McConnell called this meeting: the planning checkpoint review.

Before going to the planning checkpoint review, there are some things that need to be ready so they can be shown, like:

  • Vision statement.
  • Business case for the software.
  • Top 10 risk list.
  • UI prototype.
  • Detailed software development plan.

This were just some material needed before the meeting, but there are more things to add to the list. This planning checkpoint review gives three major benefits, to either the developers as to the funders. The first benefit is that the funders can take the decision of either continuing with the project or cancelling it. This is a good decision to take in that moment, because the project hasn’t demand a lot of material, so it would be a big lost for either side. The second one is that this creates a more reliable funding for the project. And the third one, is that this make the project team to focus only on upstream activities and to make them correctly.

If the project is accepted, there is going to come other factors to take in consideration, like:

  • The risk management
  • The project control
  • The project visibility
  • Peopleware
  • User involvement
  • Product minimalism

And of course one of the most important factors: shipping software. Each of this factors are very important to have in mind so the project can go the correct way.

Stay safe

A.C.


References

McConnell, S. (1998). Software Project Survival Guide. Redmond: Microsoft Press.

How to avoid the avoidable

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnell.

When we work in a project, we are always under pressure of delivering the work on time. We are so concern that the project goes the way it’s suppose to go. We sometimes start by looking at the general plain, instead of looking at the details that compose that plain. With all this, I mean that in a software project we start by seeing only the requirements and we define other things and then we start coding right away. This is a very bad practice if you are in a medium or large project. In this example, is lacking a very important component that every project should have and that is a: process.

A process is a key factor so a project can succeed. But what do I mean when I say the word process? According to McConnell a process can have different meanings in a software project, like for example:

  • Checking that the requirements are written and well-define.
  • Developing a quality assurance plan.
  • Making a plan on how the software is going to be develop.

Having a process in your project can bring you many benefits, however there are people that doesn’t look at it in that way. They think that making a process, is going to take away some of the precious time of the «real» tasks. By my short experience in the computer science department, I can say that I know plenty of people that think that way. That once they know the requirements, they want to start coding right away. And this people have the idea that because they are «engineers», they don’t need to plan; but they are completely wrong. Not planning in the begging can bring you A LOT of planning in the end. And believe me, is not going to be pretty.

A software project can be divided into two major parts, which are the: upstream and the downstream. The upstream make reference to the planning and design phases of a software project, while the downstream is more about the technical part of the project, like coding or testing. McConnell explains in his book, that is very difficult to solve a problem that is from the upstream, when you are already in the downstream, and this is so true. Imagine if you got the requirements wrong, that instead of developing for IOS, it was meant to be develop for android devices; and you are already in the test phase. This is a very costly modification that’s need to be made.

Remember making a process not only save you money, but also time; and not only your time, but other’s as well. Making a process is going to take you plenty of time at the begging, but at the end all that effort is going to be rewarded. 

Stay safe

A.C.


References

McConnell, S. (1998). Software Project Survival Guide. Redmond: Microsoft Press.

Starting from scratch

This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnell.

«Software projects fail for one of two general reasons: the project team lacks the knowledge to conduct a software project successfully, or the project team lacks the resolve to conduct a project effectively. This book cannot do much about the lack of resolve, but it does contain much of the knowledge needed to conduct a software project successfully» (McConnell, 1998).

Since I started studying  computer science, I been part of many software projects. Some of them were small and simple, while others were a little bigger and more complex. Some of them I had to make them individually, while others I had to work with a partner or a team. The projects start to get more complicated as I am advancing in my studies. Most of the projects that I have done, have something in common: They had way to little organization. By this, I mean that I didn’t had a process to follow or a plan to make this projects. I just simply thought of how to solve the problem and I coded the solution. Most of you may think «Well you are in college, so that’s acceptable», but as I am getting closer to finish my college studies; I am starting to realize that I need to be able to make a plan for making a software project. And that’s one of the reason for reading Steve’s book, so I can get an idea of how to conduct a good software project.

204163841_d6c2e1a4b9_z
«Planning close-up» flickr photo by Dan Foy https://www.flickr.com/photos/orangeacid/204163841

In his book, Steve starts talking on how this book is going to help the software community have an idea of how to manage a software project. In here, he says that this is only a model or a process that he suggest, but that you are free to follow any other processes you want, because it depends on how big or how small the project is. There are many cases in the software industry, were projects have failed because there wasn’t a plan in the beginning. It’s important to identify when a project is going into the correct path or if it is going the other way. But before starting a project is very important to take in consideration some basic notes.

McConnell uses in his book a pyramid, like the one of Maslow’s, to make a comparison of the basic needs that a software projects needs to be able to run effectively. Just as in Maslow’s pyramid, in the one of McConnell’s the lower parts of the pyramid needs to be satisfy before moving to the next level. This pyramid focus on having a good attitude and having goals as a individual in the project, but also having a good team dynamic. In any kind of project, I think that is important that every member of the team feels good and also that they feel included in the project because that is going to bust them up to keep going and deliver a good product. 

When working in a project, theres plenty of people involve. Some basic «characters» are the client, the project manager, the programmers and so on. Before starting a project, every person should know their basic rights. This rights are basically, what can they demand and what they can’t. McConnell listed some basic rights for both, the client and the project’s team. Has he says in the book this not only make the project more enjoyable, but they are a requirement to work. Imagine if there wasn’t any kind of rights that the participants involve had. It would be a total mess. It is very important that this rights are clear since the beginning of the project to all people involve.

McConnell provides in his book a test to see if your project is going in a excellent way or if it is at risk. If you are currently involve in a project and you think that is going good or even bad, you should do the test any way, to see if your thoughts are right or if you are seeing thinks in a very different way.

Stay safe

A.C. 


References

McConnell, S. (1998). Software Project Survival Guide. Redmond: Microsoft Press.

#TC2027 #TBT

The semester has come to an end, and with it, it comes to answer the ecoas and make public reviews about your classes during the semester…ok, I am just making a review about one class: «Seguridad Informática» aka #TC2027. This class was imparted by Ken Bauer and this is class is the reason way I made this blog. For me this class had its pros and cons, like many other classes (but most of my cons I think it was me instead of the class, but I am going to talk about that in a little bit).

giphy-9

So this class was a little different from other classes, because it involved a flipped learning methodology (which flipped many of my classmates and I include myself in this one) and an abolish grading policy kind of situation. So the good thing about this class was that Ken tried to take us out of our comfort zone of learning, which is both, good and bad depending of how you see it. At first, I was very disconcerted about this situation, because I am not very into writing blogs (or any kind of writing), so this was kind of a challenge for me. Then the abolish grading policy, I saw it as a good thing, because it either proves own well you know yourself or how well you trick yourself; and besides it was a new policy we never had before so there’s that.

For me the hardest part of this course was writing the blog post, because as I mentioned I am not use to write this type of things. So I was stress, because I didn’t wanted to make a blog that was very «school alike» and I wanted a blog that was more «»me»». At the end, the process of making the blogs was entertaining, but if we are being realistic, it wasn’t my thing. I know that with this, the purpose of Ken was for us to more proactive and be more self-taught people, but is hard to make blogs (and yes I know I am repeating that a lot). But again, If I am being completely honest…I kind got better during the semester at making blogs…I think.

giphy (10).gif

From this class, I like that from time to time, Ken brought some very interesting people that were working in the security field, and also some others that weren’t in the field. So that was nice. Also another aspect that I found very enriching was the appointments with Ken. At first, I was skeptical about this, because I thought that it was going to be very awkward and that the conversation was going to be very forced, but it wasn’t AT ALL. They were nice conversations were, I could learned more about Ken and also I know that he is a person that I can count on if I need any advice in the laboral aspect of my life. Also I like that Ken wanted to push us to have a digital persona out there, because let’s face it, the internet can connected us and that’s what Ken wanted. I also like making collaborative blogs, because some how it make them easier.

I know that the blogging thing wasn’t for everyone, so I can recommend maybe changing that for making less blogs and having a balance between theory and practice. I know that I didn’t realize some of the practices we had, but they were very interesting (I know I am kind of contradicting myself here, but that’s right).

In general, I can say it was a good class, not my best but never the less a good. I personally would have like having a couple of lectures from time to time, but that’s my own personal opinion. I surely recommend to have a class with Ken, because he is an excellent teacher and mentor, and because he is a teacher that is always renewing his methodologies and that’s pretty good. So to future Ken’s students I recommend you to take advantage of Ken (in the good way) and try to learn the most you can from him.

Excuse me, who are you?

Each person in this planet has something that identifies him/her. It could be a physical characteristic, like nose shape, eye color, hair, a scar, etc., or it could be a non-physical thing like voice tone, name, the way you speak, and so on. We even have legal documents that verify who we are in a society. No matter in what part of the world we are, we are someone and we can probe that we are the person we say we are. But if the pass from the physical world into the digital one. In the digital world, we can be any one and there’s no one that is checking if we are really who we say we are, or maybe there is? The truth is it depends on how you see it. Because there are websites, like Tumblr that ask you for a user and a password, so there is really someone checking that the user and password match, but once inside Tumblr is another story. If you came to realize, there are many places in the digital environment that ask for a user and password, and that is important matter in the security aspect.

Seguir leyendo «Excuse me, who are you?»

The network is down

Do you remember you life before the internet? where you had to go outside to socialize with people, and laugh to your uncle’s bad jokes instead of memes. Yeah a pretty scary scenario that is in the past. Luckily we live in an era where the internet has become a major part of our lives, but how does the internet can reach SO many people? Well, that’s because the internet is just a HUGE network, where everybody is connected to. That network is a network that is formed out of other networks, and those other networks are formed out of OTHER networks and so on and so on. This networks are made of various components, like: computers, servers, routers, hubs, switches, cables, and other items. All this components are key elements so a network can function properly, along with the right configuration in each item that need it. So this are VERY important and need to be secure from any type of attack or incident that might happen, or else the network can have some problems. That why network security is essential.

Seguir leyendo «The network is down»

Please, not Windows again!

#CParravirgen

As part of the collective knowledge, I parter up with my friend Alex Carrillo, please give it a check at his blog too!

This time, we decided to work together on a blog about OS security. Here is what we came up with:

An OS can face many types of threats, and it needs to be able to protect itself. Here we will list some features or actions, that an OS needs to have or be done.

  • User Authentication
    • User authentication is a very important aspect to have, because with this, the OS can give access only to does people that have a user and a password. if an external person tries to access the computer by trying an invalid user and password, this will immediately reject them. Also by creating users, the OS can gave special privileges to some users. Of course, to be able to do that…

Ver la entrada original 734 palabras más

Security Countermeasures

We live in an era, where everybody has some kind of digital device. Most of us have at least 2 of this devices, if not more. We interact with them in a daily basis; in our work, in our home, at the school, at entertainment centers, etc. This gadgets are taking over the world, but most importantly our lives. And if this devices are being an essential part of our lives, well… we are very likely to have some security threats on our way. In our lives, we are always expose to some kind of threat, even if we like it or not, and if we have a digital device, we are expose to a different new kind of threat, that it didn’t exist before.

Seguir leyendo «Security Countermeasures»

Security on the web

giphy-5

OOOH the internet such a beautiful and harmonic place yet so full of stranger dangers and mischievous things. People must of the time are very naive when they are on the internet. They are not well aware of the dangers that the internet has. Even though this seems like I am giving a bad reputation to the Internet, I am only saying the truth. Yes, the internet is one of the most amazing inventions there is. It has help people from all over the world communicate in a way it seems impossible before and has brought us many other wonderful things. But sometimes there are people that take advantage of this great invention and try to use it for malicious purposes. Every time we navigate in the internet we are expose to some kind of danger, but if we are smart enough we will be able to not fall into the tramps.

Seguir leyendo «Security on the web»