First thing today I started up Internet Explorer to view Gmail. I’m sure this is just some fluke but couldn’t help but get a laugh out of this message.
IE somehow was found to be an unsupported browser. That’s just funny on so many levels.
First thing today I started up Internet Explorer to view Gmail. I’m sure this is just some fluke but couldn’t help but get a laugh out of this message.
IE somehow was found to be an unsupported browser. That’s just funny on so many levels.
Recently Microsoft updated their Windows Azure Site with some new whitepapers. The cool thing is, some of these papers I was directly involved with helping to create! That makes me a little biased in saying, I’m stoked that they’ve been released!
So if you’re in the market for some cloud technology and happen to be researching Windows Azure, check these out. I’ve included the links to the specific whitepapers I had considerable involvement in. Thanks Logic20/20 for providing the opportunity, it was tons of fun working on and researching Windows Azure! I look forward to future opportunities to work with the cloud more.
Yes, 10 times better. That’s the difference between an average software programmer on an average software team and a rock star programmer on a rock star development team. The difference is huge, and I’ve been reminded of this lately.
How is this different? How is the rock star team 10x better? How is it 10x faster? How does the average slug along or even survive?
Simple.
The average software teams barely get by. The average teams are almost always in a reactive mode versus a proactive mode. Often average teams only get proactive if they build up a huge bureaucracy around themselves, which just allows them to be average. Average teams might call themselves Agile but don’t follow any of the ideals, let alone the processes that actually enable the PEOPLE to be rock stars.
Over the years I have seen more than a few teams of 5-10 people, sometimes more, only produce what a rock star could produce alone. 5-10 people, $500k to a $1m per year, versus about $100-120k. That’s 5-10x the cost. When I first read about this I thought it was silly, nonsense, and generally impossible for developers to be that disparate in abilities. I know now that I was wrong. Developers DO differ that much in abilities.
Joel Spolsky wrote about it (and NO, even though I’ve mentioned him a number of times recently, I don’t always agree with him) and he’s spot on. Hiring and keeping the top programmers is key to success. Hiring average developers will sink a startup, drag an established company under, and destroy even the most stable of companies.
I’m going to cover some key points that prevent having average developers and prevent an average team sinking the ship. These aren’t, “well maybe we’ll do these things”, these are “things that must happen, all or at least most of them, for the success and continued success of a company”. This list is aimed at external observations of teams I’ve seen at Amazon, Microsoft, Webtrends, and others. Some of these things are done so that the companies keep as large a part of their work force as rock stars as possible. This is what makes these companies successful.
Successful companies encourage and perpetuate continued learning. Not “I read a new technical book once a year”, I’m talking about rock stars that read a technical book or three per month (get a new one now @Amazon), try new languages whenever a new one crops up (re: Ruby, F#, Erlang, others…), encourage quite work areas, collaboration online, offline, and elsewhere, plenty of white boards and open workspaces, and even funds for out of company education with training courses or otherwise.
Successful companies involve themselves, specifically their technical people, with the social scene around their core technologies the company is built on. Amazon & Microsoft have this fairly easy, as they’ve built their own social scenes around their respective technology. Webtrends has even done so to some degree. Smaller companies should be involved in some of these large companies scenes. Attending conferences, training, or otherwise being involved with these companies is a great way to do just that. This builds morale for your rock stars and rock star teams.
Successful companies provide optimal work environments. Of course, work environments and what is optimal is up for debate. But generally one can determine if the company at least involves itself enough to try. Successful companies continually ask themselves things like; are developers more productive in offices or not, do some developers work better remotely or in office, are developers different any some work better in some environments and not others? Usually companies that ask these questions realize the later implication that developers are different from one developer to another. Successful companies have leadership that can determine this and work with the developers to make sure they stay productive, challenged, and happy in their positions.
Successful companies push what makes their technology, product, or ideas interesting and fun to work with. This may not be super easy for some companies, but even a trash pickup company has to have a cool back end system that uses the latest and greatest and might be migrating to the cloud or something. Something is cool or interesting about what the company does, and that cool and interesting tech should be known and shown as a key reason the company rocks and should have rock star teams and rock stars on that team.
These are the top things that make an awesome team help build a successful company. Do any others come to mind? Please leave an idea or two, or disagree, tell me why rock stars aren’t 10x as productive or why successful companies may not need to focus on great development teams! There’s always a devil’s advocate somewhere out there on the Interwebs, so light up the fire.
Over at Microsoft’s Partner Conference (WPC) there is the awareness now that Azure (Microsoft’s Cloud) is absolute their big push. I’d say it is by far their biggest push among products right now, maybe even more so than Windows 7.
The other big announcements at the WPC are really just a continued push of the Windows 7 Series Mobile Phone and Ballmer stated that, “You will see a range of Windows 7 slates. They will run Windows 7. They will run Office. They will accept ink- as well as touch-based input.” via eweek.
While Microsoft is doing the WPC Show & Tell, Amazon has released some serious computing advances for their cloud with the new EC2 Instance Type, Cluster Compute Instance. Amazon CTO Werner Vogels’ blogs more in his entry titled “Expanding the Cloud – Cluster Compute Instances for Amazon EC2”. Also be sure to check out the main AWS Blog titled “The New Amazon EC2 Instance Type, the Cluster Compute Instance”.
I’m stoked that Amazon keeps releasing bigger and better functionality. It appears Microsoft and Amazon are going to quietly go tit for tat on cloud features. For consumers of the cloud that’s awesome, anyone understanding basic economics knows that this is going to lead to bigger, better, faster, at a much faster rate than just having one king player. I still ponder how intense it would get if Google actually got into this play, since they don’t seem to have any intent to play in the Enterprise Space.
However Amazon’s release is cool, I still am waiting for these next few releases when Microsoft really starts laying on the heat. Amazon is still, by far, in the lead over Microsoft’s Cloud Technology and Capabilities. However, one has to keep in mind that Azure was released in February. Look at what is available now versus in February and it is shocking, especially considering Microsoft’s History. I have to say though, over the last 2 years or so I’ve seen an amazing external change at Microsoft. From ASP.NET MVC to Azure, the code quality improvements, framework capabilities, social media, and community involvement has been very impressive. Even with these advances, if I had to choose between the two services, Amazon Web Services would get my dollar without doubt.
This is where I actually ponder Microsoft’s efforts to move into markets where they’ve notoriously messed up their reputation. Their efforts into open source, and the startup realm in general, has been slow and steady. As of today though, Microsoft has a weak foothold with startups. Startups, in the next 5-10 years will become the major players of growth within the technology industry. It isn’t a matter of startups being a nice to have, but a matter of survival over the next decade. Again, Microsoft’s efforts are paling in comparison and being met with the same lackluster interest. Amazon meanwhile, with their amazing cloud continues to rock the startup world.
I’ve got an opinion, imagine that. Microsoft should start releasing their primary development platforms completely open source. Not slightly, but completely. Visual Studio and Team Foundation Services should be free. As it is currently Visual Studio is an awesome product, and Team Foundation Services still needs serious help in some areas and is doing great in others, but together they’d be a proposition that could truly get startups going with Microsoft Products. Be it in Azure (or AWS), hosted, or whatever. This would get startups paying attention to Microsoft again. Otherwise I’d wager on Microsoft continually being pushed out of the important and growing parts of the technology industry.
Then of course, I could be completely off base. Anyone else got an opinion on what Microsoft, or Google for that matter, should do strategically or tactically? Post a comment and give me a thought or three.
I’m a little late to this party, but thanks to Somasegar’s “VS 2010 Productivity Improvements, Part IV” and Mathew Johnson’s “Changing Visual Studio’s Color Palette” on the Visual Studio Platform Blog. I’ve now got Visual Studio looking like this: (Click on the image to view full size)
I picked up the Embers Theme on studiostyles which I found easy on the eyes, but without some of the color bleed that the other theme Somasegar suggested. However, everyone’s eyes are a bit different, so pick and choose as you will.
The classes and methods shown with color coding on the left hand side of the code window is done with VS10x Code Map. The image below shows the code window with the code map showing. This can be really handy when you have a large class file or are just trying to navigate around the file easily. (Click on the image to view full size)
The next tool that is a must have is the Visual Studio 2010 Pro Power Tools. Some of the key features for this tool include:
Another tool, that sounds very very similar is the PowerCommands for Visual Studio 2010. This adds must have right click features (yes, I know I just fussed about right clicking and using the mouse, but these features are needed regardless so I suppose a right click menu is acceptable. But would rather have them as short cut keys). Some of the key ones that are huge lifesavers are:
They’ve absolutely improved my day to day coding and am sure they’ll be a great help for anyone that lives in the code regularly. So go check em’ out, I promise you will not regret the time spent.