Thursday, February 26, 2009

The Microsoft Operations Framework and Virtualization

Due to some of the stuff that I’ll be working on for my day/night/weekend job at Configuresoft I’m going to be spending a bit more time in the world of Virtualization. This is interesting to me on a number of fronts, but especially since Virtualization seems to be the latest “mega trend” that IT is embracing. Given that my work-life these days revolves around building software to help optimize IT operations, it’s only natural that I get to play in the world of Virtualization.

The good folks at Microsoft® have seen fit to create a “Solution Accelerator”  companion guide centered around Virtualization. (The guide is currently in Beta, but take a look at the “Virtualization Suite” located here: http://technet.microsoft.com/en-us/solutionaccelerators/cc197910.aspx )

The interesting thing to me about this guide is that it’s actually a companion document to the Microsoft Operations Framework (MOF) IT process guidance, and of course if you’ve heard me speak over the last year or read any of my blog entries (Yes Matthew, I really do have a blog) then you know I’m all about IT Process in general and MOF in particular.

MOF and Virtualization

Following the logic laid out in the document mentioned above, there are basically 5 steps to implementing virtualization. the steps provide very high-level guidance that makes for a decent roadmap to aid in creating a virtualization plan for an organization.

Step One: Understand the Virtualization Technologies

When most people think of “Virtualization” they think of running one or more virtual machines on a physical host system. Virtualization is much more than that. There are various virtualization technologies that are useful to organizations including application, network, desktop and storage virtualization. Having a good understanding of these technologies will help IT managers choose the right ones for their specific virtualization projects.

Step Two: Review the existing infrastructure

Just like any other improvement process, you need to first have a baseline of your environment. Having a good understanding of what is installed, where it’s located and how it’s used is critical to the success of any virtualization project. Developing a good understanding of your current environment is essential to creating the plan for virtualization.

Step Three: Prepare to support Virtualization

Many times, when organizations set out on projects that are designed to save money in the long run, they neglect to understand that there will be short term costs involved. Virtualization tends to exacerbate this issue because much of the “legacy” hardware in organizations today is generally not optimized for virtualization. In very general terms, the most important part of any machine (server or workstation) virtualization project is the IO subsystem. Having good “back end” storage connected to your virtual platform will be essential for a successful virtualization project. There are many other factors as well, so planning this step is critical to the overall success of the project.

Step Four: Update the IT Architecture

Once the existing environment is understood and the overall “big picture” is developed for the virtualization project, it’s important to build a specific systems architecture to support it. This step builds a conceptual understanding of what exactly will change in the environment to support virtualization, and will serve as the overall model for how the project is implemented. This step is critical to the success of any virtualization project, and is often the one most overlooked by organizations.

Step Five: Update IT Management Processes

Once the conceptual architecture is complete and the new environment is understood, it’s important to develop management processes that will fit into the new environment. This step is all-too-often overlooked until after the project is underway, leaving managers feeling as if they are working hard to catch up. It’s very important to get “ahead of the game” by having plans in place to support the environment before the project is deployed.

Putting it all Together

The five steps above are over-simplifications of what exactly is necessary to embark upon a successful virtualization project. There are of course many more things to consider within each of the steps, and there’s also a step 6 which involves actually deploying the virtualized environment. Following these guidelines though will help organizations understand exactly how virtualization can be employed in their environment and will help them to develop clear and concise business requirements for deploying virtualization.

Better Late than Never? – RM Tech Trifecta Slides

During my session on “Data Dude” at the Rocky Mountain Tech Trifecta (good time by the way, just wish I’d had more time) I promised I’d post the slides to my blog.

Well, here we are 5 days after the event and I’m finally getting it done.

The slide deck can be downloaded from my public SkyDrive here: TechTrifectaDataDude.pptx 

Thanks to everyone who came out to the event, and to those who endured my session!

Wednesday, February 11, 2009

Group Dynamics and the Agile Structure

Thanks to a tweet by Scott Hanselman today, I was reminded of how group dynamics can and do affect teams working in an Agile environment.

As I mentioned in an earlier blog post, I am going to be spending some time this year speaking about software development processes in general and agile in particular this year (I am really hoping that my TechEd talk gets approved this year, but so far it’s still in a proposed state, which doesn’t bode well). Much of my talks will focus on the Microsoft Solutions Framework (MSF) and the Microsoft Operations Framework (MOF). Before you can deep dive into any these topics however, there needs to be a higher-level understanding of how these processes fit into overall group dynamics and visa-versa.

Group Dynamics and their Agile Implications

When thinking about Agile software development, remember that one of the core values (first one listed on the manifesto as a matter of fact) is to value people and interaction over process and technology. This could well be one of the reasons that so many notable people talk about Agile not being viable for inexperienced developers. (I wrote a little about this in an earlier blog post as well – by the way I received notice from Visual Studio Magazine that they are going to publish my comments in the March Issue) In order for teams to work well together, they really do need to go through the various phases of team organization. If you subscribe to the theories of Bruce Tuckman (I am specifically referring to an article that was posted in the Spring of 2001) you know that these phases are:

Forming

When teams are in the forming stage, they are basically getting to know one another and are pretty much unproductive. In Agile methodologies (specifically thinking about MSF for Agile here) this usually coincides with the Envisioning phase of the project, so not only do you have team members getting to know one another and jockeying for their spot in the pecking order, you also have everyone trying to figure out just exactly what it is that they are building. The interesting thing (and if you read Tuckman’s article, I think he states it pretty well) here is that this phase isn’t really the chaotic phase. I know from personal experience that when a team is in this phase, it requires both strong leadership and an ability to not get bogged down in details for each of the team members. In my opinion, this is the hardest phase to get through, and I believe is one of the main reasons that Agile is seen as for “experienced” developers.

Storming

When teams enter the storming phase, they pretty much know what they are going to build but haven’t quite decided on how to build it yet. This is the phase where team members really start to challenge each other and where the team leader needs to start letting the team find their own way. Some teams never make it out of this phase (which is why many software development projects fail). In the MSF model, this phase usually occurs during the latter part of the planning stage in into the developing phase. In order to be successful here, team members need to understand how their individual strengths and weaknesses can work together to form a cohesive unit. In my experience this is where teams will experience the most chaos and will suffer the most.

Norming

In this phase teams start building trust and start basically getting the job done that needs to get done. When teams enter this phase, they are “good to go” and more readily accept change. One other very interesting dynamic in this phase is that team members start to become interdependent (and if you aren’t careful, codependent in that team members can start to rely on the unhealthy habits exhibited by some) . In the MSF model, this occurs usually in the latter part of the Developing phase and somewhat into the stabilizing phase. (To be clear, some teams never make it to the Norming stage, but the project goes on – there is no direct relationship between the team phase structure and the process phases). Generally speaking, I’ve found that teams in this phase exhibit the, “We don’t have time for the bullcrap” mentality and tend to take on more challenges. This is probably the most productive phase of all, and is the hardest phase to maintain.

Performing

In this phase, the team is self-sufficient and requires little if no supervision. As long as they have defined goals and objectives, the team can continue to function well in this phase. An interesting dynamic here is that new releases of previous products that have been built by the team can be entirely accomplished while the team is in this phase, meaning that the MSF Envisioning and Planning phases become almost invisible. The problem that starts to occur here though is the “normal” dissident and tension that is felt while the team is in the Norming phase (the challenging of ideas) tends to drop off, which means that products built by teams in this phase may not be as complete or revolutionary.

Applying the Phases

If you subscribe to my theory that all teams must go through the above phases, and if you can separate out the actual software development problem from the group dynamic problem, you can see that a team doesn’t necessarily have to be in one of the latter phases in order to be successful with Agile. A true software development leader should be able to focus on the people first and guide them through their “discovery” while making the process of software development almost invisible. I truly believe that even junior developers can be successful with Agile methodologies if the above is taken into account.

Wednesday, February 4, 2009

Upcoming Speaking Events

Over the next few months I am speaking at several events, and thought I’d post about them here.

The Rocky Mountain Tech Tri-fecta

The first is the upcoming (and FREE) “Rocky Mountain Tech Trifecta” which is being held in Denver on February 21 (a Saturday). I haven’t finalized my session yet, but it will most likely be an Agile-focused process talk.

rmtech%20trifecta

From the website:

The Rocky Mountain Tech Tri-Fecta is a free, information-packed day of practical training and information concentrated in .NET, SQL Server, and Microsoft Windows technologies. There will be a total of 42 sessions on a wide range of interesting topics by top rock stars in the .NET, SQL Server, and Windows Server arenas. In addition, we'll be hosting several "fishbowl sessions" where atendees can interact with top professionals in specialized areas. Each of these sessions will focus on the tech and will be filled with code and actual hands-on demonstrations to maximize the value to you, our peers in the technology community.

SSWUG Virtual Conference

I am also speaking at the Spring SQL Server Worldwide User Group virtual conference. I am speaking at both the SQL Server Conference as well as the Business Intelligence Conference. I am presenting a total of 6 sessions for these conferences, and it promises to be a pretty good time. Here is some content from the website about the Business Intelligence conference:

While others produce online sales events disguised as conferences, the SSWUG.ORG vConference is heavily focused on CONTENT. Technical content and tips for Business Intelligence that you can apply immediately. Don't be fooled by imitators. This is the biggest, best, most comprehensive and industry-recognized vConference going.

We're excited to present our 2nd Business Intelligence vConference! Attend and find out why the world is raving about these great technical events! Networking with attendees, seeing demonstrations, getting how-to information, Q&A with speakers, downloadable samples and transcripts, on-demand content and much more.

Here’s some of the great content we’re putting together for you

  • Do It Right: Best Practices for Analysis Services 2005 and 2008
  • Get the maximum value from Excel and SQL Server Business Intelligence
  • Introduction to SQL Server Analysis Services
  • Monitor Your Business with PerformancePoint Server 2007 Monitoring and Analytics
  • Just added: Even a SQL 101 Track - available to all attendees
  • Outstanding Sponsorship Opportunities - Be a sponsor! Our sponsorship options are not what you're used to seeing - contact us today for exciting opportunities.

 

Spring Dev Connections 2009

I will also be speaking at the Spring Dev Connections 2009 conference in Orlando. This conference is taking place March 22-25 and is always a good time. I’ll be presenting a total of 3 sessions for this conference. The abstracts are as follows:

SSW06: Business Intelligence Performance Metrics: Using Tools to Understand the Performance of BI Solutions

In this session, attendees will learn about the various tools available to baseline and track performance of Business Intelligence solutions. Learn how to monitor performance of SQL Server Reporting Services, SQL Server Analysis Services, and SQL Server Integration Services.

SSW07: Out of the Box BI: Using Business Intelligence Solutions in New and Exciting Ways

In this session, attendees will learn how Business Intelligence solutions can be used to provide insight into the mundane, day-to-day IT operational information that you have at your disposal. Learn how to use Business Intelligence solutions to track and identify system configurations that cost you money. Learn how to employ Business Intelligence solutions to improve your IT management processes.

SSW05: The SQL Server 2008 Performance Data Collector: Advanced Topics

In this session, attendees will learn about the architecture of the Performance Data Collector, and how it can be extended to include custom performance metrics from SQL Server and other services.