The CodestSoftware Development
Kamil Ferens, 2020-10-22

TheCodestReview #2 - weekly software engineering juice

Hello and warm welcome in the 2nd episode of our TheCodesReview series. This week we have focused on quality in software engineering projects, the importance of frontend architecture and transition from technical to operations leader and what it takes in the remote setup times on the example of Dailymotion.

Glossary of aspects we are tackling:

  1. Refactoring tips for the sake of a quality improvement.

  2. Why frontend architecture matters and how to make it scalable and maintainable?

  3. Transition from CTO to COO role in tech organisation.

If you are interested in the topic of a switch from being a technology leader into an operations role, you can dive deeper into the additional resources linked at the bottom of the post.

The refactoring and architecture comments this week are delivered to you by our Ruby and React engineers.

Stephen Bigelow from Search Software Quality

Refactoring code has always been tremendously popular, but not everyone knows how to do it well and when it's a good time to do it. I've seen a lot of attempts to do refactor which ended with failure (especially in production, which is not a thing to be proud of). Learning tips from the mentioned article could help many programmers to improve their crucial refactoring skills.

The number one tip from the article is "understand the code" which is always the 1st thing on my checklist to do before refactoring. You won't create better code if you don't know what the current code is doing. Understanding messy code could be effortful, but this is the price you have to pay to improve your codebase. Still, the ROI from this investment is high and it will pay off.

The next tip worth mentioning is to "test early and often" which could be applied not only in the refactoring context but also in developers' daily work. The topic of testing is enormous. It's not just about learning the syntax on how to write tests, but you also have to distinguish types of tests. To learn more about testing, I recommend you familiarize yourself with the test pyramid and then learn about the differences between classical and London schools.

Summing up, the article focuses on local refactoring which is good and could improve programmers' happiness with their work. Though to create a first-rate application on the architecture level, you have to go beyond the scope of this article and learn about issues related to application architecture. This may help you to start exiting a never-ending journey and that's what I wish all of you, myself included.

Get free code review

Michael McShinsky from dev.to

How to achieve more scalable and maintainable architecture?

Proper way to structurize your app based on MVVM architecture?

How to avoid extra work as your app grows?

Probably everyone in their career has encountered a case in which bad architecture significantly extended the time needed to complete a task. Clutter in folders, inconsistency in files or catalogues naming can sabotage the project at the very beginning.

The author of the article clearly shows the advantages of choosing the right approach to the project structure. Starting with the create-react-app and inspired by the MVVM architecture, he shows the advantages of its solution very accurately. Going from basic configuration, he goes through each folder while explaining on a case-by-case basis why he considers this approach appropriate. The approach itself seems quite complicated and probably unnecessary at first when the project is at the early stage but let's remember that introducing the appropriate rules from the start will help us avoid time-consuming re-structures while expanding the project with new components and functionalities. A properly selected project structure will also allow new members of the project to easily acquire components and services.  Let's not forget that not every way to structurize will perfectly fit in every project. From my side, I would like to add the ground rule that choosing the optimal architecture for the project will be useless if not every crew member follows the established rules.

Read more: How to improve Vue.js apps? Some practical tips

Guillaume Clement from Dailymotion

Making the transition from CTO to COO.

Working in a fully remote environment. How to keep the team energized and involved.

Trusting data vs gut feeling.

In the 236 episode of Modern CTO, Joel talks to Dailymotion’s COO Guillaume Clement. Dailymotion has a mission of being a meaningful and nutritious video content platform among a number of platforms that are purely entertainment oriented and serve the purpose of “video fast food”. In order to achieve that in a business which is strongly driven by algorithms and data science engineering, making tough calls based on gut feelings against what data tells you is what you have to decide on.

The typically accurate metric for video platforms, media and Adtech businesses as “time spent” is not the obvious KPI to work on if you genuinely strive to deliver your users meaningful content, not just want to keep their attention in front of the screen as long as possible. The reference to “The Social Dilemma” documentary on Netflix is unavoidable. Guillaume has also recently switched from a CTO to a COO role in the company which brings in new challenges in operations and people management. The challenge is even more demanding during the pandemic when remote setup is a test for leaders on keeping teams involved and the mindsets at high level. Addressing the individual needs of employees who are more social or more introverted is key, taking a limited amount of office mingle available for those who need a regular kick of it to get going.

Additional resources on the subject of CTO to COO transition:

https://www.hellersearch.com/blog/how-i-made-the-leap-from-cio-to-coo

https://www.gartner.com/smarterwithgartner/cio-career-path-to-coo/

https://www.lafosse.com/blog/2018/06/making-the-transition-from-cio-to-coo-and-beyond

Thanks for reading and coming back with the next episode soon(ish)!

Software development consulting