Friday, April 14, 2006

As I slowly transition from un-break mode, just a few interesting notes:

Gretchen over at Microsoft's Jobs Blog is moving on. Gretchen hit the fan (and I became a fan) with her break-out rant The talent landscape, and why I'm ready to lose it which was so honest and 100% Microsoftie. Around work, I used it as a little litmus test to get people's opinions. Some managers thought she should be outright fired (hmm, strip color: Bozo) others thought she was right on and checked in to make sure we were doing the right thing in our relationship with recruiting (strip color: Keeper).

She even mentioned this blog a few times, especially noted in the post Microsoft, the media, and Mini. I'd love to be an NSA operative listening in on Microsoft's recruiting when a hard questioned is asked about ratings or reviews or other issues brought up here and in other blogs. Anyway, I really enjoyed how she took on describing working for Microsoft in a straight-forward, honest way. It was as if she was looking you straight in the eye as she wrote. Our PR folks could learn a lot from that.

Staying on my message about a smaller Microsoft and not hiring people and gettin' on with the firing of people, well, allow me to unjoyously lick my finger and mark the air above me to score one for the Mini side of life. Bad attrition is still attrition.

Other going ons... the MSPoll is upon us! I haven't opened it up yet myself. Oh, the ranting I will do. But, I always ensure to throw in lots of kudos about some of the life of the Microsoftie that I don't want to go away in absence of praise: our medical plan is outstanding, we still have free cola, while stationary supplies are harder to find we still don't have to grovel for a pad of Post-Its, and the ball-fields are staying where they are. Remember that upper management does read the comments, but if you just have pronouns and no aliases, your direct praises and criticisms are non-actionable.

Praise the Keepers. Rail against the Bozos.

Lastly... usually I summarize interesting comments as of late. Especially ones to old posts. I'm blown away right now with all the comments. When I moderate, I scan and approve, promising to re-read in detail later and elevate interesting ones into the discussion (like this one about trying to get permission to interview and insights for others). Let's see, how many of those do I have... 1,108. Looks like I need another break, though Mr. Umrani might rip me a new one if I do that. I'll go through and try to find the gems in there but, if you don't read the comments, you might want to wade through the last few posts for your own enjoyment.

48 comments:

Anonymous
said...

our medical plan is outstanding

I agree with this. In fact it's way better than Google. Remember the Mark Jen (a PM who left MS after 18 months, straight out of college and then joined Google) episode a year ago when he was fired from Google? Mark had blogged about how their salary range is only in the 50th percentile vs. ours which is in the 66th percentile and how their health plan sucks in comparison to ours.

Google is not all what it claims to be - there's something fishy going on inside the Googleplex!

About getting permission to interview - how long do you have to be in your current role before trying to switch to a new one? I am a newly hired SDET and will be starting in May. We were told in our college info sessions that MS is a place that actually encourages you to switch roles every two years or so.

Suppose in this 2 yr period, you score one 3.0 during midyear of your first year but 3.5s the rest of the time, are you still allowed to interview?

Mini, while I enjoy your column, particularly before I joined Microsoft, now that I work as a developer on Vista I wonder how you can possibly have any time to write/moderate this column and also do any actual work. I, for one, do not have time to read posts with 100+ comments and simultaneously develop software that exceeds the standards we all must meet.

Thus, I have concluded you are not the independent blogger you say you are but are rather a paid foil of the executives, with the mission of extracting feedback that would seldom be expressed through the sycophantic MS Poll.

Not that that's such a bad thing, of course. The comments keep things in perspective and help people let off a little anonymous steam.

But, if by some chance you are an actual blogger and not exercising your propaganda responsibilities, please stop fooling around, start self-hosting and reporting performance data, and help triage some of the issues.

I think you'll be allowed to interview, but it will be harder just based on your review scores. Yes you have decent scores, but let's say the other hiring manager gets 10 people interested and 3 or 4 of them got 4.0's... they will naturally bias towards those candidates. That's the impression I got when I tried to switch roles.

As for encouraging people to switch roles, based on my experience, I would disagree. I don't think MS encourages that at all.

We were told ...that MS is a place that actually encourages you to switch roles every two years or so.Total B^!!$#!t - it's easy to convince naive college students , so they will tell you what you want to hear, period. If you don't believe try it once you're in. Good luck. They have made the experience of internal transfer an absolute HELL for you.

Not sure you're aware of the 600,000 H1-B visas for one year that is being proposed through a new legislation. A great number of those will surely be used by MS, thus bringing your dream of a lean MS to an end for sure. More info on:http://www.washtech.org/news/legislative/display.php?ID_Content=5043

