Corporate America

PowerCerv, Icon Solutions, NBC

February 8, 2002
(slightly updated Dec., 2004)

by Uriel Wittenberg (uw@urielw.com)


This is one in a series of letters from Uriel reflecting on Corporate America. See Corporate America Index for full list and subscription info.

"It was a shocking event. With incredible speed, our perception of the world and of ourselves changed. It seemed that before we had lived in a kind of blind innocence, with no sense of the real dangers that lurked. Now we had experienced a rude awakening, which changed everything.

"No, I'm not talking about Sept. 11; I'm talking about the Enron scandal.

"One of the great clichés of the last few months was that Sept. 11 changed everything. I never believed that. An event changes everything only if it changes the way you see yourself. And the terrorist attack couldn't do that, because we were victims rather than perpetrators. Sept. 11 told us a lot about Wahhabism, but not much about Americanism.

"The Enron scandal, on the other hand, clearly was about us. It told us things about ourselves that we probably should have known, but had managed not to see. I predict that in the years ahead Enron, not Sept. 11, will come to be seen as the greater turning point in U.S. society....

"Think of it this way: The business of most Americans is business, and Enron already ranks as one of the biggest business scandals in history. There have been other big, admired companies that failed; there have been other companies that turned out to be largely fraudulent. But I can't think of another case in which the most admired company turned out to be a fraud.

"So even if the story turns out just to be about Enron, it has been an object lesson in how appearances can deceive. And I don't think this is just a story about one company....

"At the moment, demands for reform are scattershot and confused..., but I think they have a common theme: They're all about ending an era of laxity, in which nobody asked hard questions as long as everything looked O.K. That era is now over."

--"The Great Divide," New York Times, January 29, 2002, by columnist Paul Krugman.

Not about one company? Heck. Enron is the norm.

It may have been more aggressive, more blatant, more overtly criminal than most. But fundamentally, what's remarkable about the superficial picture we have of Enron at this point is that it was a company where, on the whole, more energy, imagination and ingenuity went into deception than into anything inherently worthwhile and socially productive.

Nothing could be more utterly commonplace.

My 1996 resignation letter to PowerCerv Corporation (a U.S. computer consulting firm) evokes some of the same themes we now read about in the news:

April 3, 1996

Mike Tsontakis
New York District Manager
PowerCerv Corporation

Dear Mike,

I would like to resign from PowerCerv, effective April 11, 1996.

I have many reasons for this action. I will outline the main ones, in a constructive spirit, in case this information can be beneficial to you.

First, my work: It has produced little sense of accomplishment or career growth, because it has generally served no meaningful business purpose for clients. You have pointed out that it's not our concern whether a project makes sense -- the client's the boss, and if they pay the fees we do what they want. However, there are other considerations: 1) Bright people don't like to devote their intellectual energy to dumb things that serve no purpose, so this is not a good way to retain them within PowerCerv; and 2) Renting consultants for any misguided purpose, without project responsibility, is the "body shop" approach favored by the low-end competition in the consulting jungle, and it does not signal a bright future for PowerCerv's consulting services.

The Entex episode illustrates a bold form of the body shop mentality, with its emphasis on short-term revenues over genuine client needs. I was dispatched to this client in the apparent hope that they would fail to realize that they did not want and had not requested an additional consultant. In fact, as I learned on my first day, their aim was to terminate the consultants they already had on site. When I arrived on the second day, they asked me to leave.

The body shop orientation is consistent with a general distribution email from an executive at PowerCerv to the effect that, following another overrun, fixed-fee projects should never again be broached. That fixed-fee projects are categorically ruled out is a grave reflection on PowerCerv's technical confidence and expertise.

Then there are PowerCerv's products -- the ones that "exactly fit" clients' needs, "even as those needs change," to quote PowerCerv promotional literature. When I first saw XCeed, I was at a loss to understand how anyone, anywhere, could be using it. Nothing worked. Eventually the "application template" rationale was explained to me: clients were paying for something better than working code -- this was modifiable code, infinitely flexible. (Whether clients fully grasped this benefit was not clear. The one time I heard XCeed pitched, in a Sybase class in Tampa last August, the PowerCerv sales manager billed it as a functioning application that was being successfully used by many clients.)

PowerCerv has obviously scored significant marketing triumphs. But I have to question the sustainability of relying to this extent on client credulousness, in both the consulting services and applications arenas.

Is PowerCerv simply cutting some corners, making reasonable compromises on quality for the sake of rapid success and growth? I doubt it. Everything I've seen suggests an organizationally ingrained contempt for quality.

