Monday, February 10, 2014

The Art in Ownership


Every analyst who has been called in to a consulting gig recognizes that money, the capital behind the business, carries a fair amount of power. He who has the gold makes the rules, and all that. The actual relationship between a company's owners and its employees is however substantially more sublime. The primary power at owners' disposal is hiring, firing, and purchasing, but they may only exercise these within the constraints of their detailed knowledge of the actual day-to-day operations that their employees support. This is where your role as an analyst faces its greatest challenge: in effect you are pinching the constriction of knowledge as it straddles across the employees and the management.

I have only found two ways to respectably play my cards as an agent of knowledge restructuring between these two parties. The first option is to nominally side with management, the second option is to firmly stand by the employees. In the first case you become an extension to the desires of hatchet men, using their power indirectly while pressuring the employees to reveal their knowledge. This method is best executed from the role of an outside consultant.

The second alternative, siding firmly with employees, requires that you nonetheless "package" your presentations to appeal to the baser, monetarist side of management. In either case you need to remain a bit guarded and two faced, hence in the end falling a bit short of the unrealistic expectations of both parties.

Society imposes its wishes on business owners with a large and diffuse glove, that can occasionally sprout spikes of glistening razor-sharp titanium. Enforcement can sprout as tax compliance, licensing issues, fair trade rulings, patent law, or numerous other sundry regulatory appendages. Occasionally you may find yourself defining a system with some sideways legal considerations. The safe way to approach this is to make sure that /some/ sort of audit trail exists, should management decide that at some point in the future they need to more tightly, retroactively, comply.

The symmetry between a businesses' owners and its customers is perhaps one of the most deeply studied aspects of capitalism. When all is said and done however it really boils down simply to two managed aspects of a buyer-seller relationship. The owner/seller is trying to optimize the services and products they will provide, and the buyers are choosing the best "value" given their variable and shifting tastes. As an analyst you are therefore trying primarily to implement a system that provides both immediate and ongoing value-added efficiencies. Customers can sense however when they are being manipulated; be wary therefore if your system is going to provide further margin to your employer without a concordant benefit that gets passed along to the customer.


Monday, January 6, 2014

Artful Traceability


When you are in the actual throes of day to day production… after the development is done and you work out most of the bugs… it certainly is convenient to have some sort of end-to-end Traceability. The general concept is that every change in state or activity that has a material financial impact to the company (or its customers) should be traceable back to underlying actions.

The idea is somewhat similar to how an airline keeps track of its design and maintenance records. When a portion of the avionics fails during a landing it sure is nice to look back through the records to see what parts get linked where, and what has changed.

For example, at the end of the month you send an invoice to your customers. Where do the line items on this invoice come from: what atoms of work and activity (from a systems viewpoint) do they represent? Can you trace back from an invoice number back through shipping, fulfillment, ordering, and customer options?

Many time validation is just viewed as comparing the results of production back to the functional specs to make sure all of the business rules got implemented correctly. But validation should also be enabled for ongoing activity in a dynamically changing system, and this requires designing for traceability, from the very start.


Wednesday, December 11, 2013

Artistic Specialty


To some extent folks adopt their software development specialization depending upon their own skills and tastes: do they feel more comfortable with a broader and lighter background or do they prefer to be deeper and more focused? Managers may also have a strong influence over how employees develop their skills simply by the tone and expectations that they set.

Obviously software development requires some specialization, since the technological complexity and the rate of change in our profession precludes a sole person from spending the time required to be a technical expert at all the myriad skills that span the available range of tools. If you wish to employ an expert a direct corollary will be that you therefore choose a specialist. If you plant a honeysuckle tree, you are going to get hummingbirds: that's the sort of specialist this tree desires.

Selecting specialists for software development presents some challenging issues. Unlike hiring engineers to design cars -- where once the model rolls off the production line the engineers move along to their next project -- hiring engineers for a software project is likely hiring them for the entire life of the system.

In this instance the problem that a manager faces is that quality, job security, and concurrency are in opposition. Asking your staff to specialize may give them greater job security and improve the quality of your operations, but they will lose their awareness of how to incorporate and apply new tools and hence lose their personal marketability.

If you hire a specialist to do the job then the result is going to be somewhat unmaintainable by anyone but that specialist. If you hire a generalist it will be far easier to maintain the resultant system, although the final product may well appear less slick and polished.

Ultimately then who you hire depends upon the "positioning" your company is trying to achieve. Are they looking for a short-lasting expensive best of breed solution? Or something long term, stable, and adequate? What sort of tree exactly are you planting?