Entradas

Mostrando entradas de 2019

Is Design Dead?

The philosophy that is behind some of the software development practices that we commonly use in our workplaces, have grown around a vast necessity of winning the race. Sometimes, we forget that winning the race is not as important as ensuring that we will always be able to win the race in the future. This being the case, the new era of software design paradigms have born, like eXtreme Programming, which bases it's main ideas in doing things as agile and as fast as possible. Enabling projects and developers to have this level of agility, and has got some pro's and con's to consider. For starters, XP programming is based around the idea that you have to really do things, not just think about doing things. Cutting time in the design phase of the process, and giving it to the implementation and testing stages of the process can be a two-edged swords: You have a solution that's ready to use right away, but you're not a hounded percent sure that it will not represent mo...

Software Architecture: Laying the Foundations of Software Design

So I was left with the homework of reading chapter's 14 from Pete Goodlife's book "Code Craft" and I have many thoughts around my head with it... There are many key concepts in this reading, the first of them is software architecture . Software architecture is the way we design software before it is even built. This way, we can know how all components of the software will interconnect with each other. It will also show us how code will be allocated within different nodes. Like an architect, a software architect has got to be experienced enough to know ahead what things might affect the product in the future. Different points of view from the architect must fall into this basic four points of view: 1.- The conceptual view.-  shows all the major parts of the software, and their connections. 2.- The implementation modules. - shows how parts of the software will be built. 3.- The process view. - to allow everyone to know the flow of information in software. 4.- T...

Who needs an architect?

I was asked to read a PDF writing by Martin Fowler, named who needs an architect. The publication is entirely about what architecture is and how is it important to the team. I think, the reading is really about leadership. What type of leader you want to be? Because really, all an "architect" is, is a technical leader. It is a person that understands both the business needs and the infrastructure and software needs to tackle a particular problem. And leadership is really that, seeing the solutions of problems and accepting new challenges. One of the things that I saw the most important is the relevance of agile methodologies in the role of an architect's team. Agile methodologies are a set of known structures of work that rely mostly on intense team collaboration, both internal (development teams, ops teams) and with the client teams, both business and developers. They are a set of ideas that will allow us to improve ourselves constantly by looking constantly in r...

Software Architecture

Software architecture is about common ground . Common understanding and standardization of means to solve this problems is the way to get somewhere. The way I see it, software architecture is about getting that common ground to be as easy to read, and maintain as it could be. Sometimes, in the software world, and us as developers, we tend to move fast. We tend to want to go different places and learn new things, or actually just develop different things. This constant moving of parts is no good for our proyects. For example, when we hire someone new because we need help in solving our particular problem, we have to teach them about the problem first, and then teach them how to use our particular set of tools, and then teach them how our architecture actually looks like for them to kind of understand where we're heading. The better the common ground  is, the better the new developer will be able to see where we're actually really strong, and where we're actually really weak....

Moon machines

I was surprised by how dare-devil the guys at the Apollo missions were. Really navigating in outer space with super new technology, with no software tested in outer space... I mean, a lot of things could have gone wrong! It was amazing, as a matter of fact that it didn't. I don't know how anyone else felt about this video, but I was in shock when the astronauts got to the Dark Side of the Moon, with no communications what-so-ever with Earth, only by themselves and a never tested before software! This story taught me a very important lesson in life: Always pursuit your dreams, aim high, and learn on the way. It's like the software engineers doing the navigation system, they didn't even have a piece of paper, or specifications on how is the entire system supposed to navigate. They didn't have any sort of navigation themselves. And yet, fifty years later, today in 2019 I'm still absolutely shocked about the stunt the whole Apollo mission pulled off. They le...

Who am I

Hi! My name is Diego Canizales Bollain Goytia. I am 23 years old. I am studying the eighth semester of my career. I work as DevOps engineer in IBM. I really like my work, I have learned a lot about cloud - native infrastructures, Continuous Integration and Continuous Delivery. The area of ​​expertise in which I want to train is as administrator of operating systems, containerization (using Docker, LXC) and its administration, such as Kubernetes. I consider myself more than an IT specialist, a developer who is currently working as a cloud engineer, which I consider to be a very important skill in this age of technology. One of the things that I think are super important to be a good developer, is to get all of the design patters really under our scope. They are there for a reason. And being a good software architect is absolutely based on a good knowledge on infrastructure and software design, they go hand in hand even in an era in which "serverless" is also an option. B...