2022 articles

Negative System Effects

Systems benefit from the synergic effect of the components working together. By contrast, when components work against each other the result is work that is not the simple sum of their individual effects and may nigh be negative. Another way to think about it is that systems amplify the result …

Architects Define Boundaries

It is the responsibility of a system architect to discover meaningful boundaries that fulfil the expressed use cases. This elevates the place of use cases as more or fewer use cases may significantly alter the system boundaries. I believe the right way to then think about the system architecture is …

Good Teaching Is An Expression of Systems Thinking

A system is an assembly of components with effects outside the scope of any one component. These effects are due to interactions between components. This is why we think of systems as synergistic entities with emergent properties. Anything worth devoting significant time to learn is likely operating under system …

Systems and Apparent Complexity

Consider a girl at a piano. The way her fingers move is hard to associate with the beauty of what she produces (if she’s any good; let’s assume she is). Of course, she may convey something of the rhythm of the music by how she moves parts of her body. …

I Was Wrong: Exponential Gains Require Systems Thinking

I previously wrote about how exponential gains require exponential effort. I'm now coming to realise that this is not strictly true.To be precise, linear thinking results in linear output--there is no doubt about that. However, I'm developing a growing realisation that systems thinking i.e. capturing the whole …

Why Good Design Is Incredibly Difficult to Achieve

The act of design is contranatural: the second law of thermodynamics tells us why. Entropy serves to erode design and there is nothing in nature other than the persistence of life which is preservative or the act of will which is creative that oppose entropy. While we extol the …

Think Integration, Not Implementation

"Features are always and everywhere aspects of integration, not implementation."---Righting Software, Juval LöwyMy love for architecture has grown even more refined following the above description. The idea that designing against a feature spec is just ludicrous is one of the most counterintuitive ideas I've come across lately. It …

What's Not Special About 'Special Offers'

Special offers are not simple. While their intention is to make the proposition attractive to new clients, I find them very confusing especially if the intention is to establish a long-term business relationship. I believe that there are very particular cases where a special offer makes sense e.g. if it …

Software is Problem Solving Media

Media is designed to deliver some experience. Software is a special form of media with the goal of delivering a solution experience. In other words, unlike traditional passive media, software is active media for solving specific problems. That’s all there is to it!

The Achilles Heel of Formal Education

Universities are in the business of canonicalisation: they want to turn the exoticness of a career into a recipe for training thousands of young minds and in the process pocket the proceeds. There’s just one major problem with that: most illustrious careers are actually a hack resulting from a …

The Essence of Business Success

Success in business is predominantly the result of two tasks: outbidding and undercutting rivals for the same resources. Outbidding determines its capacity to consume resources and undercutting its capacity to conclude successful sales. While customer service and quality are very important, these are lagging measures. That is, it is far …

Test Coverage Should Be About State Space Not LOC

I've stated previously that test coverage by measuring lines of code (LOC) is not a reliable measure of code quality. The gold standard should be coverage of the state space. Most applications can completely be defined by a finite state machine: given a range of input parameters, the application can …

The Coupling of Information Technology Breakthroughs

It would be wonderful if hard drives could store hundreds of petabytes of data without a change in the size of disks. However, such changes would means corresponding exponential improvements in processors to clock data in and out, memory bandwidths and networks. It seems to me that the limitations we …

The Impartiality of Scientific Research

The scientific method's strength is its ability to lead to conclusions objectively. However, the immediate consequence of this is that by avoiding subjectivity it unwittingly assigns equal significance to every result. This is not to say that all results have the same value; rather, by not advocating any particular …

Simplicity is the Highest Form of Quality

I've been thinking about which measure of quality excels above all the rest and I can't help leaning towards simplicity. Of course, if a system is error-prone yet simple, it's not quite as simple as we expect it to be. Therefore, simplicity only counts when we are dealing with clean …

Design, Development and Testing Decoupled

The job title 'software tester' suggests the economic benefit of deferring software testing:after development is concluded, to a third party, not the person who wrote the code, andat the interface level.I've noticed that this job has grown in popularity and that it often does not require …

Great Quotes

“If you don’t at least occasionally contradict yourself, your position is not nearly complex enough.” - Terence McKenna

