Thursday, March 30, 2006
When to leave? Is this a good or bad company?
It started me thinking about whether I could have spotted the failures with my previous employers, before they went too far downhill and I had to bail out. Which made me realise another sign of when it is time to get out before it is too late. I had been aware of this sign all the time, but always presumed it was not critical. However, with hindsight I now believe it is, and should not be ignored.
The sign can be termed: What would you do with this company in this position?
Put yourselves in the shoes of the top executives, whether the CEO, the head of design or development, head of sales, marketing or whatever. Given what you know about your company and the market it operates in, what do you personally believe is the best thing for it to do for
medium to long term success?
If you find yourself coming to a different conclusion than the senior executives in the company, then my advise is to find another job in another company as soon as possible. My experience is that the workers at the bottom, dealing with customers and suppliers (at the coalface as I like to think of it) do know how the company works and what is going on. They are far closer to the reality of the market and their customers than senior management are. And if you think the right direction for the good of the company is different to where the senior management are taking it, then it can only fail. And it is better to get out before it is too late, and either the company collapses or there is a significant restructuring and you get laid off.
I believe that this has applied to all 3 of my previous jobs:
- First, a UK company selling computer systems from a new US manufacturer in the late 1980s. The faults were not necessarily with the UK company, but with the US company that it had a reseller agreement with.
The first mistake was that this manufacturer decided to take on Sun, which was already the market leader for small UNIX systems. Given the market prescence Sun already had, it was almost impossible to expect to catch up and over take them in a few years.
The second mistake was that they signed OEM agreements with a number of existing, established computer companies. Although this might seem good for the short term, I could see that the situation would become one where different suppliers were actually all bidding the same computer systems they were OEM'ing from the same manufacturer. If the computers were physically identical, then the customer could clearly play off the suppliers against each other to get the lowest purchase price. And some of those OEM resellers were big companies with deep pockets, and would obviously go to extreme lengths to win business and maintain revenue, even if their profits suffered.
Luckily I saw the signs and got out before it was too late. As their revenues declined due to this competition with other computer suppliers selling the exactly the same equipment, the UK company was forced to merge with another computer company, to become a small part of a larger whole. - Then Sequent Computer Systems during the 1990s. Although Sequent initially enjoyed good growth due to a well designed product, ahead of its time, by the mid 1990's it was still a single product company. When compared to the other mainstream computer companies, they all had multiple product ranges - from workstations through small and medium computer servers, to large, mainframe class systems. Sequent though, had only one, single product, even though it was highly configurable and scaleable. When Sequent underwent a product transition to the next generation product, it became only too obvious that the whole company's revenue stream and profit were dependent on one product. If that failed, so did the company.
Again, seeing the writing on the wall I got out before Sequent collapsed. I managed to do it just before they announced the takeover by IBM. If you look at Sequent's revenue stream and profits for the previous 2 years, you realise they were losing money badly and probably would have gone bust anyway. - And finally Sun Microsystems. On the face of it Sun should have continued to be a successful company, even after the dot-com bubble burst. It was large, successful, had good products, and a good workforce. However, bad management meant that at every turn Sun did the wrong thing. Its revenues have declined by one third from their peak, it has continued to have layoffs almost every year, and yet also spent money buying up other companies and expanding into new product areas.
I could see immediately that if your revenue coming in to the company has dropped by one third, then you need to cut the expenditure going out of the company by the same amount. Literally the revenue was not there to support a company of that size, without reporting significant loses. Which is what started to happen. So Sun laid off some people, but only 10%. I could see that this was clearly not enough. And so a year later, Sun reported another loss, and another 10% layoff. And again the year later.
Given that the market had shrunk in real terms, it seemed to me that another wise move would be to trim your product range, focussing on a core set of high margin products, where you could differentiate from the competition. This in turn would lead to major savings in R&D as you could close down whole product divisions and lay those people off. In other words, deep cuts in a few specific areas, not a general cut back across all departments. As I have said, Sun didn't do this. They went for a 10% layoff across all departments. And continued to push ahead into new product areas, where they could not differentiate from the competition, and which would require significant investment to win market share.
I'm thinking of disk arrays here, and also web application server software. Instead of getting out of those areas, Sun ploughed more money into them instead. A disk is just a disk, which you can write to and later read from. No matter how much R&D you put into it, it will still do the same as all the other disk arrays - attach to a computer and store data. How are you going to win back the cost of the R&D for newer faster disk arrays, when the cost per MB of storage is dropping? It just never made sense. In fact Sun was so incapable of producing a high performing disk array that they signed an OEM agreement with Hitachi Data Systems. This was after something like 3 previous attempts to produce a high end disk array themselves (the A3500, the A5000 and the T3). Even since then Sun continues to sink money into disk storage. Witness the $4 billion purchase of Storagetek. Will they ever learn?
And the software front? They had three different Jave application server products at one point in time. How do you end up with 3 different, identical pieces of software. They first bought NetDynamics, then they acquired the Netscape server via AOL, and then they purchased Forte. Having merged the 3 products several years later, they decided to rename it all iPlanet. Remember that? Then they changed the name again to SunONE. And then they renamed to Java something or other, and decided to bundle it with Solaris. So all of the investment in the different software products Sun had, literally came to nothing because they started giving the software away. And guess what happens when you start giving stuff away - your revenue doesn't grow! Duh! You can't grow your revenue when you don't charge customers for your products.
Unfortunately for me, even though I saw all these signs, I presumed that Sun would eventually turn the corner and things would be fine again. Okay Sun might be smaller, but things would settle down, and revenue would slowly grow again and Sun would break even and then even make a small profit. And its breadth of products meant that it would still have useful products for different customers. So I decided to hang in there, through all of the layoffs and the ridiculous management decisions, and hope that there would eventually be a light at the end of the tunnel. But I was wrong. The signs were there, and could not be argued with, but I chose to ignore them. And so at the fourth round of layoffs in the UK, where they decided to layoff 25% of the people in my department, after a previous 3 sets of 10% each, I got caught and was out looking for another job.
As a kind of postscript to this, I am not unhappy about leaving Sun, only unhappy about ignoring the signs and not getting out sooner. As a result of this I have found a better job, which I find much more interesting and fulfilling than any of the stuff that I was doing at Sun. Really, when you see the signs that things are not right, whether it be bad company direction as in my examples, or working for a bad manager, or not getting recognition, or any other sign, it is really an opportunity to get out of that bad job and company and find a far better one. By delaying the point at which I left Sun, I was really missing out on an opportunity to look for a better job and take it when I found it. I was choosing to be blind to the impending crash, and when it happened I had to react quickly. But it was definitely the right thing to have happened.
Sun - Still Sinking
The head of software at Sun is going to Adbobe, leaving another hole to be filled at the top of Sun. And this news report also mentions the prior departure of the head of worldwide sales.
Don't forget that all of the original top executives that were there when Sun got to its peak during the dot-com boom before 2001 have all left. This includes people like Ed Zander, now running Motorola. Now we are seeing most of the second set of executives that Scott put into place leaving Sun. These were the people that Scott had confidence in to turn around Sun. Which of course has not happened. So Sun will be left with another change in the senior executives at the top, being the third set in 5 years.
Also it seems like most of the top executives from Storagetek have run as fast as they can from Sun, following its $4 billion purchase of Storagetek. Clearly these people have looked at the state of Sun today, and how it has handled the merger with the Storagetek organisation, and decided they are better off somewhere else. This is starting to look like another company Sun has paid a lot of money for, and is managing to drive out the original employees and in the process fail to capitalise on the products and technology they acquired. Anyone remember Cobalt, and Netscape, and Forte? The list continues to get longer.
The only positive bit of news about Sun is an upgrade in the target stock price from Morgan Stanley.
However, when you read the announcement closely, you realise that the analyst is actually agreeing with my general comments:
- Sun will not actually grow at all in the short term future
- Sun's products are not good enough to win new business and grow revenue
- Sun will only get better by significantly shrinking the size of the company to reduce costs
To quote the article: "expects the company will announce some sort of restructuring in the next six months", and also the analyst said: "We still don't have the confidence that organic growth will return on a sustainable basis."
Thursday, March 16, 2006
Sybase Monitoring Tables (1)
The first point is how similar these two features are conceptually. They both contain similar tables with similar sets of data:
- Currently connected sessions - V$SESSION vs monProcess
- Currently executing SQL Statements - V$SQL vs monProcessSQLText
- Events occuring - V$SYSSTAT vs monSysWaits
- Per session waits for events - V$SESSION_EVENT vs monProcessWaits
- Currently locked objects - V$LOCK vs monLocks
- Memory cache of data blocks - V$BUFFER_POOL_STATISTICS vs monCachePool
There are of course differences between the two features, and I am not attempting to say that the Sybase one is equivalent to the Oracle one. It is just interesting to note that Oracle has had the V$ tables for many years, and Sybase has recently introduced a new feature that ends up seeming very similar in principle. Is this a case of convergent behaviour? Is a real time view onto in memory structures the ultimate way to go for performance monitoring?
Given that Sybase has recently introduced these, and that they seem similar to the V$ tables of Oracle, which Oracle has had for many years, it seems natural to try and use them to investigate what a system is doing. Here, of course, is where you come up against the differences between the two products and their approach to these features.
For instance, the Oracle V$SQL view contains all recently executed SQL statements, including a count for the number of executions and other statistics. The key point is that it still contains data on old, previously executed SQL statements. They remain accessible to V$SQL until their entry is reused for another SQL statement. However, the Sybase monProcessSQLStatement and monProcessSQLText views only contain currently executing SQL statements. Which is fine to a point, but does not let you see what anything was recently executing or how frequently.
However, using a snapshotting technique similar to that used in STATSPACK for Oracle, you can easily record the contents of these Sybase monitoring tables over an extended period of time, and then later analyse them to see what your system was up to.
Using this I have been able to investigate some slowly performing Sybase applications, and detect things like resource contention. The benefit of this approach is that you capture the data all the time, and analyse it at your leisure later. If you tried to use these monitoring tables directly, the danger is that by the time you spot a problem the situation has changed, and the data related to that problem is no longer visible in these real time tables.