- Man's Search for meaning -Viktor E. Frankl
- Climate Change: What everyone needs to know – Joseph Romm
- Snow Crash – Neal Stephenson
- Man Plus – Frederik Pohl
- Childhood's end – Arthur C. Clarke
- The Beginning of Infinity: Explanations that transform the world – David Deutsch
- A Case of Conscience – James Blish
- Witch: A Tale of Terror – Charles MacKay
- Meditations – Marcus Aurelius
- Life 3.0: Being human in the age of artificial intelligence – Max Tegmark
- Bullshit Jobs: A theory – David Graeber
- Lost Connections: Uncovering the real causes of depression and the unexpected solutions – Johann Hari
- It doesn't have to be crazy at work – Jason Fried, David Heinemeier Hanson
- A Knight of the Seven Kingdoms – George R.R. Martin
- The case against education: Why the education system is a waste of time and money – Byran Caplan
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations - Nicole Forsgren PhD, Jez Humble, and Gene Kim
Thursday, December 27, 2018
2018 Reading list
Friday, December 14, 2018
RIF Notes #49
“A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.” ~ John Gall
- The Agile Fluency Model – “Organizational leaders are complaining that they’re not getting the benefits they expected. This article presents a fluency model that will help you get the most out of agile ideas”
- The impact of the ‘open’ workspace on human collaboration – “In short, rather than prompting increasingly vibrant face-to-face collaboration, open architecture appeared to trigger a natural human response to socially withdraw from officemates and interact instead over email and IM”
- Yes, the Open Office Is Terrible — But It Doesn’t Have to Be
- What I Talk About When I Talk About Platforms – “Some organisations stumble when they attempt to build on top of their existing shared services without first addressing their organisational structure and operation model”
- The Secret to Ant Efficiency Is Idleness
- The Flow Framework will enable your company's evolution from project-oriented dinosaur to product-centric innovator that thrives in the Age of Software
- The Case for the 6-Hour Workday - “People waste a lot of time at work,” according to Grant. “I’d be willing to bet that in most jobs, people would get more done in six focused hours than eight unfocused hours.”
Monday, August 27, 2018
The rule of law
There are a few laws and principles of economics, psychology, etc. that have strong applicability to Software Development. Here are the ones I find most interesting.
- Goodhart’s law – “when a measure becomes a target, it ceases to be a good measure. It will be the inclination, and, in fact, may be in people’s best interest for them to game the system by changing their behavior in such a way as to favorably adjust the measure in order to achieve the target”
- The Hawthorne effect – “The researchers were surprised to find that the productivity of the more highly illuminated workers increased much more than that of the control group…their productivity even improved when the lights were dimmed again. By the time everything had been returned to the way it was before the changes had begun, productivity at the factory was at its highest level”
- Jevons paradox – “occurs when technological progress increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the rate of consumption of that resource rises because of increasing demand.”
- Parkinson's Law – “It is a commonplace observation that work expands so as to fill the time available for its completion”
- Campbell's law – “The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor”
- Principle Of Least Effort – “is the tendency for people to choose the easiest path to a goal”
- Pareto Principle – “specifies that 80 percent of consequences come from 20 percent of the causes, or an unequal relationship between inputs and outputs”
- Cunningham's Law – “the best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer”
- Planning fallacy – “in which predictions about how much time will be needed to complete a future task display an optimism bias and underestimate the time needed”
- Gall’s law – “A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system”
RIF Notes #48
“In the software profession, it is common to hear advice like: “only hire the best and let them figure it out.” This sentiment is nearly as misguided as command-and-control and antithetical to Lean thinking. “Hire the best” is an elitist and ultimately lazy management philosophy. Comically, that attitude is often accompanied by an unwillingness to pay top dollar for such talent. But even if you could hire such a team, consider that a championship athletic team will almost always defeat an all-star team, because the quality of the relationships between qualified players is usually more important than the individual performances” – Corey Ladas
- Decoupling the Client and Server with Hypermedia
- A Bright Future for the Smart Client
- The Cult of the Root Cause
- Improvement Boards-“Let’s replace—or at least augment—the once-every-two-week “retrospective” meeting with a continuous process that’s part of our culture”
- Microsoft continues to be a leader in Gartner's Cloud IaaS MQ
- 16 New Code Analysis, Testing and Debugging Tools For Visual Studio 2017
- Principles, Patterns, and Practices of Mediocre Programming
- Sharpen your sense of (code) smell- a good series of blog posts by Dino Esposito.
- Windows Server heads toward End Of Line
- Blazor
- Don't call us, we'll call you: Inversion of Control Containers
- The open-plan office is a terrible, horrible, no good, very bad idea
Thursday, May 24, 2018
The rule of law
There are a few laws and principles of economics, psychology, etc. that have strong applicability to Software Development. Here are the ones I find most interesting.
- Goodhart’s law – “when a measure becomes a target, it ceases to be a good measure. It will be the inclination, and, in fact, may be in people’s best interest for them to game the system by changing their behavior in such a way as to favorably adjust the measure in order to achieve the target”
- The Hawthorne effect – “The researchers were surprised to find that the productivity of the more highly illuminated workers increased much more than that of the control group…their productivity even improved when the lights were dimmed again. By the time everything had been returned to the way it was before the changes had begun, productivity at the factory was at its highest level”
- Jevons paradox – “occurs when technological progress increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the rate of consumption of that resource rises because of increasing demand.”
- Parkinson's Law – “It is a commonplace observation that work expands so as to fill the time available for its completion”
- Campbell's law – “The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor”
- Principle Of Least Effort – “is the tendency for people to choose the easiest path to a goal”
- Pareto Principle – “specifies that 80 percent of consequences come from 20 percent of the causes, or an unequal relationship between inputs and outputs”
- Cunningham's Law – “the best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer”
- Planning fallacy – “in which predictions about how much time will be needed to complete a future task display an optimism bias and underestimate the time needed”
Friday, May 11, 2018
RIF Notes #47
“The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge” - Stephen Hawking
- Migrations: the sole scalable fix to tech debt.
- Suffering on Stack Overflow- This is an interesting perspective.
- A .NET library for carefully refactoring critical paths. It's a port of GitHub's Ruby Scientist library
- In the microservice world, shared libraries can be problematic
- Should that be a Microservice? Keep These Six Factors in Mind
Thursday, April 26, 2018
RIF Notes #46
“More than 95% of your organization’s problems derive from your systems, processes, and methods, not from your individual workforce. Your people are doing their best, but their best efforts cannot compensate for your inadequate and dysfunctional systems.” – Peter Scholtes
- User Research Will Destroy Your Product
- R rises to #12 in Redmonk language rankings
- Upstart - The Engineer's Path: 2 Decisions That Define a Career
- The hidden costs of serverless - Evaluating the real costs of serverless architecture is tricky
- On the criteria to be used in decomposing systems into modules – a review of the legendary Parnas paper from 1971.
- ”In conclusion, while much attention is given to the need to divide a system into modules (microservices), much less attention has been given to the criteria by which we decide on module boundaries”
- “We have tried to demonstrate by these examples that it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. Since, in most cases, design decisions transcend time of execution, modules will not correspond to steps in the processing…”
- The emperor has no clothes - why do we estimate?
- How to break a Monolith into Microservices
- Bitcoin is the greatest scam in history - It’s a colossal pump-and-dump scheme, the likes of which the world has never seen.
- The Wrong Questions about Agile -One of the more common "wrong" questions I get is "what's the role of the Project Manger in an agile shop?"
Thursday, March 15, 2018
RIF Notes #45
“There are no solutions. There are only trade-offs” – Thomas Sowell
- The War on Developer Productivity (And How I Intend to Win It) – “The problem is that today’s chat tools are amplifying the troublesome parts of human nature, rather than minimizing them”
- Dividing frontend from backend is an antipattern
- Let’s bury the hustle – “ The hustle has become synonymous with the grind. Pushing through pain and exhaustion in the chase of a bigger carrot. Sacrificing the choice bits of the human experience to climb some arbitrary ladder of success. I can’t connect with any of that”
- Blockchain - Blockchain Fundamentals – I’m still struggling to understand the blockchain hype.
- ASP.NET - Use Razor to Generate HTML for Templates in a Single-Page App – “ How do you blend server-side MVC with client-side MVVM? For many, the answer is simple: They don’t blend”
- What I Talk About When I Talk About Platforms – “‘Platform’ is just about the most ambiguous term we could use for an approach that is super-important for increasing delivery speed and efficiency at scale”
- Here’s Why All Your Projects Are Always Late — and What to Do About It – this podcast mentions a tool Asana.
- It’s time for recurring meetings to end
- #NoStandups
Friday, January 19, 2018
RIF Notes #44
‘“We are what we repeatedly do. Excellence, therefore, is not an act – but a habit.” - Will Durant
- Managers, screw the Golden Rule – “Don’t treat employees the way you want to be treated”
- Deployment Strategies Defined –“We need a common understanding of this topic in order to build better tools, make better decisions, and simplify communication with each other”
- Superheroes don’t work 90-hour weeks
- Performance Guide for Visual Studio in ReSharper 2017.3
- Quickly learn about the common methods for analyzing architecture tradeoff
- Excuses
- Fixing Data Breaches Part 1: Education
- Web Development - Speed Thrills: Could Managed AJAX Put Your Web Apps in the Fast Lane?
Thursday, January 4, 2018
RIF Notes #43
“The problem of big rewrites is that they are a technical solution to a cultural problem. Bad code wasn’t created only because developers don’t know how to code properly. It was created by the kind of conversation and mentality…” – Technical Debt 101
- Meltdown and Spectre – Biggest security vulnerability of all time.
- Rounding Up the Newest Extensions for Visual Studio 2017
- Ten years in, nobody has come up with a use for blockchain – “Everyone says the blockchain, the technology underpinning cryptocurrencies such as bitcoin, is going to change EVERYTHING. And yet, after years of tireless effort and billions of dollars invested, nobody has actually come up with a use for the blockchain—besides currency speculation and illegal transactions.”
- The presence prison – “Everyone’s status should be implicit: I’m trying to do my job, please respect my time and attention”
- A leader’s guide to managing modern development teams
- Architecting Services with Design Patterns
- Announcing the Windows Compatibility Pack for .NET Core – “This package is meant for developers that need to port existing .NET Framework code to .NET Core.”
- It’s time for recurring meetings to end