Paid to Think

Are you paid to think? Does your employer have you on the payroll, not just for your manual participation in some process, but for creative and original ideas? Then you are a knowledge worker in the pure sense. Knowledge work is nonlinear by design. It is impossible to guarantee a …

Django and Application State

Ever since I started writing applications in Django, one of the things that has perennially troubled me is the lack of awareness that Django apps have for application state. There is no interface by which a developer can express application state. While the framework does a remarkable job of capturing …

The Principle of Interfaces

Interfaces are predicated on the following idea: the number of items that may be interacted with to effect some effect is a tiny fraction of the number and manner of ways in which that effect may be produced. Interfaces serve as a way to drastically reduce complexity thereby hiding …

Entrepreneurship Is A Bid for Scarce Resources

The Garden of Eden was a system for the production and distribution of goods and services, but it was not an economy, because everything was available in unlimited abundance. Without scarcity, there is no need to economize– and therefore no economics.Thomas SowellEvery new business implicitly makes the claim …

The Trinity of Software

There are three essential elements of software:TypesOperationsConstructsEverything else in software can be reduced to these three. We use types to construct models, operations to act on and between models and constructs to organise execution. Types may be provided by the language though these tend to be …

Peer-Reviewed Data Archives

Popular scientific data archives eventually run out of resources to curate their data. It is much more practical to shift to a peer review mode for data curation. This will require high quality tools which enable the scientific community to assess data quality and validate the data. It may also …

Exponential Gains Require Exponential Effort

Update: I've a new perspective on this...Simplification i.e. the process of reducing complexity, exacts a non-linear cost because the process of identifying complexity-reducting factors is complex. If it were not so then the substrate would not be complex. Simple substrates require linear effort in order to reduce them. My …

Does Object Oriented Programming Boost Productivity?

When done right, object oriented programming (OOP) converts the imperative nature of procedural programming into a set of declarative entities with imperative calls within and between them. The advantages of better reasonability, reusability and all the others depend on this. However, I am yet to meet someone who is able …

Adobe Failing to Read the Writing on the Wall

Adobe has been the darling of the creative industry for decades but it's insistence on it's cloud-only package model may soon result in its demise. The fact that people literally beg and cry to get it at a more affordable price is a sign that it has managed to establish …

The Social Effects of Quality

When you take the time to deliver high quality your users respond with open hearts. They cheer you on. They are more than willing to give back to you considering the convenience you have afforded them. The world is awash with base attempts that promise heaven and fail to even …

HPC: Excessive Inventory

The trend for most scientific computations to be run on clusters or grids hides the need for improvements in computational design. Using high performance computing (HPC) resources typically involves providing prodigious amounts of compute and memory (and by extension networking). It is inevitable that the demand for storage should increase …

Unmanageable

Some tasks are unmanageable. Their inherent complexity renders external accountability impossible because the level of understanding required is just as complex as carrying out the task as to make it too expensive to manage. Such a relationship requires trust from the manager and honesty from the executor. For example, scientific …

A Startup Is A Promise

Every startup is a promise that the new product or service on offer will be here to stay at a quality level that meet expectations. The novelty of the startup allows its potential clients to give it a chance to fulfil this promise. This only last for so long after …

The Five Sources of Wealth

As far as I can tell, there are only five sources of wealth:InheritanceLuckCreativity (not mere imagination)Talent (at a world class standard)Theft (like most politicians in poor countries)Only one is within most peoples control and not subject to sudden loss: creativity.

Capital Threshold

I've tried searching on Google for this but apparently it's not a thing. The idea of a capital threshold is the minimum required capital required for an investment to be profitable. It applies to different economic jurisdictions implying that different economies incurr different capital costs to establish enterprises. Ideally, an …

Advantages of A Mature System

A systems can be said to be mature when its quality output is optimised under the given inputs. This means that one would very rarely observe special causes as these have been driven out of the system due to a systematic attempt to address all such causes. In addition, because …

Using Database Views with Django

Here is an excellent article which shows just how to do that: https://rescale.com/using-database-views-in-django-orm/The objective is to have read-only, analysis database views for derivative data that is based on aggregation of the actual data tables. I think this should be best practice and probably be natively supported from Django.