Showing posts with label architecture. Show all posts
Showing posts with label architecture. Show all posts

Tuesday, April 12, 2022

Simplicity: the benefits of lack of complexity

 

     I have been around computers a long time. Long enough to remember when 64K of memory (in total -- not RAM) was considered a large system. Long enough to have to toggle in a boot program for the paper tape reader to allow the main program to be run. Long enough that, between queuing up for the card punch, waiting for your program to be executed by the mainframe, and then getting the printouts from the run -- you might be only able to run your program three times in an eight hour period.

    (Not as long as the true pioneers like Ada Lovelace, Alan Turing, Kathleen Booth, Wang An, Grace Hopper and such. Please forgive me if I left out your own favorites.)

     Now, I'm not going to say those days were "better". I like getting streaming videos (though I will never be in favor of the many meetings that could have been done with a few memos and emails). I like reliable email networks, transmission, and reception. I like online shopping. I like having much of the transcribable data of the world available with searches and networked museums, libraries, and academies.

     But there were some advantages arising from the lack of options and complex systems.

  • With very limited memory, it was necessary to write efficient code.

  • With slow turnaround, it was necessary to try to anticipate every problem, and edge condition, that your program might encounter -- in advance as part of the design.

  • It was relatively easy -- and usually necessary -- to understand the basics of the entire system from the power that entered the hardware to the hardware components to the initial boot program, the peripherals, and the way the operating system works.

     I am a generalist because I WANT to continue to be a generalist. There are rarely paid positions posted for generalists. So, it was necessary to focus on some area. I became a telecom/datacom specialist. As I continued my career, I found that people interactions became more and more interesting and so I started to try to become the best servant leader that I could be -- a goal that I will never reach but which will continue to be out there as a target.

     But, at heart, I am still a generalist -- now extended to include the people (people's actions and interactions, UI, UX, etc.) Being such is conceptually very useful -- but job listings are virtually non-existent. Creation of new types of products usually requires knowledge of multiple areas (and, often, sciences) brought together. Generalists can be of great use in such.

     Nevertheless, the economy continues to move towards complexity and specialization.

     Within a computer app that faces a human user, a goal is to present a simple, intuitive, interface. Complexity of possibilities makes that much harder and, in part because of legal issues, every version of a particular program (word processing, spreadsheets, voice apps, video apps, ...) has to have a different interface (sometimes just a bit of a diversion, sometimes completely different).

     The goal is still to make it simple for the user to use without sacrificing flexibility and functionality. When that is achieved, it is almost definitely a balancing act with extreme complexity "under the hood". One could say the complexity is of the system as a whole. When the user-side becomes simpler, the provider-side becomes more complex. This often applies to mechanical objects, and other systems, as well.

     But what about those advantages of a simple program? They move from necessities to desirabilities. I would say that it is STILL useful to write efficient code. It is DEFINITELY (especially in terms of security in our current world) useful to anticipate problems, edge conditions, and vulnerabilities as part of the design. And, in order to create new types of programs, I am of the opinion that knowledge of the complete system is of considerable usefulness.

     Most examples have been concerning computer systems since that is my field. But such can be applied to civil engineering, mechanical engineering, business structuring, and so forth. There will be advantages with simple systems and complexity will involve trade-offs between various components.

Sunday, August 31, 2014

The economics of supersizing

I have to be careful when I talk about economics as it is such an all-pervasive subject that it is easy for me to lose focus. I consider it to be "applied sociology" -- or a measured way of evaluating how people interact and value each other within society.

Once upon a time, during a telephone interview with Google, I talked with them about how I thought Google was in a fantastic position to create an interlinked database of products, employment, and salaries. As only one example, such a database, and associated tools, could be of enormous help in figuring out how to migrate from a fossil fuel economy to a renewable fuel economy while minimizing the effects on the economy and individual workers. (Later, with 35 years of software architecture, programming, and managerial experience, Google called me in to interview for a marketing position -- they definitely have a sense of humor.)

See how easy it is for me to lose focus!

In the area of focus for this blog, supersizing involves a combination of total profits and perceived value. Perceived value is a subjective matter -- it depends on the individual and their history. In the US, it is considered to be of greater value to get more food for less money per amount -- in spite of the fact that the greater amount is unneeded and ends up being waisted (misspelling intentional). In most European countries, quantity does not enter into the equation for value as much as quality. In some other countries, it is a sufficient struggle to just get enough to eat.

When a product is sold, it is sold at a specific price. This price can be determined in one of two general ways. These are basically "cost plus" or "demand pricing". With "cost plus", the price is determined by a specific amount added to the cost of producing the item (including all overhead such as building costs, utility costs, storage, labor, and inventory loss). So, if a thingamabob costs $1 to make, store, sell, and so forth and the company wants to make 20% profit on selling thingamabobs, the price will be set at $1.20. With "demand pricing", the price is set to the highest amount that will lead to the greatest total profit. This is a bit more complicated.

"Net profit" is the difference between all the costs associated with making and selling something and the amount for which it is sold. In the "cost plus" example, there is a net profit of $0.20 or 16 2/3% (20 divided by 120). In "demand pricing", net profit is determined in a similar fashion except that the goal is to maximize the total profit.

In order to maximize total profit, the goal is sell the MOST possible at a specific net profit such that the total amount is the greatest. For example, selling 1000 of something that has a net profit of $0.20 will give a total profit of $200. Selling 500 of something that has a net profit of $0.50 will give a total profit of $250. So, even though you are selling less, you end up with a greater amount of total profit. But, if you get especially greedy and start selling something a a net profit of $1 and only sell 100, you will end up with only $100 profit.

The practice of pricing for "demand pricing" is an art and involves marketing (convincing you it is something you want), branding (letting you recognize the product and make positive associations that increases its perceived value),  and competition.

If you have a product that is desired by people and you are the only one who makes the product then you can demand the greatest amount. If you have a product that is made by many different companies and there is little perceived difference of value, then you enter what is called "commodity pricing" which usually has small net profits per item and requires mass production and sales to be profitable.

So, we come down to the area of supersizing (finally, you say). Supersizing (in the US) does two things -- it increases the perceived value and it increases the net profit (it MAY also increase total sales because of the increase in perceived value ). Let's say that you sell a tidbit that has $0.50 costs associated with what goes into it (raw, or pre-processed, food ingredients), $0.30 labor, $0.50 overhead (such as building, heating, lighting, franchise fees, etc.), and $0.30 for sales (marketing, "free" toys, posters, advertising, etc.). You then sell the tidbit for $2, giving a net profit of $0.40/item (or 20%).

If you can convert that sale into buying something bigger -- let's say twice as big. then the only thing that you have increased is the costs of what goes into it. [There is, admittedly, a little more overhead concerning storage of more stuff but that is often balanced with a reduction in cost of buying raw materials.] So, rather than $0.50 of stuff going into it, there is $1 associated with the costs. You then sell the item for $3 and you make a net profit of $0.90/item (or 30%). If you make it three times as large and sell it for $4, you would make a net profit of $1.40/item (or 35%). This is how supersizing translates into FAT profits (OK, I admit it, I like puns).

In summary, as long as people see greater value in buying more food for less per amount, it will be difficult to persuade companies to not supersize as this is an easy way for them to achieve greater profits. The only route is to change mindset to demand greater quality rather than greater quantity.

Corporate Media: Just what in the world is meant by corporate media?

     When you hear discussion about virtually anything, you may very well encounter the term “corporate media”? What does that mean? Is it i...