Saturday, February 13, 2010

These are my new bookshelves. One of the things we discuss in Service Oriented Architecture software design is reuse and composition of services. Looking at this design for the bookshelf, you can see reusable components, in the piping, the fittings and the shelf.

The service is composed of these simple components. The "Service" is defined as; an Object that displays and stores books, and is itself reusable, i.e. a different but similar bookshelf with variations in size and shape.

The key to reuse in software has been around for a long time. In Unix, much of the software utilities are simple, focused things that do one thing well and can be chained together to compose more elaborate utilities and functionality. Find, sed, awk, and utilities for manipulating strings can be aggregated into whole applications. In Unix everything is a file allowing for easy manipulation of files and directories.

This same idea is applied to services. Small fine grained utility services can be composed into larger more useful services. The reusability of these larger more coarse grained services falls off as they become more specific in their business functionality.

Wednesday, February 10, 2010

Software Quality

A proposal to improve software quality.

Those executives responsible for delivering software on time and under budget should have an additional target of improved software quality. There are tools readily available like PMD. Checkstyle, FindBugs and peer code reviews that will allow for code to be analyzed and reviewed before and during production to insure the quality meets the goals set forth for the executives responsible.

Until these kinds of quality metrics are in place the overall quality of software is not going to be on the same level as functionality, schedule and budget. The recent problems with Toyota brakes and throttles, Mercedes Sensortronics and other new software going into cars, let alone airliners and hospitals requires a new level of diligence and competency.

Imagine a corporation being held accountable for the deaths of consumers because they did not adequately perform the required Quality Assurance actions on their software products.

Monday, April 27, 2009

Solution to Piracy

Perhaps the solution to the piracy problem is a simple matter of hardening the ships. Modifications to the ship might be in order to allow for the following: The crew should be able to remain in control of the ship. The pirates should not be able to threaten the crew. When under attack the ship's crew should notify the authorities. The Navy can then come to catch the pirates.

It seems the pirates are able to ply their trade only when they have hostages. If the ships crew are not hostages and not in danger from the pirates then it is a simple matter of keeping the pirates from threatening the crew until the Navy arrives to fight the pirates.

Saturday, March 21, 2009

Rethinking Capitalism

A recent discussion with a long time friend of mine brought up the subject of companies being too big to fail. It seems a lot of the current troubles would have been smaller problems if the entities involved were smaller concerns. Why does a bank have to be so big? Would Bank of America be better of if they were not a such a huge monolithic organization? Would CitiGroup? How about GM and Chrysler. What economies of scale have we actually benefited from in this respect.

A long time ago the government broke up AT&T into the baby bells. Perhaps this is a case of where we need the same kind of thinking. Perhaps even smaller companies. How about Microsoft? They have spent years in court trying to remain a monopoly. Why? Would not the company be better off as multiple smaller companies, increasing competition and reducing the likelihood of some mono cultural problem affecting the entire stack of products.

I think this same idea can be applied to all companies in the US. Then it is also appropriate to consider the same thing for individuals. Can individual wealth and influence be allowed to grow with out any checks and balances? Does the accumulation of extraordinary wealth indicate undue influence or control? Does that not lead to opportunities for abuse?

Too big to fail means they are too big.