Agile: Mission Impossible?: Case study presented in Update 08 conference

Last Wednesday I participated in a panel called “Agile: Mission Impossible?” where I presented one of Southworks’s case studies where we successfully implemented Agile methodologies (Scrum + XP mix) in scenarios out of the Agile comfort zone.

update1

We had good feedback from the audience, as well as lots of questions from people facing similar scenarios. Let’s summarize the case study presented…

“Your mission, if you choose to accept it…”

Apart from the goal of delivering a mission critical product implemented with emerging technologies, the case study in particular that I presented had the following constraints:

  1. “Distributed2: The whole team was divided in 2: Southworks team (1 architect + 1 lead + 2 devs) and the client’s team (3-4 devs). These teams were distributed in space, separated by 360 miles. But they were also distributed in time: their working hours differed in 2+ hours.
  2. “coached to coach”: Goals included the adoption of agile methodologies by client’s development teams up to the point where they must be ready to coach other teams within the client on successfully implementing agile.
  3. “Agile = 0″: The client’s team had no experience in agile methodologies or tools such as TDD, pair programming, refactoring, etc.
  4. “Tech = 0″: The client’s team had no experience in the models their where going to implement such as S+S or the technologies they were going to use: MVC, Ajax, WCF, Linq
The approach

After accepting that “mission” we used the product we started to build as the real-world scenario for applying a coaching roadmap that consisted of a mix of:

  1. Global (team + stakeholders) methodology understanding
  2. Continuous teamwork practice
  3. Ownership enforcement
  4. Partial team rotation to foster the knowledge transfer
The results

As part of the results of the case study, the product was delivered on time, on budget, with “over-delivery” features. The client’s team had learnt and successfully implemented agile methodologies as well as the new technologies, which they successfully started to apply to other projects in their organization.

Have you ever worked on similar scenarios? How did you solve them?

Heroes happen {here}: Windows 2008 Server launch in Buenos Aires, Argentina

Last Thursday was the time for Argentina to launch Visual Studio 2008, SQL Server 2008 and Windows Server 2008. This event was part of the launches wave that started back on the 27th of February when Steve Ballmer presented those products in Los Angeles California.

image

This event in particular associated the heroes happen {here}campaign with a popular sport in Argentina: the soccer. The main event was a soccer match between professional soccer players and a team made of Microsoft developers and IT pro’s. As part of a big analogy, the software team used Windows Server 2008 on their defense, SQL Server 2008 on their middle field and Visual Studio 2008 on their offensive and that strategy allowed them to won the match.

Some pictures from the event

20080410_5

Soccer match between professional soccer players and a team made of Microsoft developers and IT pro’s. You can see Alejandro Ponicke as a DT in the background.

20080410_2

Jorge Garcia, Augusto Alvarez, Matias Woloski, Ezequiel Glinsky, Johnny Halife and me: watching the soccer match.

20080410_3

Augusto Alvarez, Paulo Arancibia, Miguel Saez, me and Johnny Halife

Being "on top of" vs "behind of"

onTopOf

When your goal is to put the box in another place in a dark room, you can choose to concentrate in start pushing without focusing on other forces coming from the other side OR you can first use your torch to enlighten from above overseeing the whole process, getting to see things that may affect the operation (moving a box) in advance.

I guess this analogy can point out the difference between “doing something” and “take care of getting something done“.

What do you think?

CSF and LitwareHR: Kickoff week

Last week I’ve been working with Puru Amradkar, Eugenio Pace and people from Microsoft’s Connected Services Framework (CSF) team, kicking off a new project that is both related with LitwareHR and CSF.

I had a great time on the design sessions with people from the CSF team like Puru Amradkar, Bala Balabaskaran, Balamurugan Kuthanoor and Arun Chandrasekhar. Their collaboration on the project was really valuable.

DSC03669

Image 1: From left to right: me, Puru Amradkar and Eugenio Pace.

LitwareHR is a software as a Service (SaaS) reference implementation application published last February by Microsoft’s Architecture Strategy Team. As a single-instance and multi-tenant application, it covers SaaS typical aspects as the tenant provisioning, multi-tenant security, presentation configuration, datamodel configuration and business processes configuration.

So what about CSF? It helps telecommunications operators to integrate content services with their internal networks and business systems. In a SaaS hoster context, it could help with integrating their billing and order handling systems with SaaS applications developed by SaaS ISV’s.

csfArch

Image 2: CSF Communication Architecture.

Some CSF Links

Picture with B Gates

DSC03585

:-)

Signs of SaaS evangelism

