Upload
others
View
5
Download
0
Embed Size (px)
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