20
Managing .NET Software Factory Using Task Based Factory Using Task Based SCM tools Krzysztof Kniaz Krzysztof Kniaz WeightWatchers.com IT Architect Regional Conference 2008

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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

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

Managing .NET Software Factory Using Task BasedFactory Using Task Based

SCM tools

Krzysztof KniazKrzysztof KniazWeightWatchers.com

IT Architect Regional Conference 2008

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

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

IT Architect Regional Conference 2008

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

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

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

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

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

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

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

Process Analysisy

IT Architect Regional Conference 2008

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

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

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

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

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

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

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

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

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

Change Request & Task FlowsChange Request & Task Flows

IT Architect Regional Conference 2008

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

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

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

Engineering Process

IT Architect Regional Conference 2008

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

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

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

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

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

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

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

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

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

QA – DEV integrationSynergy

FailedTest

New

Open Assigned CodeComplete Fixed Closed

Synergy – QC IntegrationEngine

p

FailedTestDeferred Deployed

Mercury

IT Architect Regional Conference 2008

QC

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

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

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

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