I think it's worth pointing out that one massive hurdle facing Microsoft recruitment is that anyone working at Microsoft will of course, have to work on Windows. (Except for the Mac BU, but that's a different story.)

This is a "quality of life" issue, and it's one that Apple and Google *don't* face.

I left Apple myself several months ago to start a new company serving a very lucrative vertical market. Of the people I've talked to about joining my development team, every last one of them has expressed a concern that our customers might ask us to ship our product on Windows, and they would only consider joining me if I could promise that they wouldn't have to work on a windows port.

I don't plan on coming up with a windows port, but if I had to, I'd just hire some Indian contracting outfit to get it out of my hair.

No, it can be pretty good (depending on the team). Basically it goes like this:

1. You can have an interesting job but no life (SDE)2. You can have life, but your job will be pretty tedious (SDET)3. You can have life and not do anything at all but sit in meetings and write an occasional spec (PM).

The choice is yours. From personal experience, moving from SDET to SDE is damn near impossible these days unless you were getting straight 4.0 (which is pretty hard to do if you hate your job) and established a solid network of people who can vouch for you (which is pretty hard to do if you plan to move within a couple of years). I did move from SDET to SDE, I know several people who weren't able to, simply because they're somehow "tainted" by their title. Pretty good people, too, not every SDE is as good as they are.

I think the 9:54 am commenter's advice to the soon-to-be SDET was intended as "if that's not really the role you want, then tell the recruiter".

There are lots of people who come in as SDETs but really want to be SDEs. They stick around for a product cycle or so, then turn to the dev side. I haven't ever heard of anyone who moved in the other direction. IMO this only gives more weight to the opinion that devs are "better" than testers. Yes, I am asserting that by encouraging people to enter as SDETs with the promise of a later SDET->SDE transition we're increasing the infighting between dev and test.

I hope this comment doesn't rekindle one of this blog's favorite flame wars. That's not my intention. Just calling out something I see as a problem.

>> would actually have a negative >> effect when I want to apply for >>a SDE

Here is some free advice: If you want to be an SDE, but cannot get an SDE job at Msft, don't join Msft as an SDET instead. Get an SDE job in some other company. After 5 years, an SDE in "some other company" is usually far better at software engineering that an SDET at Msft with 5 years experience.

Switching from SDET to dev after 1 or 2 years is possible, but there are too many factors that are not in your control. (reviews, Green card issues for some, feedback from current mgr, permission to interview, nature of work you did as an SDET, etc)

If your goal is to be an test lead, test manager etc, do join Msft as an SDET.

2. A lot of the management on the SDET track are long time testers promoted to lead SDETs. There is a disconnect between these managers and their developer reports.

I'm good friends with a couple of SDETs on my team. Of the 15+ SDETs in our test org, maybe 3 or 4 I consider to actually deserve the title. Most of the rest were retitled STEs. That means there's some serious opportunity for talent development there. Unfortunately, all three leads were nontechnical career STEs. Nice guys, and one of them is pretty good at mentoring his employees to develop their STE skills. But none of them are proving successful at developing their employes SDET skills.

As a consequence, the technical folks - the ones we really want to develop and nurture as good SDETS - are leaving. They're switching to other test orgs, or they're jumping to dev. These are technical folks, folks who could have initially joined as devs but were interested in testing. They're exactly the kind of thing MS Test needs. And they're leaving, because our shift to SDET is new, and so many of our test leads are failing to incubate this new wave of talent. And that's sad, and really hard to fix.

It's not "disrespect". Good, hard working SDETs are respected at Microsoft. It's just that hiring manager would rather hire and SDE who's been through one ot two product cycles _as an SDE_ to avoid nasty surprises.

Coding is only a minor portion of what SDEs do (despite of what it might seem to an SDET willing to switch over). They have to do PM work (because PMs are "too busy" to write good specs) and some Test work as well (because some testers don't know how to attach a debugger or execute a SQL command). Then there's communication, EE, meetings, helping newcomers, writing status reports, writing and updating design docs, fixing and resolving bugs, reviewing design docs written by others, reviewing code, resolving customer issues, etc. I didn't really expect that when switching to SDE role myself.

As a result, in any given product cycle only 20% of time (or less) is spent by a Dev on actually writing code.

SDETs are just not required to do many of these things. They couldn't care less about PM not doing their job fgzample. Design doc requirements are either non-existent or not as stringent. Filing bugs is easier than fixing them (as a rule), especially when you factor in 'taxes' devs have to pay to get shit checked in, etc., etc.

From my 6.5 years at MSFT as an SDET I agree with most of the anti SDET posts here. The things to understand are: 1) there's not really an highly paid IC SDET path. 2) There's not much interesting software they will take a risk of letting you write on company time as an SDET - mostly because your management will have been testers instead of test developers - and all their previous experience will have shown them that software produced in test organizations is buggy and of poor quality (A self fufilling prophecy) 3) 90% of the SDET roles will not make you a better programmer. 4) Being a good programmer as an SDET is not as important as being a good Tester in most Testing organizations. People who test well will be considered more valuable than you - unless the software you write is of much, much higher _percieved_ utility than normally seen in test organizations. 5) In some teams, most of the time, SDET roles are less of a meat grinder than Development jobs.