During the last trip I’ve found some signs of SaaS evangelism around Seattle area:

  1. Tenant-based security applied to restaurants restrooms in downtown Seattle:

DSC03561 

  1. "Try before you buy" experience in Chinese restaurant             (in Sea-Tac airport):

DSC03586

Has any of you found any "SaaS hints" anywhere else? :-)

WF 3.5 Certification exams design session

Last week I’ve been participating on the design of the upcoming TS (Technology Specialist) certification exams for WF 3.5. (formerly known as "70-504: TS: .NET Framework 3.5 - Windows Workflow Foundation")

The sessions have been organized by the Microsoft Learning team and hosted by Howard Dierking, who did a great job on helping us to discuss about the most important aspects of WF to test.

He explained the refactoring of the exam stack and how having TS exams which are specific to a single technology and then PRO exams which are more scenario oriented can help software companies on measuring their applicants skills.

From left to right, the Subject Matter Experts that worked on that design sessions are: Ariel Schapiro, Serge Luca, Alfred Myers, Brian Myers (author of "Introduction to Windows Workflow Foundation" book) and Mark Dunn.

DSC03470

It was really interesting to see how many points of view around the same subject help enormously in the design of an exam; good work guys!

Two more southies (Matias Woloski and Johnny Halife) participated in the WCF design sessions that took place one week before WF’s.

Some SaaS Links

I’m sure this is not all of the material around, but here is a brief list of Software as a Service links that I find useful. Feel free to propose more links. Enjoy :)

Introduction
Guidance
Papers
Blogs

SaaS Workshop

Fred Chong, Gianpaolo Carraro, Erik Weis and Matias Woloski gave a 3-day workshop on SaaS, at Microsoft HQ in Redmond.

Attending Microsoft employees and ISVs used a SaaS reference application based on LitwareHR to get inside of the architectural challenges solutions for data model configuration, tenant provisioning, workflow configuration and security.

Check Matias’s post for more details.

Microsoft Provisioning System (MPS): Overview

These days I’ve been investigating on what Microsoft Hosting Solutions and Microsoft Provisioning System can do, how they work and how they would be applied to SaaS hosting environments, such as LitwareHR reference application’s.

MPS is an extensible Windows-based platform that provides an XML-based framework that allows to create customized provisioning solutions for Web, data, and application hosting. This solution includes tasks such as adding new users, updating directory entries, and provisioning applications and services.

MPS’s providers make possible to automate the tasks required to provision and manage services within a data center. They accept XML requests from the Provisioning Engine and execute provisioning tasks against their respective applications.

MPS’s Provisioning Engine acts as a provisioning process coordinator and performs data monitoring and logging services. The Provisioning Engine interprets high-level XML requests and expands them into tasks.

 MPS_howItworks

  1. Using the Web-based interface, submit an XML-based provisioning request.

  2. The provisioning Engine parses the XML request and expands the request into multiple low-level actions. The provisioning Engine processes the request based on the MPF Configuration database.

  3. The Provisioning Engine then routes the XML requests to the appropriate Providers.

  4. The Provider implements the low-level provisioning tasks by making API calls to the appropriate applications. The provisioning request is complete.

Context: MPS as part of the Solution for Windows Based Hosting

MPS_inWBH

Installed elements:

The following are the main things I installed to get a deeper notion of MPS. You can get them here: http://www.microsoft.com/downloads/details.aspx?FamilyId=D6EF5386-0F76-4F58-A6C6-1FE7B5BE56CA&displaylang=en

  • MPS SDK:

    • Includes MPS Manager: Administration console for MPF (next bullet), used to configure and monitor the components in an MPF installation.

500x318.aspx

  • Microsoft Provisioning Framework (MPF): platform for building, deploying, managing, and extending hosted services running on Windows:
    • Provisioning Framework: The framework contains both client and server components. The client and SOAP ISAPI receive incoming provisioning requests. The following server components manage transaction processing and data storage:
      • Provisioning engines
      • Queue managers (Provisioning Queue Manager Service)
      • Configuration database
      • Transaction logs
      • Audit log
      • Auditing and recovery managers (Provisioning Auditing and Recovery Service)
    • Standard providers and namespaces: MPF ships with a number of providers and named procedures that support:
      • Microsoft Active Directory
      • Execution of scripts and commands
      • Error remapping for localization and context-sensitive applications
      • Windows file system and registry
      • HTTP and SOAP requests
      • SQL Server
      • Application installation using Microsoft Windows Installer
    • API’s: contain methods used to submit requests to the provisioning framework and to develop custom providers.
  • MPF Resource Kit:

MPS_MPFTools

Useful Links:

Next Page »