Showing posts with label Values. Show all posts
Showing posts with label Values. Show all posts

08 February 2017

Beautiful Architecture

People eat, sleep, entertain themselves, meet biological needs within physical structures. These structures could be student hostels, barracks, small flats, large flats, bungalows. Each of these have very different architectures. It does not mean that students cannot live in flats, or houses; or that families cannot live in hostels. Its neither convenient, nor efficient. These different architectures cater to groups that have different "processing" needs.

Aircraft hangars and automobile service stations are both meant for maintenance. The "processing" needs are different. Their architecture differs radically; and it is not a matter of scale.

Airports and bus terminals both cater to the transportation of people. The "processing" needs are different. Their architectures are different.

You can operate business establishments and godowns in a palace. Bhagirath Palace is an example. The original architecture was designed for a different purpose. By all accounts it was beautiful. Definitely not beautiful now.

In addition to "processing" needs, there is the matter of values. Design is about trade-offs.Values are used to decide trade-offs. Values decide what is beautiful and what is not. In a residence where should the toilet be? Some three decades ago, I have seen toilets that were separate from the main residence. It reflects a value system. In Chickpet, which is a dense business plus residential area, I have seen a murrah buffalo in the front yard of a multi-storey building. It reflects a value system.

Architects who design buildings must understand both the "processing" needs and the value needs of their customers. Buildings that make the "processing" pleasurable and efficient and meet the values of the customer, have an architecture that is beautiful.

Software architects must understand the "processing" needs of the problem domain. They must also understand the values of good software engineering, the values of stake holders, and the tension between these. To the extent that architecture satisfies the "resulting balance point" of these tensions, it can be said to be beautiful.

An Architectural Story
New Delhi used to have a number of hutments. These were very near the very impressive buildings, on Raisina Hill, that were designed by Lutyens. The hutments were speedily constructed during World War II. They were meant to be temporary and to be torn down after the war. They were shabby, but met the "resulting balance point" at that point in time. Four decades later, most of them were still in use as government offices and family residences. They were hard to live in and hard to work in. Definitely not beautiful.

Some code that I have seen remind me of  "hutment" architecture.



14 April 2011

Are Business Models, Values Not Tested?

In a post made some months back, Seth Godin talks of the culture of testing at Netflix. According to Seth, Netflix tests everything, except for three things: their business model, their culture, and the change in business model by switching from postal delivery to online delivery. According to Seth these could not be tested.

Is it really true that these cannot be tested?

It is true that these cannot be tested like DVD cases. (Netflix tested 200 of those before deciding on the design.) Yes, they cannot be tested in-house, on a test-bench. But they are tested - and have to be tested - in the market place. Values too are a result of testing in the market place of life.  And like all testing these too involve time and costs.

All start-ups are based on memes that the founders bring with them. Values are memes. Business models too are memes. Memes like genes, are subject to Darwinian testing.

Netflix's early story gives an idea of the memes that led to the initial business model.

It is, I think, safe to assume that Netflix's values are largely based on what the founders had experienced, and seen, and absorbed, at other companies. These were the result of "testing" in their earlier work life. It is also safe to assume that these values are put to the test every day at Netflix. If the values are practiced they are reinforced, otherwise they mutate, or die.

14 March 2011

Optimization: Objectives & Constraints

Optimization is maximizing a desired objective function subject to given constraint relations.

Hospitals have to make profit, otherwise they cannot grow, or buy new machines, or get better qualified (meaning more expensive) doctors. They must provide the best medical care and treat patients in a manner that does not offend the patient's dignity. Given that a hospital has positioned itself for a certain type of customer, in its day-to-day operation its charges are no longer a variable.

So what should be the objective function and what the constraint? Should it maximize profit under the constraint that patient care and handling does not fall below some minimum threshold? Or should it maximize the patient experience under the constraint of some minimum profit?

What of software companies? Should you maximize thruput (executable lines of code, function points) per person and minimize Quality (documentation, reviews, unit tests, ...) subject to the constraint that acceptance checks are passed? Or should you maximize Quality subject to the constraint of minimum thruput acceptable by the customer?

(True story: We once undertook work that the customer wanted done in 7 months. We said, we would deliver but without testing. The customer said that was okay as long as it was top quality. The project proceeded. After 7 months till about another 18 months all lived through interesting times.)

What we choose as objective and what we set as threshold for the constraints depends on how we see ourselves. It is what we are - and are not. It is about our values.