Back when I joined PowerCerv, I heard cynical jokes about the plight of XCeed users. The manual, at well over a hundred pages, had been written in one night. (This feat would not have surprised anyone who opened it up.) As recently as a few weeks ago, XCeed's documented install procedure was wrong. This means problems, delays and the need to obtain technical support even before the product is used for the first time. Many key people must be aware of this. My initial attempts to contribute correct install documentation that I produced of my own initiative were ignored until I persisted.

A similar scorn for the idea of quality is evident with regard to PowerTool. Everyone I've spoken with who has ever reported a PowerTool bug has encountered the same reaction I have: total indifference. Even when I sought to contribute fixes I developed on client time, no one had the least interest.

How can PowerCerv tolerate constantly recurrent problems that waste time for clients and consultants, even when they are easy to identify and relatively easy to fix?

Am I overly focused on a few technical issues? Consider PowerCerv's email system. Is it not absurd for any modern company, let alone a software firm with PowerCerv's pretensions, to be unable to get its email system functioning reliably? Even at this late stage, after widespread trouble reports, a recent email from Roy indicates the problem has been misdiagnosed and will not be addressed effectively.

These are not isolated difficulties at PowerCerv. The pervasive confusion, inefficiency, chaos, the knee-jerk, patch-it-up reaction to problems, the indifference to the fact that the same deficiency being worked around today is going to waste a colleague's time tomorrow -- these features of the PowerCerv landscape represent a fundamental problem with the company culture.

Surprisingly, this situation is recognized by some of PowerCerv's major players, up to and including Roy. Yet no promising initiative appears to be forthcoming.

PowerCerv needs an intelligent, methodical, organized person to tackle these issues -- not a salesman, not a fevered optimist, not someone claiming a "vision" -- someone with the analytical capability and perseverance to investigate issues thoroughly and design simple, effective procedures and rules of accountability, then monitor performance and ensure that the potential for radical progress is realized. Since it is the company culture that must be confronted and slain, the role would need high-level authority and the open backing of the chiefs.

I would have been perfect for this position -- but my proposal for a Special Assistant position reporting to the executive, like my more modest initiatives with PowerTool and XCeed, generated no interest.

I don't wish to give the impression that I have personal grievances against the company or any individual within it. I don't. I've been treated reasonably, given the organizational context, and I trust our separation will be amicable. But I see no alternative to resigning, because I have no sense that PowerCerv offers me opportunities to remotely fulfill my potential.

Yours sincerely,

Uriel Wittenberg

c.c.

  • Roy Crippen
  • John Keegan
  • Ken Weatherly

But PowerCerv was nothing special. There was also Icon Solutions Inc., for whom I worked in 1997 as a consultant at NBC (the TV network). I was one of about 15 Icon consultants working onsite at NBC's midtown Manhattan offices, on a doomed system called "Genesis" whose development was expected to consume maybe 50 person-years.

I know you folks on this mailing list are not computer programmers, but you can get some idea of how COLLOSSALLY stupid the style of programming on Genesis was if you consider the following.

The system we were developing routinely had to write various things to a database, so we often had to write computer instructions to do this. We were using a language (PowerBuilder) in which this could be done with ONE COMMAND ("dw.update()"). But because of a kind of misplaced religious notion that prevailed on the project, programmers would often spend time manually writing a lengthy series of instructions, instead of that one simple command.

How lengthy? Let me show you how lengthy. Here is a typical example I have preserved:

************** On the PB side: ************************

DECLARE sp_INS PROCEDURE FOR p0152401_InsertHeader

@C524_SALES_EXTRACT_HDR_ID =
:IS_HEADER.C524_SALES_EXTRACT_HDR_ID,
@C524_EXTRACT_TYPE = :IS_HEADER.C524_EXTRACT_TYPE,
@C524_EXTRACT_NO = :IS_HEADER.C524_EXTRACT_NO,
@C524_BROADCAST_DATE = :IS_HEADER.C524_BROADCAST_DATE,
@C524_BYPASS_COMMERCIAL = :IS_HEADER.C524_BYPASS_COMMERCIAL,
@C524_BYPASS_PROMOTION = :IS_HEADER.C524_BYPASS_PROMOTION,
@C524_BYPASS_BILLBOARD = :IS_HEADER.C524_BYPASS_BILLBOARD,
@C524_BYPASS_PSA = :IS_HEADER.C524_BYPASS_PSA,
@C524_PROCESSED_IND = :IS_HEADER.C524_PROCESSED_IND,
@C524_SLS_ONLINE_TRANS_TYPE =
:IS_HEADER.C524_SLS_ONLINE_TRANS_TYPE,
@C524_SLS_ONLINE_BASIS_NO = :IS_HEADER.C524_SLS_ONLINE_BASIS_NO,
@C524_SLS_ONLINE_BASIS_ALT =
:IS_HEADER.C524_SLS_ONLINE_BASIS_ALT,
@C524_SLS_ONLINE_SEGMENT_TYPE =
:IS_HEADER.C524_SLS_ONLINE_SEGMENT_TYPE,
@C524_SLS_ONLINE_SEGMENT_SEQ =
:IS_HEADER.C524_SLS_ONLINE_SEGMENT_SEQ,
@C525_SALES_EXTRACT_HDR_ID = :IS_HEADER.C525_SALES_EXTRACT_HDR_ID,
@C525_BASIS_NO = :IS_HEADER.C525_BASIS_NO,
@C525_BASIS_ALT = :IS_HEADER.C525_BASIS_ALT
USING SQLCA

