Software Development
Blogs and Discussion
developer.*
Books Articles Blogs Subscribe d.* Gear About Home

Enterprise Software Considered Harmful (2) - comments on Ravi Mohan's blog

Ravi Mohan writes:

"With the customer issue out of the way, let us examine the core issue - the notion that talented developers would prefer to do stuff like compilers and algorithms instead of a business app (by which I mean something like automating the loan disbursal processes of a bank)."

Ch 9 of Build Your Own .Net Language and Compiler shows how you can automate credit approval by writing a compiler as opposed to coding overspecific business rules.

"It's kind of a "Berlin Wall" effect. In the days of the cold war, to cut through the propoganda of whether Communism was better than Capitalism , all you had to do was to observe in which direction people were trying to breach the Berlin Wall. Hundreds of people risked their lives to cross from the East to the West but practically no one went the other way. Of course this could just mean that the folks didn't appreciate the virtues of people's power and the harangues of the comissars but I somehow doubt it."

In the German film, Goodbye Lenin, an East German single mother and honest member of the midlevel of the Communist party has a heart attack when she sees her kid being attacked by East German police in East Germany's last days, when people demonstrated, not for forced reunification with the West (and now almost twenty years of unemployment with a growing Fascist problem) but for an independent East German, noncommunist but socialist society.

In the movie, she falls into a coma during the 1989 events and her kid, not wanting her to be shocked into another heart attack after she wakes after the events, creates a "virtual reality" using old videotapes and the skills of a hacker friend to make his Mom think East Germany is still communist.

On the anniversary of the events in 1990, when in fact East Germany reunified with the West and became a source of cheap labor, the kid's virtual reality shows the Mom that East Germany has REMAINED a socialist state but has opened its borders to the West, and westerners are pouring in to the first state in Europe neither capitalist nor thug Communist.

Generalizations about what "people" want are always suspect because 99.9% of the people in the world don't get anything near a decent life: India itself, I am sure, shows this to you on a daily basis, but even in the United States, people are brutalized by a lack of choice, a lack which really excludes most community college programmers from ever dreaming about writing tools.

"To see whether living in India is better than living In Bangladesh (or whether living in the United States is better than living in India) look at who is trying to cross the barriers and in which direction."