So the MS Poll this years includes a scoring for the executive leadership. I found the questions in the poll interested yet pointed. I can't see how the responses to the obvious Executive Leadership questions will cause them to change at all. I look forward to Mini's comments on that!

Also it is interesting that newer high level executives at our company plan questionable reorgs (MS-IT) right as MS Poll starts. I think they know they have a bye the first year so shake up the troops, let them complain and then show great gains in the next year when everyone has forgot the "GE"-like re-orgs. Moving very effective groups under very ineffective managers (partners by and by) only will help them in the end, but destroy the morale of those moved.

wow.. i can't believe the recruiter glorified SDET and told me how much coding i could do. would an SDET internship be less harmful as opposed to accepting an actual SDET full-time job?

It's likely to be just as harmful. Potential hiring managers are going to think "Why wasn't this person able to obtain an SDE internship instead?" If you want to be a dev at MS and you can't hack it yet, go be a dev elsewhere and reapply later. Unless you *REALLY* luck out, being labelled an SDET in any form will be a mark against you (not insurmountable, just very, very difficult).

Here's my thoughts on being an SDET who transitioned to an SDE, and being an SDET in generally.

Anonymous@10:36 complained about developer taxes, the SDET has taxes too. First you have some sort of test infrastructure that you've got to ultimately plug your tests into. Whether that be WTT (which it seems plenty of people love to hate) or your test org's harness of choice (or even your test org's home rolled solution) you've got to deal with this. Typically this comes along with some UI to add tests, investigate failures, etc... And that experience can vary from good to horrible.

The SDET also gets to be on the receiving end of not having a spec. What's by design? What's a bug? What's a feature? No spec, who knows... The tester gets to stumble around in the dark, harass a PM to update the spec (assuming they currently have a PM), or constantly ping the dev to ask them about mundane details.

But guess what, if work was all fun, we wouldn't call it work.

All in all I had a great time being an SDET. One of the things you constantly hear the developers moaning and groaning about on here is the process. The developers got a lot of process. It seems like quality gates are a frequent source of pain for developers. They get pri-0 bugs that they've got to respond to quickly, and then they got all hot and bothered when it turns out to be a machine configuration issue, or a test issue, or generally something that's not their problem. Like their shit doesn't stink as well...

But testers can side-step a lot of this process. Don't want to deal with quality gates? Try to keep your tests out of the RI criteria, or try to keep the tests that are in there super self-contained, and simple. At that point testers have a much lower bar to just plain getting work done. Their tree is typically less restricted on check-ins than the development tree (although some orgs are less lax here, and most args tighten this down somewhat near shipping - although never to the extent of product changes). The key thing here is: You don't have to go to war to check-in a test change. And better yet, you don't have to go to MULTIPLE levels of war to get your test changed. Although you may have to go to war to argue to get a bug you care about fixed, but maybe you should have found that bug sooner!

The other thing is if you want to be an SDET you probably shouldn't be working on testing some random UI feature. Office may be a poor choice for you. Hell, Windows may even suck on a large number of teams. Think Developer Division (or Server and Tools as a whole). If you're in those groups you're working on testing what's cutting edge tools that you might otherwise be able to use in the industry. Even if all the crap people are saying about a difficult transition is true, you're set yourself up for success outsite of Microsoft by gaining important knowledge. But more importantly working on this stuff is fun! If you get a job on the C++ team you'll be sitting around writing lots of C++ code all the time. Maybe that'll be code to test the compiler directly, or maybe it'll be unit tests that exercise internals of the compiler, or maybe it'll be performance analysis of the compiler. Whatever the job you would have on that team, it's bound to be fascinating.

And if you're joining MS as an SDET to become a SDE ultimately you better be joining a technical team, and doing technical things. You've got to realize there are a spectrum of SDETs and the low end gives the bias you see posted here. But if you join a technical team and can walk away from that experience talking about all the cool technical stuff you've done then you'll be able to turn your informational interviews into full interview loops and at that point you should have a fair shot.

All in all as an SDET I'd say I wrote a lot more Lines of Code than my SDE peers, and probably felt a whole lot less frustration because essentially my code was mine. My SDE peers did have to pay all the taxes of working on a large team. More importantly I got to work on a lot of different technical problems. It always remained challenging and fun... But there is this constant pressure in the test org to rise through the ranks of management. And unfortunately as others have pointed out there isn't a lot of other opportunity there as an IC. That, more than anything, is the reason to stay away from the test org. On the other hand it's a fascinating look at the development process and it can be used as a tool to improve yourself as a developer.

i guess the moral of the story of being a SDET is to accept it if the group you're gonna be working in is working on exciting and decline it if the group basically sucks. can anyone confirm me on this?

And to the potential SDETs out there - we desperately need good ones. SDET at MS sort of sucks right now because it's a pretty new discipline and the role means a different thing to different teams. In some teams you're just an STE who starts at 59. In some teams you'll be writing more code than your SDE will.

So... ask! In your interviews, ask how a typical SDET on that team would spend their time. Devdiv is known for having very technical SDETs and making good use of the role. Office is not.

This is directed toward the gentlemen who's manager would not let him interview. That was the major reason why I left Microsoft. And the detail that was in the post matched my situation to a tee! Line for line. I'm thinking of suing him for copyright infringement.

I wanted to stay at Microsoft but I hated my job...well, I hated my customer (I was an ATS with a global customer) which was my job. I was completely burnt out...fried to the gills...and was starting to actively avoid any contact with the customer (hint: that's not good).

I found another ATS position in another org and the manager basically offered me the job...I asked to formally interview and my manager fed me the exact same lines the other guy was fed. Coincidently, a friend offered me a job around about then and I jumped like a frog; better pay, more interesting work, better...yadda yadda yadda you know the script.

Hmm, I am beginning to think that every middle-layer manager has a handbook handed to them on 'how-best-to-frustrate-your-report-and-not-let-them-leave'....

About SDET roles in MS, I wonder if a more radical approach to the one when they fired/converted all the STEs to SDETs are in order. Why not just hire everyone as SDEs? Give them a split of actual dev and test responsibilities. Afterall, the devs are SUPPOSED to test their own code anyways :)

SDET role is something that no one really want to be in. If you can code, do you want to code to test? Or do you want to code the actual product that everyone would use? Rather than creating a ton of unhappy people, spread the drudge and the mundane amongst them - and make them all SDES.

This will also solve the problem of the millions of test automation frameworks used in this company - all the SDETs are creating new frameworks because they want to code something interesting that will help them with their skills, and writing automation test cases is NOT one of them. So obviously they would go and find legitimate ways to do coding that they can work into their commitments. That's probably why every group in MS has their own test frameworks as opposed to using something standard, or something tweaked from a standard one to suit their own need...

As an intern, would it be better to accept an offer as a SDET at Microsoft in an interesting department or to accept an offer as SDE at the another very respectable company, but in a less interesting department?

As an intern, would it be better to accept an offer as a SDET at Microsoft in an interesting department or to accept an offer as SDE at the another very respectable company, but in a less interesting department?

==

MS is role centric .. there is enough feedback on the coming in as sdet or sde... if you can't get sde at ms .. go elsewhere and get the role and come back.

>As an intern, would it be better to accept an offer as a SDET at Microsoft in an interesting department or to accept an offer as SDE at the another very respectable company, but in a less interesting department?

In the short term, the dev slot is likely better. The postings above should adequately demonstrate that many MS devs consider testing beneath their dignity, and MS is one of the places where test has considerable influence in the organization. Care to guess what it would be like in smaller shops?

The long term answer: Do you like picking apart things or do you like putting together things?

wouldn't it be possible that if you accept the department with less interesting work, you might be doing that type of work for the rest of career?

I would say 'yes'.E.g.Is it better to be a SDET working in xbox / MGS / some highly technologically innovative group, or is it better to work as a SDE in setup / localization / globalization / performance / security?

It depends on the type of person you are. Also, the 4 general categories of group that I put down there next to the SDE job are what I would categorize as 'type-casting' roles. If you worked in any capacity on jobs related to any of those areas - you will most likely be stuck or at least be asked many times over and over again to work on those things again. And having those on your resume, even as a SDE, would probably limit your options (esp for setup / globalization).

Disclaimer

These are sole individual personal points-of-view and the posts and comments by the participants in no way represent the official point-of-view of Microsoft or any other organization. This is a discussion to foster debate and by no means an enactment of policy-violation. These posts are provided "as-is" with no warranties and confer no rights. So chill. And think.