Wednesday, October 22, 2008

Microsoft FY09Q1 Results

FY09Q1: wow, I wonder what's going to be on everyone's mind during this quarter's webcast with the analysts?

  • "How has the global economic crisis affected Microsoft?"
  • "What product groups are the most affected? The least?"
  • "How has your forward looking assessment changed for FY09?"
  • "What kind of efficiency measures are you putting into place?"
  • "According to reliable sources (ahem) the Microsoft hiring freeze through major parts of the corporation is real. How does this hamper Microsoft's ability to hire the best talent and to retain the best talent?"
  • "Are you going to buy Yahoo! since it's so much cheaper?" (Please keep Mr. Ballmer away from any recording device during this question.)

etc. etc. Any big questions you're looking to be answered?

Pre-announcement portion: my suggested post-analysis sites for quarterly results:


Interesting angle Microsoft has come with during the global economic crisis: when money is tight, drop those custom solutions and go with Microsoft to save money and be more cost effective. Nice. Post-analysis postings of note (to me):

Mr. Joe Wilcox:

Mr. Todd Bishop:

Mr. Joe Tartakoff:

Mr. Brier Dudley:

It will be interesting to see the $500,000,000USD savings in action. There was some probing by the analysts on that but just a broad answer in response.


Sunday, October 19, 2008

Is Microsoft Recession Proof?

Is Microsoft recession proof? No, of course not. While it can be buffeted back in forth in a mild recession and get through without group parties here and there, it's pretty unclear what kind of Microsoft will emerge at the other end of a deep global recession. Just a quick post about the immediate staffing impact as we head towards quarterly results.

First: thank whatever deity you hold dear that we didn't go forward with that Yahoo! acquisition. How crazy would that look now?

At this point, organizations are being told to eliminate inefficiencies. For different organizations this means some pretty radically different action items. For some parts of Microsoft, this means hiring freezes. While hiring freezes aren't any fun (more below) you probably prefer them to full-blown Reduction in workForce (RIFs... though I guess that would be called RIWs or RIWFs).

What we need, though, is one big RIF.

There is an unfortunate consequence to hiring freezes for Microsofties: those ready to move on to a new position are stuck because there is no where to go and, even worse, those who have already gone through an interview loop are having their offers frozen out. Also, any attrition is not going to be backfilled and the org loses that headcount. Let's talk about this.

Now first of all, I'm all for reducing Microsoft's headcount. I was for that, what, 40,000 hires ago? Microsoft's key asset and key overhead are the Microsoft employees. You reduce that right, you save a bunch of money. And it is not just a one time saving.