Look at the map, Mr. Mohan. With all due respect, I would draw your attention to the fact that even a simple map is a two-dimensional "thing" and provides no rational basis for saying that India is worse or better than Bangladesh (bigger ain't better).

This is obvious, but somehow as armchair sociologists we deal in concepts so moronized as to be useless, including the overbroad generalization that

Bangladesh < India < United States

If your Mom lives in Dakha, then Bangladesh might be better than India, and being stacked three to a room in a Motel 6, coding 24/7 some goddamn useless business application for rednecks, is probably way worse than living in Delhi.

"The widespread (though not universal) preference of the very best software developers for "plumbing" over "enterprise" holds even inside Thoughtworks (where Martin works and where I once worked). I know dozens of Thoughtworkers who'd prefer to work in "core tech". While I was working for TW, the CEO,Roy Singham, periodically raised the idea of venturing into embedded and other non enterprise software and a large majority of developers (which invariably included most of the best devs) wanted this to happen. Sadly, this never actually came to pass."

And it won't, because India's software industry won't declare its independence from the West. It has long specialized in the exact coding of "requirements" as opposed to building anticipatory tools that would ELIMINATE THE NEED for "code" for essentially the same reason Clive opened India up...to the destruction of its native industries and its forced dependence on English manufactures, which Ghandi found so offensive.

But if the AMERICAN economy goes to hell, which it may because of its own deindustrialization under Reagan and Bush, then opportunities for Indian firms will dry up.

"A good number of thoughtworkers do business software to put bread on the table, or while working towards being good enough to write "plumbing", but in their heart, they yearn to hack a kernel or program a robot. (Another group of people dream about starting their own web appp companies). For most of these folks tomorrow never quite arrives, but some of the most "businessy" developers in Thoughtworks dream of writing game engines one day or learning deep math vodoo or earning an MS or PhD. And good people have left TW for all these reasons. And if this is the situation at arguably the best enterprise app development company (at least in the "consultants" subspace) one can imagine the situation in "lesser" companies."

You do have my sympathies, because in the small you repeat the plight of the economy. You see that by coding specific requirements you're not learning and growing, and this will make you subject to the whims of the economy in the way a more broadly educated person is not, and you'd like a chance to factor the workday into hours spent addressing the needs of the paying customer, and time spent learning new approaches.

Ideally, the customer would allow you to write a business application as a compiler and my book shows that this can be practical, but for the most part, the customer has the right, in a free market, to assert complete control, and tell you to code a specific solution.

"Strangely enough, I heard Martin talk about the same concept (from a more positive view point, of course) when he last spoke in Bangalore. He explained how much of the complexity of business software is essentially arbitrary - how an arcane union regulation about paying overtime for one man going bear hunting on Thanksgiving can wreck the beauty of a software architecture. Martin said that this is what is fascinating about business software. But he and Paul essentially agree about business software being about arbitrariness. It is a strange sense of aesthetics that finds beauty in arbitrariness, but who am I to say it isn't valid?"

There's nothing boring about developing software that takes into account human needs for time off. One reason Bjarne Stroustrup became a great programmer was because he did NOT start out writing "tools".

No, he automated industry in Denmark, a unionized society where the shopfloor workers wanted some control of their tools. On the shop floor, Stroustrup in fact realized that the object-oriented approach is user-friendly because you can communicate software behavior in a more organized way.

Whereas going straight from university into "tools" creates in many cases a pedantic, unimaginative developer, contemptuous of and frightened by real users, who year in and year out applies outdated solutions to problems.

You speak of "writing a compiler" as some sort of ideal, and rocket science. In fact, it's straightforward even if you don't use yacc, and furthermore there's a real question as to whether we NEED more compilers, at least for the traditional languages.

Normalizing a refugee data base such that it takes into account international styles of child naming, such that it doesn't assign "null values" to children with names not based on the Western model is in fact a far more cutting-edge problem since it requires knowledge BOTH of international languages AND data base normalization, and enough goddamn compassion and understanding to know that in the field, brutalized kids retain a right to a name.

"This is so true it needs repeating. And I have said this before.To write good banking sofwtare, for e.g. you need a deep knowledge of banking AND (say) the j2ee stack. Unfortunately the "projects and consultants" part of business software development doesn't quite work this way. I will go out on a limb here and say that software consulting companies *in general* (with the rare honorable exception blah blah ) have "business analysts" who are not quite good enough to be managers in the enterprises they consult for and "developers" who are not quite good enough to be "hackers" (in the Paul Graham sense)."

Business knowledge isn't "knowledge" in the traditional sense. Yesterday's banking knowledge consisted of racism (knowing a pukka white guy when he walked into the bank) and fear. Today's "knowledge" is less knowledge than the willingness and ability to apply REAL knowledge such as Islamic banking and thereby continue to widen your market.

But note that in a real bank, the programmer isn't expected to research Islamic banking or the law. He's instead required to get the rules from a "business analyst" who himself is only skilled in talking to people who KNOW, and who are typically higher in the hierarchy than either the programmer or the analyst!

"Of course factoring in "outsourcing" makes the picture worse. By the time a typical business app project comes to India, most, if not all of the vital decisions have been made and the project moves offshore only to take advantage of low cost programmers, no matter what the company propoganda says about "worldwide talent", so at least in India this kind of "figuring out" is almost non existent and is replaced by an endless grind churning out jsp pages or database tables or whatever. It is hard to figure out the contribution of your software to people and businesses located half a world away, no matter how many "distributed agilists" or "offshore business analysts" you throw into the equation."

You chaps know best, but India may be being taken advantage of. The Indian software boom has according to recent articles in The Economist really done nothing for most Indians.

"This is true for non businessy software also,though to a much lesser degree. The kind of work outsourced to India is still the non essential "grind" type (though often way less boring than their "enterprise" equivalents). The core of Oracle's database software for .e.g. is not designed or implemented in India. Neither is the core of Yahoo's multiple software offerings - the maintenance is, development is not. And contary to what many Indians say, this is NOT about the "greedy white man's" exploiting the cheap brown skins. You need to do hard things and prove yourself before you are taken seriously. Otherwise people WILL see you as cheap drone workers. That's just the way of the world)."

Ravi, Willy Loman in Arthur Miller's DEATH OF A SALESMAN bought the line that "you have to do hard things and prove yourself before you are taken seriously". I really don't think that a proud and ancient civilization should have to do this to be "taken seriously".

Furthermore, you "succeed" at a game which unlike soccer doesn't build you up, in significant ways, grinding out 'code' mindlessly by a deadline merely wears you down, especially when you realize how buggy it is.

I really don't understand, Mr. Mohan, how you can get the world to see you as NOT being "cheap drone workers" by being cheap drone workers, and not demanding of the customer that you have more time to develop an anticipatory solution that your firm can handle new requests with software tools.

