Ir al contenido principal

“God is in the details.”



When we talk about architecture,  what we normally think are buildings, their characteristics, how they make beautiful our city. We do not think about the time architects take to build something big and beautiful, and how changes affect the whole project.  

We know that architecture is something that has been evolving since the beginning of time, where people tried to build what they needed. But also, this science has been evolving and the way people build takes more time and there is science behind every decision they make.  

When we think about the software we do not identify this process that we need to follow to create something functional, useful and that will be used, we think about the algorithms or complexity of the problem.  We are not used to planning, hear the necessities that people have and even the methodology that we should follow to keep our software for future generations. 

 I consider that this practice, of planning and following some methodologies that might facilitate the development is something that we are used to ignoring. Anyway, and personally speaking,  I try to follow this kind of methodologies due to the fact that they give you examples of what you expected to do.  When I try to use these methodologies is when I do not know what to do, or when the problem is really complex and I do not know where to start. 

Another thing that we might be loosing without using these methodologies, is the path of activities that you need to do first.  As programmers, we might have some big projects, but we do not use a methodology, we just program and try to solve the problem.  I think that we need to see the problem from the outer space to really understand and do not program twice or more than we should. 

According to the best practices in software engineering  from Pressman, there are some activities that we should be following:
  1. Be agile
  2. Focus on quality at every  step
  3. Be ready to adapt
  4. Build an effective team
  5. Establichmechanism for communication and  coordination
  6. Manage Change
  7. Asses risk
  8. Create work products that provide value for others
  9.  Divide and conquer
  10. Understand the use of abstraction
  11. Strive for consistency
  12. Focus on the transfer of information
  13. Build software that exhibits effective modularity
  14. Look for patterns
  15. When possible represent the problem and its  solution form a number of different perspectives
  16. Remember that someone will maintain  the software 
 
In this case, we should follow these activities as our mantra or laws, but we think that we just program. I consider that this is due to the fact that we, as an area,  have been developing since the 1950s as a science and where create a methodology. Our case is that we are still learning how to really develop with the changes in technology that changes every day.  We are okay as science  but we as students should follow and treat as the way that experts have been developing and we have been taught and do not follow the malpractices.

Comentarios

Entradas populares de este blog

A kid? A kid just broke my program?

LNowadays is common to think that anyone can use your software. In this group of anyone, there is the group of people who know and people who doesn't. We, as software engineers, need to take I to consideration both sides because just anyone can get access to  information that might not be for them. A clear example of that is Netflix, which includes a restriction for kids, or YouTube and even Facebook. To get to that point we need to think in our users,  and what they could do. In software engineering there are many methods to create these elements and to really analyze if they are really necessary restrictions or add-ons. On the other hand, we need to take into consideration the data that we are managing and to really send it in the correct way  to avoid people who steal our information even though that we are not that famous or important. In the case of the movie  War Games, set at the begining of the internet connection as a service, who anyone can access just by...

I am blind without my glasses

As far as we have learned in all our classes, we should always think of our clients need and uses. But after we get the requirements, a war starts due to the fact that everyone wants to set their point or perspective as the most important one. As we have learned from this case, there is no wrong perspective, but a blindfold one. We tend to seek out what we know and to think that this will be the right answer,  because that is what our story and our world works, but there are many other options.  In this case, I can relate this case to what we live everyday on our classes, where we need to create teams with our classmates. Normally we create these teams with our friends even though they have got the same perspective  and abilities as us. This case becomes a problem because when we need to understand what the client needs and desires we can only see one way of it, when there are many others. We need to think in our users, that could be our friend  or a stranger in an...

Is UX the new design?

Nowadays there  are many ways  to create a new project, a new program, or even a new add-on, but we  live in a society  that lives in the time  where changes are needed  so soon that  sometimes design  is  not done  when it is supposed to, or a methodology is not followed, because we are focused on the project and not  the  way we develop the project.  These ideas were affected by the way technology, clients and users change their ideas and necessities.  We have been developing new ways to satisfy them, but in the process, we have been forgetting the steps that we need to follow to correctly create a new thing. Sometimes we try to develop the necessities that we think that the client has to have,  but we are not truthly sure about it.   An example of what has been told is the point where we start using Extreme Programming to develop a project. When we use this methodology, we tend to forge...