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 …
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 …
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 …
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 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 …
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 …
"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 …
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 …
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!
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 …
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 …
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 …
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 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 …
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 …
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 …
“If you don’t at least occasionally contradict yourself, your position is not nearly complex enough.” - Terence McKenna
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 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 …
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 …
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 …
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 …
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 …
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.
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 …
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 …
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.