sábado, 25 de agosto de 2018

Who Needs an Architect?

In the article called "Who Needs an Architect?" by Martin Fowler, there were several points that I found interesting.

One of this ideas was that "There is no higher level concept of a system but It is the highest level concept of the expert developers" (Fowler). This first idea seemed quite right to me, since I agree with the above for two reasons: First, because I believe it is true that clients are not interested in important components within a complex software architecture, and, on the other hand, I think that the architecture depends more on what a development team considers important, than on the softare itself.

Another idea that in my opinion is very interesting is that "architecture is the decisions that you wish you could get right early in a project, but that you are not necessarily more likely to get them right than any other". I think the author is right in defining architecture that way. I mean, the decisions to define the architecture can be made at any moment of the development, although it would be desirable that those decisions were made from the beginning.

Martin Fowler was very creative and assertive in classifying the architects into two types: the Architectus Reloadus and the Architectus Oryzus. I agree with the idea that the architects that predominate are those of the first type, and are also the least convenient to hire since they do not get involved in depth with the project and they are not interested at all what the developers think about its inflexible design (which will surely bring many problems to develop as it is). I think that every architect should follow the model of the Architectus Oryzus, one that considers the opinion of all those involved to create the architecture, that is deeply involved in the project and that allows future modifications in its design because he or she understands that this could facilitate and improve the development.

sábado, 18 de agosto de 2018

Software Architecture


I totally agree with the ideas expressed in the reading titled "ARCHITECTURE OF THE SOFTWARE: laying the foundations of software design" in chapter 14 of the book "Code Craft" by the author Goodliffe. In my short experience working around 3 months in a software company, it can be proven that the lack of a software architecture has negative consequences for most of those involved.

The advantages of having good architecture are remarkable, especially when changes may be required in the future. I think it is necessary to have a document (or several) that at least explains the basic structure of a project that reaches the general understanding of the project, which is very useful when the software passes from one computer to another.

The most complicated thing is not having a software architecture that has to read and know how these components connect with each other. The above, even for excellent programs, is a tedious process and is a task that can take a long time, which translates into lost of money for companies. In addition, a project can be ruined if the code is not documented and does not have good programming practices either.

On the other hand, I also agree that an architecture should consider the scalability of a project. If this is not considered from the beginning, the costs of adding features to a project increase considerably. You should also consider the different work teams that will be involved. Clearly, it is not the same to create an application or a static web page, or a software system that requires several platforms and a database.

Finally, based on my experience, I can say that it is important that the software architecture is updated together with the changes that are made in the project, thus ensuring that all the work teams through which the project passes, add the modules that were added by extension.

miércoles, 8 de agosto de 2018

Moon Machines

I found very interesting the documentary called "Moon Machines: The Navigation Computer" produced by Science Channel. I am surprised by the number of people who got involved in the project (More than 400,000). Also, I think that the fact that NASA did a contract with a university (MIT) was something extraordinary, even in our times, because it is not something usual to make such big contracts with universities.

I also found very interesting the gyroscope that was created at MIT, I think it was a brilliant idea that was made very precisely and in a mechanical way. Also, I think that, with the old technology, an instrument with the accurate required for the gyroscope must have been a very big challenge.

By the other side, I think the way they checked the quality of the integrated circuits was quite rigorous. They had to reject a whole lot if a chip weighed a few micrograms of difference to what it should. I am sure that this level of quality was necessary, but I also think that it must have been very hard to do. In spite of the above, I think it was very important that the workers had in mind that the lives of people were at stake and that the quality of the chips played a very important role in that.

Another thing that I found very interesting, was that the traditional computational timeshare had evolved into a computational timeshare prioritized based on the needs of NASA. It is clear to me that the role that software played in the project of taking man to the moon was quite important, so much so that many software techniques had to evolve in the moment.

I found it incredible that, with a lot of money available, the memory limit for NASA was around only 72 Kilobytes; I also found it incredible, that with so little memory they have managed to build a very complex system. However, what was most impressive for me was that they made a rope memory.

Finally, I think that the work of each engineering area that participated in the project was very important for the success of the mission. And I think software engineering got a lot of attention after the mission.

martes, 7 de agosto de 2018

About me

Welcome to my blog called "Software Design and Architecture". My name is Luis Ángel Lucatero Villanueva and I am a student at Tecnológico de Monterrey Campus Estado de México. I am taking the course of "Software Design and Architecture" and all the publications of this space are directed to this course.

What I expect from this course is to learn Rubi very well, as well as learning a lot about the processes to make a good design and a good software architecture. I also hope that the class is enjoyable and challenging at the same time. I hope to learn a lot but with not so much homework.

My favorite hobbies are go out with my family, my friends and my girlfriend, walk my dog, swim or go to the gym, I also enjoy watching series on Netflix or watching videos that I find interesting on YouTube (About the universe, video games and gadgets). My favorite series are "Rick and Morty", "Avatar the last airbender", "Game of Thrones" and "Breaking Bad".
My favourite books use to be novels that give depth to the characters, such as "The Analyst" and "Dr. Jekill and Mr. Hide".

I like many musical genres, from the rock classics, like Queen, Aerosmith, Guns and Roses, to greats of hip hop, like Eminem, 50 cents, Dr. Dre. I also like classical music, pop, jazz and a few other genres.