global type s_header from structure
integer c524_sales_extract_hdr_id
string c524_extract_type
integer c524_extract_no
datetime c524_broadcast_date
string c524_bypass_commercial
string c524_bypass_promotion
string c524_bypass_billboard
string c524_bypass_psa
string c524_processed_ind
string c524_sls_online_trans_type
string c524_sls_online_basis_no
string c524_sls_online_basis_alt
string c524_sls_online_segment_type
integer c524_sls_online_segment_seq
integer c525_sales_extract_hdr_id
string c525_basis_no
string c525_basis_alt
end type

************** On the Sybase side: ************************

create procedure p0152401_InsertHeader (

@C524_SALES_EXTRACT_HDR_ID SYSID,
@C524_EXTRACT_TYPE char(1),
@C524_EXTRACT_NO smallint,
@C524_BROADCAST_DATE datetime ,
@C524_BYPASS_COMMERCIAL YESNO,
@C524_BYPASS_PROMOTION YESNO ,
@C524_BYPASS_BILLBOARD YESNO ,
@C524_BYPASS_PSA YESNO ,
@C524_PROCESSED_IND YESNO ,
@C524_SLS_ONLINE_TRANS_TYPE char(1) ,
@C524_SLS_ONLINE_BASIS_NO BASIS_NO,
@C524_SLS_ONLINE_BASIS_ALT BASIS_ALT ,
@C524_SLS_ONLINE_SEGMENT_TYPE char(1),
@C524_SLS_ONLINE_SEGMENT_SEQ tinyint ,
@C525_SALES_EXTRACT_HDR_ID SYSID,
@C525_BASIS_NO BASIS_NO,
@C525_BASIS_ALT BASIS_ALT

)AS

................

INSERT INTO DBO.T524_SALES_EXTRACT_HEADER (

DBO.T524_SALES_EXTRACT_HEADER.C524_SALES_EXTRACT_HDR_ID,
DBO.T524_SALES_EXTRACT_HEADER.C524_EXTRACT_TYPE ,
DBO.T524_SALES_EXTRACT_HEADER.C524_EXTRACT_NO,
DBO.T524_SALES_EXTRACT_HEADER.C524_BROADCAST_DATE ,
DBO.T524_SALES_EXTRACT_HEADER.C524_BYPASS_COMMERCIAL,
DBO.T524_SALES_EXTRACT_HEADER.C524_BYPASS_PROMOTION,
DBO.T524_SALES_EXTRACT_HEADER.C524_BYPASS_BILLBOARD,
DBO.T524_SALES_EXTRACT_HEADER.C524_BYPASS_PSA ,

DBO.T524_SALES_EXTRACT_HEADER.C524_PROCESSED_IND,
DBO.T524_SALES_EXTRACT_HEADER.C524_SLS_ONLINE_TRANS_TYPE ,
DBO.T524_SALES_EXTRACT_HEADER.C524_SLS_ONLINE_BASIS_NO,
DBO.T524_SALES_EXTRACT_HEADER.C524_SLS_ONLINE_BASIS_ALT,
DBO.T524_SALES_EXTRACT_HEADER.C524_SLS_ONLINE_SEGMENT_TYPE,
DBO.T524_SALES_EXTRACT_HEADER.C524_SLS_ONLINE_SEGMENT_SEQ

)

VALUES
(
@C524_SALES_EXTRACT_HDR_ID,
@C524_EXTRACT_TYPE,
@C524_EXTRACT_NO,
@C524_BROADCAST_DATE,
@C524_BYPASS_COMMERCIAL,
@C524_BYPASS_PROMOTION,
@C524_BYPASS_BILLBOARD,
@C524_BYPASS_PSA ,
@C524_PROCESSED_IND,
@C524_SLS_ONLINE_TRANS_TYPE,
@C524_SLS_ONLINE_BASIS_NO,
@C524_SLS_ONLINE_BASIS_ALT,
@C524_SLS_ONLINE_SEGMENT_TYPE ,
@C524_SLS_ONLINE_SEGMENT_SEQ)

[continued ....]


Home > Master Index > Corporate America Index > Next