After a long break, I’m going to try to get back to summarizing what I’ve been learning during the month.
Business & management
Programmer’s productivity and efficiency of development processes is one topics I touch on regularly. So, can’t pass by the article Yes, you can measure software developer productivity published by McKinsey and, of course, a critique of the article by Kent Beck and Gergely Orosz. For a long time of sitting on two chairs (as a programmer and as a manager), I understand the positions of both sides very well. On the one hand, managers who can’t help measuring, otherwise how will they realize that they are moving in the right direction? On the other hand, there is a huge variability of programmers’ work depending on the size of the company, the complexity of the products they are working on, the type of team, the stage of the project (development, implementation, support, etc.). Despite on that Gergely claims to disagree with the approach, in many ways, his and Kent’s views complement McKinsey’s article. In any case, for anyone interested in the topic, I recommend that you form your own opinion on the subject.
In continuation of the topic of productivity, I would like to recommend another article, on this topic – What Actually Drives Productivity, and for those who would like to dive even deeper into this topic, I can recommend several books:
- Thinking in Systems: International Bestseller by Donella H. Meadows
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren
- Flow: The Psychology of Optimal Experience by Mihaly Csikszentmihalyi
- A Philosophy of Software Design by John Ousterhout
Being interested in where innovative ideas come from, how they are generated, discussed and validated, I came across the site with techniques for generating and validating ideas, grouped by the type of problem you are solving.
It is very easy to get lost in the variety of modern databases. That’s why database of databases from Carnegie Mellon University, which is clearly described guarantees, internal design and architecture is a real treasure.
YouTube started its journey in 2005. As this venture capital-funded technology startup gained traction, it was acquired by Google in November 2006 for US$1.65 billion.
Before they were acquired by Google, the team comprised:
- 2 system admins
- 2 software architects that focused on the site’s scalability
- 2 feature developers
- 2 network engineers
- 1 DBA
It’s just an incredible fact to all of the modern developers. Reading this your next question will be probably – how is this possible? Hard to tell how infrastructure was build at the moment Google acquired them, but if you are interested in design of modern Youtube, I can recommend you to read this the article. It’s deep and detailed explanation of Youtube internal architecture.
Continuing the topic of distributed transactions and consistency, I would like to share an idea of implementing distributed transactions in several storages. The idea is academic, however I see how it could be adapted in a variety of basic scenarios.
For a long time my favorite app for navigating and planning hiking and biking trails was mapy.cz. Organic Maps looks like something that can replace them. It is an opensource project with a user-friendly and responsive interface on top of openstreet maps. Not sure yet if the functionality will be enough for me. Definitely want to try it out on my next hiking trip.
Animated knots. Under that self-explanatory name, a very handy site with visualizations of hundreds of nodes for different occasions. If yachting, climbing, fishing or camping interests you, this site will stay in your bookmarks for a long time. And if tourism in any form you are not interested in, then soon there will be another section with tie knots.