Managing .NET Software Factory Using Task BasedFactory Using Task Based SCM … · 2008-12-15 ·...

Preview:

Citation preview

Managing .NET Software Factory Using Task BasedFactory Using Task Based

SCM tools

Krzysztof KniazKrzysztof KniazWeightWatchers.com

IT Architect Regional Conference 2008

Agenda• Problem Background• Software Factory Requirements• SCM Process• SCM and EAI• Integration with QA life cycle• Team metricsTeam metrics

IT Architect Regional Conference 2008

Problem: change control for the largeProblem: change control for the large global app

• Application Name: WeightWatchers.com• #1 Weight Management destination on the Internet

Gl b l (8 b i ti it US CA UK AU• Global presence (8 subscription sites – US, CA, UK, AU, DE, SE, Fr, NL +15 content sites)

• The product has mix of content and functionalityThe product has mix of content and functionality• Diet business is very dynamic; product and marketing

teams need the ability to respond to change fast• How to stay competitive while maintaining control over

quality of the software?

IT Architect Regional Conference 2008

Problem backgroundg• Most organizations start with rudimentary dev process

– Symptom: Developers are permitted to deploy the app to QA and /or Production

– Symptom: Handoff between the Dev and IT teams is manual– Symptom: The dev team can’t identify production baseline y p y p

• Most organizations start with short term architecture – Symptom: Small changes require a release

S t I iti l S i ( / h ti )– Symptom: Initial Services (messages / schemas, operations) are always narrow in scope and functionality

– Symptom: No ownership of the EAI/Feed Architecture

• Development Process and Architecture are usually interdependent so to maximize quality Architect needs to address bothaddress both

IT Architect Regional Conference 2008

Process Roadmapp

• Analyze processes inherent to all participants of the Software Development

• Refactor the app to reduce dependencies and for maximum flexibilitymaximum flexibility

• Define Principles of the development process• Select best tools and automate processes using the Se ec bes oo s a d au o a e p ocesses us g e

tools for each team• Define interfaces and integrate lifecycles (e.g. Dev and

QA t )QA teams)• Define metrics and build process reporting

IT Architect Regional Conference 2008

Process Analysisy

IT Architect Regional Conference 2008

Code and Product Flow

QAPROD

DEV INT QA

R

`PM

Request

ect

EngineerCodes,

Build ManagerBuilds ,

Sr. EngineerBuilds,QA

De fe

c

Builds,Unit Tests,

Deploys

Audits,Deploys

IT OperatorAudits,

Deploys

Unit Tests,Deploys

QA

IT Architect Regional Conference 2008

Software Factory RequirementsSoftware Factory Requirements• Automation

Builds must be automated– Builds must be automated– Builds must run often

• Scale out (Lab to Pilot Plant to ProductionScale out (Lab to Pilot Plant to Production Facility)– Run the same build and deployment process on any p y p y

environment (Developer Desktop, Integration Server, QA server )

• UI and MW code as well as data base code• UI and MW code as well as data base code

• Testable– Support automated unit testsSupport automated unit tests

IT Architect Regional Conference 2008

Software Factory RequirementsSoftware Factory Requirements• Verifiable

– Knowledge of what code (to the file level) was deployed to production in a given release

– Trace code change to developer that changed it and fchange request or defect that precipitated the work.

• Link binary code to the source code

• Support concurrent and parallel development– Concurrent: development of the major and minor

release at the same time– Parallel: development of many major releases at the

same time

IT Architect Regional Conference 2008

Tool SelectionTool Selection• Portfolio and planning: Custom built db, p g

Superdecisions for priority analysis• Requirements : Custom built db, Excel for q ,

data entry• Change: Synergy ChangeC a ge Sy e gy C a ge• SCM: Synergy CM• QA: Merc r QC• QA: Mercury QC• Deployment: Blade Logic, NAnt scripts

IT Architect Regional Conference 2008

Change Request & Task FlowsChange Request & Task Flows

IT Architect Regional Conference 2008

QA and Prod ProcessQA QA Complete

CR Life Line

QA

Select TasksLinked to CRs

PMEngineering

QAProject

Linked to CRsIn QA Status

SynergyReport

ReconfigureTask Life Line

BMCompare

DeployR l d

IT

QA Work AreaQA Build Server

DeployCode Life Line

QA EnvReport

ReleasedQA baseline

App Life Line

Refresh

Prod Srv

QASrv

IT Architect Regional Conference 2008

App Life Line

Engineering Process

IT Architect Regional Conference 2008

Automated Build ProcessAutomated Build Process• NAnt scripts (http://nant.sourceforge.net)

R bl NU it t t (htt // it )• Re-runable NUnit tests (http://nunit.org)• Continuous Integration Server:

C i C t l NETCruiseControl.NET– WW.com team wrote Synergy Plug-in for

CruiseControl NET (published Sep 2005)CruiseControl.NET (published Sep 2005)• Environment (or locale) specific settings are

stored in the configuration files that are gdynamically created by the build process

IT Architect Regional Conference 2008

Auditingg

• Link binary products to source codey p– Select tool that has “Bill of Materials” (BOM) concept – If you can’t use the concept out of the box make sure

your tool has an open interface so you can code toyour tool has an open interface so you can code to your requirements

– In Synergy out of the box utility works only for C files compiled via make, not particularly useful for .NET p , p yfiles, assemblies, NAnt

• Compare deployed code to the released baselinebaseline

• Passed SOX audit for the build and deployment processprocess

IT Architect Regional Conference 2008

EAI and SCM

ERPe-Com MapMap EAI EngineCommerce

<Product></ Product >

MapMap

<config>----------------</config>

<conn>----------------</conn>

CRMStore<Customer></ Customer

MapMap

<Order>----------------

CallCentr

Customer >

MapMap</Order> Mapp

IT Architect Regional Conference 2008

EAI and SCM

EnterpriseExternal Project

<Product></ Product >

Applicationre Project

<Customer></ Customer

Mapw

ay

lew

are

/tio

nal S

truct

u

<config> <conn>

<Order>----------------

Customer >

Gat

ew

Mid

dlR

elat <config>

----------------</config>

<conn>----------------</conn>

</Order>

Task Task in the enterprise project

Task in the application project

IT Architect Regional Conference 2008

projectCR

QA – DEV integrationSynergy

FailedTest

New

Open Assigned CodeComplete Fixed Closed

Synergy – QC IntegrationEngine

p

FailedTestDeferred Deployed

Mercury

IT Architect Regional Conference 2008

QC

MetricsMetricsProductivity (#objects vs time)

Dev X

400

500 Dev XDev YDev ZDev PDev Q

200

300Dev Q

0

100

3/24/2006 7/2/2006 10/10/2006

IT Architect Regional Conference 2008

Conclusions• Benefits

– Integrated development lifecycle increasesIntegrated development lifecycle increases true agility ( vs. perceived agility)

– Automation saves time and moneyAutomation saves time and money– Reporting capabilities showing true cost of the

project and quality of the staffp j q y• Drawbacks

– High cost of implementation– High cost of implementation– Long learning curve for the “average

developer”developer

IT Architect Regional Conference 2008

Recommended