About six months ago I made the decision to join Microsoft full-time as a Senior Program Manager in the IT group of the Manufacturing, Supply Chain, Information & Services (MSCIS) organization. After five years with Avanade this transition came with mixed emotions, looking back on a ton of growth and learning over the first years of my career. With the transition come a couple significant changes. The first is the move from vendor to FTE. With this comes a change in accountability where now you are there to ensure the work gets done and take the initiative to “drive through the smoke”. The second is the move from a business analyst / Solution Manager role to PM, which brings a whole new set of responsibility of project management, design, and technology. I am excited for the next season of settling in with a great team in a very exciting time for Microsoft.
Over the last few months I have accumulated a few more certifications in ADO.NET 3.5, as I work toward MCPD 3.5, and SharePoint 2010. Check my About page to see a list of my current certifications.
Microsoft patterns & practices SharePoint Guidance has been released to MSDN!
Updated: SharePoint Guidance 1.0 – Nov 2008
Here are a few of the topics you will find inside:
Architectural decisions about patterns, feature factoring, and packaging Design tradeoffs for decisions many developers encounter, such as whether to use SharePoint lists or a database to store information Implementation examples that are demonstrated in the Training Management application and in the QuickStarts How to design a SharePoint application for testability, create unit tests, and run continuous integration How to set up different environments including the development, build, test, staging, and production environments How to manage the application life cycle through development, test, deployment, and upgrading Team-based intranet application development
You might also see my name, along with the names of a couple of others from Avanade, in the Authors and Contributors section. (Updated to refer to SharePoint Guidance 1.0 – Nov 2008)
Earlier this year I worked on a project with the Microsoft Solution Accelerator Team to develop what was released as the Service Level Dashboard for System Center Operations Manager 2007.
The dashboard is a report that is installed into Operations Manager 2007 and is used to display availability and performance metrics related to SLA thresholds set by the administrator.
I also recently noticed my name, along with the names of many others from Avanade, on the Acknowledgements page.
This is what Avanade calls your time between projects. Last week I rolled off my first major project and started my bench time. This time is meant for training and getting certified. So I did just that.
The first four days of this week I spent training on Microsoft Office SharePoint Server 2007 where I utilized independent study materials that I obtained through Avanade’s internal training department.
Friday was spent craming for Exam 70–528: TS: Microsoft .NET Framework 2.0 – Web-Based Client Development, which I ended up passing on Saturday. This was my second Microsoft exam but my first with Avanade. As part of being a Solution Developer at Avanade you are required to become a Microsoft Certified Professional Developer. This was the first of five exams that make up the MCPD certification. And with five exams, I thought I should better get crackin’.
The other day out at Microsoft I ran into some interesting behavior in SQL Server regarding the difference between running a query in a table-valued function versus running it in a stored procedure.
This particular query I was trying to run selects columns from an existing view that is part a database of the Microsoft product that I am currently working with. Unfortunately, this is no ordinary view. This view not only has two nested select statements, it joins on a table holding thousands and thousands of records. Looking at the estimated execution plan was ridiculous, having probably 50 or 60 processes.
Running this query in a table-valued function, basically just running the view, causes the CPU on the server to soar to 100% and Management Studio to basically timeout. However, placing the same query in a stored procedure yields almost instant results.
I talked this over with the resident SQL guru on the project and all we could come up with was that, because of the complexity of execution plan, the pre-compilation of the query in a stored procedure makes all the difference.
Well, the training was finally over and the start of March brought the start of my first project as a consultant at Avanade.
After a little bit of networking with a fellow WWU grad, I got onto my first project, and wouldn’t you know it, it’s at Microsoft. I am currently working in a small team as a UI developer working with ASP.NET, C#, and SSRS, which is quite an exciting opportunity considering ASP.NET and SQL Server are my bread and butter. There was only one problem.. I (and my trusty new laptop) had to be converted to the Microsoft religion before being able to do pretty much anything. So after a new laptop image, hours in software installs and reinstalls, badge creation, badge recreation, and a smart card reader I was finally fully capable of working at Microsoft.
As developing on this project starts I have decided that I will be expanding the scope of my weblog to not only include life snippets but also some code snippets and developer thoughts that I find useful or interesting along the way.