Skip to main content

Posts

Showing posts from March, 2021

Software Craftsmanship

 For this week, we listened to the 150th episode of Software Engineering Radio, featuring Robert Martin, aka Uncle Bob, aka (by me) the author of Clean Code. In this episode, Bob talks about architects and the role they should play in software development, and he shares some tips on how you can become a true craftsman yourself.  First thing first, Bob believes that an architect (and in my opinion, any other non-coding role in the field) should be somehow involved in the coding process, because it makes no sense to put someone in charge who will not be responsible and won't have to live with their choices. I fully agree with this, and it's why I believe that the practices he talks about afterwards and in his other work is essential if you want to pursue any career in the field.  Craftsmanship is often used to describe a piece of work where it's clear that a lot of time, effort, and knowledge went into its creation, and it's no different for code: the final product should

Hidden Figures

 This week, we watched a movie called Hidden Figures , telling the story of black women working at NASA at the time of segregation. I originally watched this movie when it came out, and saying I liked it would be an understatement. It's not a perfect movie by any means; I think the message was a little bit too on the nose and most characters besides the three leads were one-dimensional.  However, I think the movie does a great job at highlighting how oppression works. If you really think about it, there is no "bad guy". Everyone is just living their lives, trying their best, and following the rules that were set by society; no one is actively trying to make the main characters fail. Still, at almost every interaction, we can see they have to try harder than everyone else, and there's always the feeling that something could go wrong for them. And it's not obvious if you don't think about it, but that's the feeling they are faced with every day of their live

Is Design Dead?

 This week, we had to read Is Design Dead? by Martin Fowler. Just by reading the title, the thought of agile methodologies popped into my head, since they do involve design, just not as much as we're accustomed to. And not too surprisingly, Fowler reached a similar conclusion: design is NOT dead, it has just evolved along with us to keep up with today's standards.  Before, design was used to make sure that you knew everything you needed to get done, and it let you find any flaws in your plan beforehand. It was meant as an all-encapsulating process that all future code will be based on. Today, it has maintained its role as a guide, as to not make the developer feel totally lost, but with today's fast-paced work environment and ever-changing requirements, with the help of methodologies such as Extreme Programming, it has evolved to become more dynamic and easier to change.  For my personal opinion, I've had experiences (both academic and professional) where a bit of desig

Why is an architect?

  This week's (very short) article, Who Needs an Architect?, Martin Fowler explains to us the different definitions of architects that exist in the software world. The first and most common definition, which Fowler disagrees with, says that an architect is (s)he who helps identify what the most important parts of a project are, in order to give it structure. However, it is also mentioned that these parts are usually the most important because they are the hardest to change, so an architect's job should also include reducing the amount of these parts. Following the logic, by this definition, an architect's job is to reduce the amount of architecture.  The second proposed definition, which I also think I agree with, is that an architect's role is more like a guide's. His purpose is to help the team become better by using his expertise, and communicating with as much of the team as possible in order to remove their blocks. I think the word architect  still fulfills thi