I'm all for good and bad attrition. But I'm concerned about implementing unhealthy policies vs. just a one big 10% or 20% reduction all-around (we've identified 10%-ers already right - at least 10% Situation I-ers). If you do this big and once and you can still backfill future attrition and let people move around the company into new positions.

It's unhealthy for Microsoft to lock people into their jobs, which might be the reality for the next half-year to a year. I want the most talented Microsofties to - as their current commitments come to a close - look around the company and find new challenges to move to. It makes for stronger careers building our future leaders and creates stronger results. It also makes bad teams fail sooner by loosing key contributors. What's even worse, perhaps for planning, is that people will be locked and not moving on during a natural product cycle rhythm coming up (major product groups, for instance, going into stability), and these same people, once headcount reopens in the future, will be abandoning their commitments mid-way. Uncool. Unsurprising.

As for being told "Hey, we're not going to let you fill your attrition." Well, what group, let alone empire builders, is going to move on bad contributors now? Better to limp along than have reduced capacity. Not even that alluring, "Wouldn't you want to move-on that plateau'd L61 person with a hot college new-hire?" works now.

Some comments on this. First a common hit on most teams:

time to talk about layoffs. Hiring is frozen and teams are being told to reduce head-count through attrition. Sounds like layoffs to me.

What happens when you want to move internally and have already interviewed (oy!):

Any updates on the hiring freeze anyone? I desperately want to get out of my current team but teams I have interviewed with are withholding offers because of this damn freeze...

An excellent manifesto on hiring freeze for talented contributors:

What the Hiring Freeze Means to Me - An Open Letter to HR

I am high performer, a gold star winner, have a relatively high level and I have a problem.

In an all too common scenario, my group was re-orged and I was given a new manager. As is many times the case, this manager is well regarded for his technical skills but is absolutely an abysmal manager. He has little aptitude or interest in actually managing his people and still operates like he's an IC.

Multiple members on the team have gone to the new manager, as well as the skip level manager to discuss the situation.

The skip level manager now has a dilemma - does he support the manager, and help him grow into the role?

If he does, it will clearly take 6+ months, and this is on top of the 3 months it took the team to muster the courage to escalate to the skip level manager to begin with. If the manager stays and doesn't improve, myself and the people on his team will surely take a hit at review time at the end of the year.

In our case, the manager doesn't know what to do. He's thinking about it, and in fairness we recognize he's in a tough spot.

All the while, though, the clock is ticking, and the high performers on the team are looking for the exits. We're demotivated, demoralized, and are placed in a position where we cant realize our potential.

Most people reading this are likely nodding their heads. This happens here. Alot.

Typically when this happens, employees see this as an opportunity to explore another part of the company, and round out our experience.

But not today. There's a hiring freeze, no internal transfers are allowed, and we're stuck.

We've done the appropriate thing, we've talked with our manager and our skip level manager. We're now in a weird limbo.

Of course this comes at a time when we're in a down economy, and in many respects lucky to have our jobs. We're sure as heck not going to rock the boat any more than we already have.

This seems to leave to options. The first is to suffer in silence, the second is to leave the company.

Neither of these options are good for us or for Microsoft.

Our group is not alone.

I'd ask you to consider four things:

(1) New rule - anyone new to people management is on a trial basis for the first year, to be reviewed and renewed quarterly.

(2) New rule - anyone new to people management shouldn't be given a team of more than two people. If they do a good job with two, go to five, and so on.

(3) Make managers of managers responsible for their appointments.

If you put a bad manager in place, and you don't resolve the issue after 1-2 quarters, you take a percentage hit on bonus and stock.

This will result in people spending more time in the decision making process for this.

(4) Allow for internal transfers, atleast for higher level positions. When you take high leveled, high performers and you put them in a position where they can't be high performers due to poor management, they either leave or grow demoralized and become less productive to accomodate a bad manager.

Eventually, this second group also leaves, with the ones that don't downgrading to average performers.

A snippet to re-enforce that:

Internal is frozen, too, for the most part. I see Live and MSN technical openings, and various business-oriented ones. I had just seen a couple positions for which I wanted to do informationals. Before the hiring managers and I met, they both called me and said that they had just been told that couldn't hire anyone for the time being.

It's really my time to leave my team, because the three year timer is ticking and I'm topped out in my org given the kind of work management wants it to do. I'm capable of more, but the level of work isn't there. When I've tried to just go get it, I've caught flack from management - because I was taking on actual business risk that scared them, instead of the safe work our team usually does. I don't like the online services biz, so I hope the powers that be finish evaluating the business climate and open up a few more product heads in profitable divisions sometime soon. My preference is PM or dev in Exchange, as I'd like to contribute to that. But at this point, any core product would be interesting.

I think that this is an opportunity for major change vs. aloof delegated inefficiency hunting, but major change has to come from SteveB. If need be, the global climate gives Microsoft cover to make big revamps. E.g., "...the economy made us do these big cut-backs vs. us doing what we should have been doing all-along." It is too soon to expect this during this week's quarterly results, but within the next quarter, as the impact to reduced global PC sales becomes apparent, we should be ready to announce some major overhead reduction (e.g., not towels but rather less butts for said towels to dry - win-win). And remember: you cut once and you cut deep. Incremental pain is unhealthy and all that you're doing is poisoning your teams and setting up a huge round of bad attrition once things turn around.

I imagine each one of you wants to make your team better and more productive and streamlined, and have ideas for your team and beyond. This is an excellent time for our HR leadership to re-engage Microsofties plus finally join the 21st century and implement team-focused awards. Yes, we would still offer differentiated awards, but team achievements must be recognized with the same level of attention that our super-star hero culture is given. Who doesn't want an excellent team to be rewarded, let alone dysfunctional underperforming teams torn apart?

So, if your team had to get by with 10% less budget, how do you think it would be best addressed?


Friday, October 17, 2008

TableBrowser.NET (a small .NET BC tutorial)

Here is a Visual Studio solution, demonstrating how the Dynamics AX database can be queried through the .NET Business Connector, and how the results of this can be presented to the user in a user-friendly manner.

Here is a screenshot of how it looks:


You can download the solution on axaptapedia.com.

The class to investigate in the solution is the DynamicsAX class. It provides a pretty good interface for reading data out of Dynamics AX.

After opening the solution, make sure to replace the BusinessConnectorNet.dll, pointing it to your AX installation path (if it is not in GAC)

Tuesday, October 7, 2008

The future of programming languages or Anders Hejlsberg/Steve Ballmer Tech-Pep-Talk

Sunday, September 28, more than 350 IT-professionals from the entire country (Denmark) came to MDCC (Microsoft Development Center Copenhagen) to get a 90-minute TechTalk from Anders Hejlsberg and a 15-minute PepTalk from Steve Ballmer.

Click here to see the video.

Thursday, September 25, 2008

Compensatory Arrangements of Certain (Microsoft) Officers

I saw today that Microsoft filed a Form 8-K. The initial financial news blurb really didn't get my attention and it put in my mental queue to read later.

Then Brier Dudley went and read it and blogged this post: Brier Dudley's blog Microsoft's new bonus plan for Steve Ballmer, et al Up to $20 mil apiece. Snippet: Instead of the current mix of cash bonuses and stock awards, executive bonuses will come from a pool - for fiscal 2009, that pool is the equivalent to 0.35 percent of the company's annual operating income during the year. [...] Payouts are capped at $20 million per individual. Oh well, I guess everyone's got to face the new economic reality.

Suddenly I was very motivated to read the 8-K, in a pissed-off sort of way.

From the filing:

Item 5.02 Compensatory Arrangements of Certain Officers

The Compensation Committee of the Microsoft Corporation (“Company”) Board of Directors has approved a new executive officer incentive plan (“Plan”) for the Company’s executive officers. The Plan replaces the existing annual cash bonus and equity award programs for the Company’s executive officers beginning with fiscal year 2009.

The Plan allows the Compensation Committee to establish award programs for specified performance periods (e.g., one or more fiscal years). The maximum amount payable to a participating executive officer is a percentage of an incentive pool for a performance period. For fiscal year 2009, awards will be granted from an incentive pool with maximum funding of 0.35% of Microsoft’s fiscal year 2009 corporate operating income. The awards granted to each participating executive officer will be limited to a fixed share of the incentive pool, and these awards may be further reduced or eliminated in the discretion of the Compensation Committee (or in the discretion of the Board of directors, for awards to the Company’s chief executive officer, Steven A. Ballmer). The Plan specifies a maximum amount of $20,000,000 that may be paid under the Plan to a participating executive officer for one or more performance periods that end during a fiscal year. Award amounts under the Plan may be made in either or both stock awards issued under the Microsoft Corporation 2001 Stock Plan and cash. Vesting of stock awards will be determined by the Compensation Committee. The 2001 Stock Plan generally requires that stock awards vest over at least a three-year period.

If I could shove my pockets full of cash would I flip off shareholders and employees worried about the stock price, too? No, not even I could do that, for (like this) all the money on the world. I guess the insider-trading gravy train must have started running out of steam and goodness knows we don't want our executive leadership looking for employment elsewhere, so what else could we do to retain them?

Given the feckless vote of confidence that a bunch of screw-ups like Yahoo! got at their recent shareholder's meeting, I don't have much confidence in our shareholders challenging our leadership. Stock price? Don't care, got mine. What kind of performance targets must the company reach to achieve the rewards? Not gonna tell you.

First SPSA. Now this. Microsoft is dying from the inside, and the folks sucking it dry have zero motivation to change things. It's working out pretty damn well for them.

And Microsoft shareholders say?

<<Crickets chirping>>


Wednesday, September 24, 2008

Microsoft Dynamics AX 4.0 data model overview

I have great news for you, readers :)
Recently, on an internal Microsoft discussion group, I received a nice document with an overview of the data model for Dynamics AX 4.0.
After permission was received to publish this document to an external audience, I uploaded it to my personal web-site, so that all of you can download it at a convenient time.