One objective is not intrinsically superior to another. What is important, however, is that objectives, and constraint limits, must be consistent through out the organization. That is what forms the culture of the organization.

22 November 2010

Are Top Management's Sensory Channels Effective?

The collapse of a building gets the Chief Minister's attention, not this person's complaints.

My question: Can IT not be used to see that such citizen complaints are visible to the Chief Minister. Not just made visible but processed to extract information, spot trends, establish correlation, ... Delhi Traffic Police's Facebook page is an initiative that could be replicated and built upon.

What is the barrier to effective implementation? The political and administrative culture.

In a software company too, the culture and the values of the organization, can either sensitize, or de-sensitize, the sensory channels. The culture must re-inforce the value - get the bad news early. The culture must promote scientific checking for reality, the courage to face it, take corrective action, determine preventive measures and put them in to practice.

It is top management which, by its actions - not just words - communicates the culture and values.

With the wrong values even the most basic of business sensors, the balance sheet, is worthless - witness Satyam.

15 October 2010

Do Not Emulate Dronacharya

The national award for sports coaches is the Dronacharya award.

Dronacharya played politics. First he would not accept Eklavya as his students on grounds of race. Next when Eklavaya coached himself and became better than his star pupil, Arjun, Dronacharya managed to ensure that Eklavaya would not be the best archer of his time.

If Indian coaches play favourites, why blame them. They are emulating Dronacharya.

Lesson for Software Coaches: Do not play favourites.Nurture talent without any heed to caste, or creed, or region.

05 August 2010

False Certification

In an earlier post I had blogged about "Getting Ahead".

Times of India of 03Aug has an article that gives two examples of what happens when the desire to "get ahead" supercedes all values.

The DIG, who was held responsible for the Dantewada massacre, had in 1999, been decorated for liquidating three maoists. In fact he was nowhere near the scene of the action. False Certiciation. Falsification of records, and being on the right side of bosses can lead to awards. It will not lead to competent leadership.

The "ketch up" colonel, mercifully, had the values not kill his captives in cold blood. But then why stage a mock killing? To prevent a bad annual report, of course. That would stop him from "getting ahead". So False Certification,

What about many software companies with ISO/CMMI certification?

20 July 2010

Getting Ahead

Last Saturday Prof Ananth, Ditector IIT Madras, addressed the alumni in the NCR area.

During the talk the need for inculcating values came up. Prof Ananth narrated how during one of his interaction with some of his students he was told that there was nothing wrong with "cogging" (copying) as the objective was to get ahead! I suppose some "dudes" thought it "kewl" to tell the director that.

Would you want such a person as a colleague? What about as a researcher? How about for testing your mission-critical software? Or designing nuclear power plants?

Values are not learned in colleges, or in organizations. Display of wrong values needs examplary punishment.

Values are learned primarily at home and school. They are absorbed from the social environment and need correction at home.

And can a person who copies really "get ahead"? Like athletes taking performance enhancing drugs to get ahead, there are damaging, long term side-effects. The getting ahead is very transitory.

01 July 2010

Who is your Customer?

This is a question I frequently used to ask our new inductees. Invariably the answers gave one of the company's customer.

Whoever uses a team member's output is that team member's customer. If  the member has written a class, then any other member who uses that class is a customer. If the customer has problems in using the class it must be treated as a "customer" complaint, attended to promptly, and the root cause found and rectified. The customer is not to be lectured and told as to how he can change his code.

If the code is hard to understand, or not well documented, or with incomplete unit tests, then the customers (those who will review the code) are being treated badly.

Then there are people who will maintain the code long after you are gone; they too are your customers.

Growing and nurturing such an attitude is a defining part of team and company culture.

Kaizen: The Key To Japan's Competitive Success. (I have the international Edition of 1991.) On page 51 it has a sub topic, "The Next Process Is The Customer". Then on page 135, while describing cross functional management at Toyota - "The overriding goal is to never inconvenience downstream customers."

There is a lot that software companies can learn from Toyota.

25 June 2010

What Defines a Person?

What defines a person is not what the person can, or cannot do. What defines a person is what the person can do, but chooses not to do.

And that choice reflects a person's values.

Rejecting cowboy coding. Instead adhering to coding standards, not accepting "the language permits it" as a reason, doing test driven development, documenting and intentional naming so future generation will find it easier to maintain the code...