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:
- Be agile
- Focus on quality at every step
- Be ready to adapt
- Build an effective team
- Establichmechanism for communication and coordination
- Manage Change
- Asses risk
- Create work products that provide value for others
- Divide and conquer
- Understand the use of abstraction
- Strive for consistency
- Focus on the transfer of information
- Build software that exhibits effective modularity
- Look for patterns
- When possible represent the problem and its solution form a number of different perspectives
- 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
Publicar un comentario