I don't say the customer should have to pay the full rate for this. Instead, the usual situation in my own international experience is that you cannot even place this idea on the table. You can't take a lower rate for being able to assert this type of control, because in most of these situations, the customer wants a proprietary "secret sauce" so that his software can be used competitively.

Given your odd use of an example of union power which simply doesn't exist in America anymore, to use language which implies any aspiration to be anything other than the lowest-cost (if highest value) producer is to remove yourself from the game.

The process in the large doesn't have to be rational

In ECLIPSE OF REASON, Max Horkheimer speaks indirectly to the plight of MIS developers who'd rather write tools.

In the Renaissance of the West, the merchant class learned to adapt to short-term needs. This was the "material basis", in part, to skeptical philosophy and modern science.

The contemporary pretense is that the West is the simple avatar and progressive evolution of this willingness to at all time to take short-term advantage based on "reason", and that there is no alternative.

But as experienced by real people in real life, "reason" becomes indeed the wreckage of THEIR "reason" (their software architecture) by a trumping "reason" which uses authoritarian structures to insist on its way, and which in the case of corporate and government secrecy need not divulge why the user now "wants" a different architecture, and get back to work.

The fact is, as Horkheimer shows, it becomes impossible for individuals to be "individual" ("in DUH vidual" in the cruel mockery of Dilbert) in a society which proclaims its valuation of individuality!

Horkheimer shows how in the 17th century, Leibniz' "Monad" became the model for individuality. A "monad" exists independently of all other monads, and can step over homeless men in the street.

But what we find is that in a process which strangely resembles crystal formation, the monads, in optimizing their in DUH viduality, become, if they know what's good for them, individual crystals in a lattice of ... identical crystals.

In MIS, in fact, they all know the same required laundry list of technologies even if they harbor a voiceless resentment of Crystal Reports, knowing that a Crystal palace is not Utopia.

[The origin of Crystal Reports was the simple fact that circa 1978, if you had coded 50+ report programs, you realized if you didn't totally suck that they all were implementing the same basic algorithm, and that you only needed to generalize the ontology from "print line" to "block of information meaningful to the user containing small n lines", and then scale up, to get a report GENERATOR.]

[This is the type of thinking that denies the constructed firewall between MIS and "tools" and it shuddha made me rich but my inner Buddha had other plans for me.]

In MIS the proud, individual Masters of the programming Universe wear all the same khakis and troop on time to the Bangalore Hooters for lunch.

[I do hope you bad boys have a Hooters in Bangalore by now, with all due respect for local custom goes without saying. My point is that in places like Shenzen, the culture I saw in Schaumburg, Illinois, was replicated like a self-duplicating crystalline cancer on the shores of Shekou bay.]

Not a mathematician, Horkheimer had a mathematical insight. Rule driven monads, or cells in a cellular automaton, generate not stochastic patterns but patterns in the large, for the same reason I discovered that John Conway's LIFE would generate spaceship builders in 1971.

Horkheimer took this evolution seriously. To step back and creatively craft a tool to anticipate requests goes backward to a time when producers controlled the market.

British coal miners asked Thatcher for the right to keep their jobs even when there was no demand for coal, and to stack the coal they dug in neat piles awaiting an energy shock.

In the typical software company, to develop a general tool is to stockpile and it goes directly against global evolution/devolution. Even as the merchants of the 17th century learned to treat silk from India and China interchangeably, and not describe themselves exclusively as dealing in the one or the other, the evolution is in fact towards even more reactive, even more opaque coding of proprietary solutions.

To be a toolcrafter in 1978, you had to leave renumerative and paid employment even as Wozniak left Hewlett-Packard. To "write a compiler" in 2003 I had to come close to starving in a San Francisco hotel room.

No company is going to pay you for disruptive technology. And "being an entrepreneur" isn't the answer, because entrepreneurs entrep, they don't write code.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Recent comments

User login

About our advertising.

Atom Feed

developer.* Blogs also has an Atom feed, located at this url.

Click here for more information about Atom.

A Jolt Award Finalist
Software Creativity 2.0
Foreword by Tom DeMarco

Recent Posters

Based on most recent 60 days, sorted by # of posts and name.

Google
Web developer.*

Who's online

There are currently 0 users and 36 guests online.

Syndicate

Syndicate content
All views expressed by authors, bloggers, and commentors are their own and do not necessarily reflect the views of developer.* or its proprietors.
Click to read the Copyright Notice.

All content copyright ©2000-2005 by the individual specified authors (and where not specified, copyright by Read Media, LLC). Reprint or redistribute only with written permission from the author and/or developer.*.

www.developerdotstar.com