Maximum Sustainable Business

What upper bounds limit, or should limit, the size or scope of a business? Developing the lower boundary of a product is already a proven strategy for launching products. And since the idea of a minimum viable business has already been addressed, let’s consider the upper bound.

Physical limits impose some basic restrictions such as the amount of arable land, number of possible consumers, or the amount of money in a market. Some may change over time while others may be fixed. For example, if Canada’s economy had only 2 trillion units of currency available then it’s impossible for a company to exceed that value in Canada; at least until the economy grows.

Legal restrictions also exist in many markets. Cuba’s Agrarian Reform Law limits farm sizes to protect the workers. In the US there are several anti-trust laws to prevent abuse and promote competition among businesses. Whatever one’s view of government’s place in the economy, the intention is clearly to balance the interests of consumers, producers, and employees.

Having worked at larger and smaller companies I’ve seen the advantages of scale: efficient use of (some) resources like instructors’ time, fewer workers needed for administration, and spreading risk. Smaller scales also have their pros; such as more personal management, less bureaucracy, and often a faster path to promotion. However, I think the disadvantages of larger businesses outweigh the benefits. Some cons I’ve witnessed include compensation not tied to performance (discouraging working harder or even at all), reluctance to change, more careless about environmental effects, and a tendency towards anti-competitive behavior.

Sustainability in the long term is another important goal. If a company wants to exist forever then environmental impact becomes a priority. Thankfully even some larger companies are becoming more aware of the issue.

If all businesses considered the human and environmental factors as heavily as financial ones then perhaps more would choose to limit their size. If government regulation more aggressively addressed anti-competitive concerns and taxation encouraged sustainable, small business then I believe it would also be more humane. As machines are increasingly competing with people for jobs wouldn’t it be better if there were many more, independent opportunities for employment?

Please consider sharing your thoughts in the comments.

Path Of The Python, Ruby, And Perl

Many programming languages were designed to promote a certain style or way of working. Python, for example, strives to provide a single ‘obvious’ path to a solution for any common problem. At the other extreme Perl seeks to provide many different ways to do something. Ruby takes a curious middle ground by providing multiple solutions yet promoting only one or two conventions.

Community is also a big factor in the way computer languages are used, developed, and taught. Within the Ruby community the Ruby on Rails has raised awareness of the convention-over-configuration paradigm.

Having a variety of shortcuts such as those in Perl and PHP have proven useful when I’m in search of a quick and dirty solution. That is likely why Perl has been so popular for getting simple jobs done.

Maintaining software as it grows and changes is one concern I have with very feature rich tools like Perl and PHP. After more than 10 years working with PHP I find I still need to check the manual to confirm behavior every single time. Javascript seems to have a similar problem, though more so because of the many different implementations.

While language usage doesn’t always strictly follow the intended usage, there are examples indicating that design philosophy impacts outcomes:

Ultimately it is up to the software engineer to decide which road to take to get to the solution. Familiarity with the platform or style is another significant factor I’ve seen at work in the mind of individual engineers.

How about you? Do you have thoughts or experiences to share? If so please leave a comment.

Why Is Software Licensed And Not Sold?

Most software one buys these days is actually sold as a license to use a copy and not a right to copy itself. So ‘buying’ a game on Steam or office software from Microsoft is more like paying for an indefinite lease than buying a book at a physical bookstore.

Producers see this distinction as necessary because legally if one bought a right to a copy then–much like a book or car–it could be taken apart, changed, shared, and resold without their consent. Copying is especially easy with modern systems. And while copyright laws themselves would make unpaid-for copies illegal, it cannot restrict what else is done with them.

The rise of open source software with more liberal licenses, such as the General Public License, indicates many producers are choosing not to hide or restrict what is done with their creations. As someone who produces software for a living, I’m not sure how viable such licenses are since they remove much of the incentive to pay in exchange for the work.

As a consumer of software I find the licenses of companies like Steam and Microsoft restrictive. Especially worrisome is that they deny transferring; and therefore reselling. I also enjoy buying used copies of software and games at a discount rate. And while I don’t mind the idea of legal licenses of my productions being resold, allowing it while most do not would put me at a disadvantage.

Large portions of the software market use digital rights management to try to enforce the license terms. In my experience as a consumer it also gets in the way of using the products. It’s possible the rise of decentralized currencies like BitCoin will give rise to decentralized rights management.

Do you have an opinion? If so please leave a comment.