The link is below. Enjoy!

Download AX40datamodel.doc (4.41 Mb)

UPD: A newer version of this document does not exist, so I won't be able to post it here

Monday, September 22, 2008

SysMultiTableLoookup - dynamic lookups based on multiple tables

Wow! MSDN for Microsoft Dynamics AX is getting better every day. This is terrific news!! I still remember the days, when all the information was extremely hard to find. It had its own charm though :)
Anyway, this topic is really not about MSDN. It is about lookup forms.

First of all, for the record: I (and the Best Practices document as well) recommend creating custom lookup forms in AOT instead of dynamically coding them in the overridden lookup methods on controls/datasource fields.
But, in reality, this is true only for lookup forms with very large complexity. I won't go into a discussion of why that is the way it is here. :)

Now, back to what I was planning to write about:
In order to build a lookup form from code, developers use the SysTableLookup class.
You can go to MSDN (mentioned above) to read a How-to article on creating a run-time lookup form, as well as take a quick look at the SysTableLookup method descriptions.

SysTableLookup class has evolved over the multiple releases, providing more and more flexibility and control to the application developers.
I would like to publish another extension to this class, SysMultiTableLookup, which I hope will prove useful to members of the AX community.

Short list of features:
- Backward compatible, should cover everything that is present in AX 2009 version of SysTableLookup class
- Allows including multiple tables into lookups with different join types
- Completely based on the Query that you build, no extra parameters (except for the control) are needed to initialize the class
- Allows adding aggregated fields to the lookup
- Displays fields based on Boolean Enum as check boxes
- Allows to specify alternative labels when adding fields to the lookup

You can download the project from axaptapedia.com.
It has (to some extent) been tested on Axapta 3.0 SP3, AX 4.0 and AX 2009.

Also included in the project is a tutorial form, showing 4 examples of dynamic lookups using the new class. After importing the project, make sure to try out the form, and use it for future reference for code examples and other inspiration.