Summary: Blackliszt and David B Black Writing

I have written about 500 blog posts on and published five books on computer software. This is an introduction with links to summary posts on the topics I've written about.

Throughout my career I followed the low-level strict rules, i.e., my programs compiled, ran and did what they were supposed to do. As the years passed, I learned that most of the widely accepted high-level rules lead to huge time and effort and produce mostly bad software. I first learned this as a programmer and CTO and then as a VC investor, seeing that the winners often follow a different set of rules. I've tried to explain the status quo and the better alternatives in my blog and books.The contrarian ideas and methods I describe are ignored and/or forbidden in software teaching and management. They represent a revolution in quality, efficiency and effectiveness, leading to superior results in a fraction of the elapsed time and often less than a tenth of the labor.

For details of my experience see this.

The Summaries

Computer Science doesn't come close to being a science. It takes baseless beliefs and promotes them as proven truths.

For something that claims to be a science, software is amazingly fashion-driven.

Because software is invisible to most people, it's described in metaphors, which are mostly inappropriate and lead to trouble. Even the programmers use the metaphors, which often support methods that are consistently bad.

If you want to understand what's going on in software, it's natural to turn to the experts, insiders who share their knowledge so that most of us can understand the mysteries of software. There's just one little problem: software experts are as valuable as doctors were when blood-letting was standard practice.

Everyone wants to know what's "new" in software; the new thing is most often just a fashion. Innovation? It's supposed to be what fuels software and changes the world. In reality, there is almost no innovation in software itself, and software-driven innovation is most often what I call in-old-vation, i.e., an advance that's proven in one domain that often takes decades to crawl into new domains. This summary also covers business strategies for taking software innovations to success.

How do you win with software? Nearly everyone starts with requirements, makes estimates and is judged whether they deliver on time and on budget. This optimizes for expectations and is a proven path to failure. The winning path optimizes for speed, customer satisfaction and continuous quality. It's what the people who need to win do.

Software people don't learn the fundamentals of computing; they may be aware of any one of them if asked, but don't apply them. In any other field, knowing and applying the fundamentals -- like blocking and tackling -- is demanded. Not in computing.

A key aspect of software fundamentals is software architecture. A surprising amount of the received wisdom about architecture is counter-productive, the goals are rarely discussed and the key to effective software architecture, Occamality, is largely ignored. Occamality is a foundational tool of wartime software: get the job done quickly and flawlessly, meet the real need and beat the competition.

If you want to architect and build good software, a major helpful factor that is usually ignored is to learn the history and evolution of software. Patterns repeat and knowing where you are in an evolution can help you predict what is likely to happen. Not to mention avoiding going down paths that usually fail.

What do software people do? They write programs. What language do they use? What are programming languages, anyway? Are there good ones and bad ones? How have things changed?

Software people are indeed people, but a good fraction of them are different from non-programming people, with differences that are important to understand. Similarly, there are important differences in how to manage them most effectively.

Regulations are a problem in many areas, but are particularly pernicious in software and technology. By commanding that developers use largely obsolete methods for building technology, a huge increase in cost and time results, with no improvement in quality or outcome.This is a direct result of ignorant bureaucrats telling technical people in great detail HOW to get things instead of simply defining WHAT should be accomplished, like the criminal law does when it states simply that murder should not be committed.

Computer security is assured by mountains of regulations, tools, standard practices and audits. But computer security continues to be breached without pause. There are major improvements possible that are largely ignored.

Software quality assurance is an important specialty within the non-science of computing, but in spite of all the time and money spent, quality continues to be a major issue. There are solutions that have been proven in practice that are ignored by the experts and authorities.

Everyone knows that software project management is essential to producing software that works, on time and on budget. In spite of decades of "innovation," it doesn't get better. The winners follow a different set of rules.

Huge amounts of attention are paid to AI, ML, Big Data, and the rest. It's a fashion that too often results in vast amounts of money being spent with little to show for it. Results can be amazing when achieved, but it takes a combination of deep knowledge and common sense to do it.

Data centers and networks are the underpinning of computing. The transition to the Cloud has been a big factor, along with the rapid evolution of hardware and the glacial evolution of software. Net Neutrality has been an annoying furor, utterly divorced from reality.

The vast majority of major organizations studiously follow the established methods of software design, construction, operation and security. They learn from academia, industry advisory groups and leading experts. The results are consistent. Disastrously consistent. This is true not only of governments but cool big tech companies including Google, Facebook, Twitter and the rest.

Cryptocurrency and blockchain are highly visible for many reasons, including the fact that crypto fuels the explosion of ransomware. Leading thinkers are convinced that blockchain is a technology that will revolutionize computing.

Learning about the mechanics and technology of the healthcare system provides an education on the huge opportunities to reduce costs, increase efficiency and make things better for patients and providers.

I've had some personal experiences with the healthcare system that have resulted in a sobering education about what really goes on. Healthcare is incredibly valuable with many dedicated professionals involved, but there are some serious flaws.

I have published five books on these topics. The books are Software Business and Product Strategy, Software Quality, The Disease of Software Project Management, Wartime Software, and Software People. Here are introductory blog posts to them with links to the books.