Modularization

In terms of the delivery of software.

This whole article references the book ‘The Pragmatic Programmer’ by Andrew Hunt and David Thomas – Definitely a good recommended read, purchase here: https://amzn.to/2GP04fB

Original Question

Will it take more or less time to get a monolithic block of software to the required quality compared with a system designed in modules? (source: The Pragmatic Programmer by Andrew Hunt and David Thomas – https://amzn.to/2GP04fB)

Definitions

Monolithic block of software – “A monolithic application is self-contained, and independent from other computing applications. ” (Source: https://en.wikipedia.org/wiki/Monolithic_application ). Example – Some personal finance applications

system designed in modules – “is a design approach that subdivides a system into smaller parts called modules or skids, that can be independently created and then used in different systems” (Source: https://en.wikipedia.org/wiki/Modular_design )

required quality – In this instance it refers to the requirements that were set forth, probably by either a team within the company or end users themselves.

Answering the question

I believe it will take more time to get monolithic software to the required quality compared to a system designed in modules because it’s essentially a program that works together. Where as a system designed in modules has code that can be reused – I think of this an application where a user has a login and then they are redirected to a dashboard; authenticating a user can be used within another part of the application or other application entirely and more importantly, one developer can be working on that part without having to wait for another developer to finish one part of the application.

I’ve been taught that it’s important to make code that is DRY (Don’t Repeat Yourself) and that can be reusable for another application. In the case of working in modules, it’ll be easy to start building out the login system since I’ve done it before for another application.

Providing an example

I do believe there may be a time and place for monolithic software and while doing some research I found this example of a monolithic application:

Breaking Down a Monolithic Software: A Case for Microservices vs. Self-Contained Systems

In this example, note that the website started out as a smaller application controlled through one stream and has since grown quite large and is not scalable on the platform it is now using. This leads me to believe that ultimately all applications that start out as monolithic and then grow that they should then be moved to using modules.

Resources

Explaining what monolithic is: http://microservices.io/patterns/monolithic.html
If you prefer charts and graphs: http://www.codingthearchitecture.com/2014/11/19/what_is_a_monolith.html
I found this to be an easy to understanding of monolithic: https://www.sam-solutions.com/blog/microservices-vs-monolithic-real-business-examples/

Being an Intern at nearly 30 years old

Determining to take the internship

When I was originally contacted about being an intern, I did what I normally would do and did some research about ‘being an intern at 30’. I found a couple articles, one in particular https://www.themuse.com/advice/why-i-took-an-internship-at-age-30, ultimately helped make my decision.

A couple of things stood out to me from that article. 1. This person was a career changer and having an internship was the best way to get a sneak peak into the industry but for me my internship was an opportunity to learn more and become a contributing member of the engineering team. 2. This person also worked an unpaid internship – Mine was paid so I said well I’m already one up from this person so why not?

Starting the Internship

I must admit, I felt a bit silly for joining an organization as an intern. I thought the title was beneath me although nothing else, except for the Web Developer job I had just got laid off from, justified me to a better title. Nevertheless, I went in with an attitude of gratitude – I decided to soak up all the knowledge and learn all of the things! A little seize the opportunity if you would.

Once I was introduced to my teammates and the days grew on I realized they really thought I had just graduated from college recently. I still remember the looks on their faces when I told them I graduated back in 2011. It made me wonder, why do we make assumptions based on titles?

Take Aways

We have to stop assuming things about people when we don’t know their situation or what they are attempting to accomplish.

Try something different – Yes, my family thought I was crazy for being an intern at nearly 30 but I saw it as opportunity for growth.

Which leads me to the final take away – Don’t worry about what others think. Focus on your motive for why you want to move forward with something not what others are thinking about.
When all else fails, be bold, be great, be awesome and be fearless no matter how uncomfortable you feel!