Upload
sharlene-richards
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
Managing Software Development
Eduardo C. Ross
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 2
In This Session
• Source Control to ensure assets’ quality & consistency
• Automated and frequent builds
• Keep Developers on task and productive
• 3 Words on meetings
Software
Development Production
Source Docs
Process
Ideas
Problems
Solution
Requirements
Change Management
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 4
Source Control System
• Also known as Revision Control or Version Control.
• Management of computer programs, documents, web sites etc…
• Each change to the content is identified by a number, the ‘revision number’
Original Revision History
0024.00 /* Author : Eduardo C. Ross */ 8812150025.00 /* CopyRight: Amalgamated Software of North America (ASNA) */ 8908260026.00 /* Date Vers Auth Description */ 8908260027.00 /* -------- ---- ---- ------------------------------------------ */ 8908260028.00 /* 12/01/88 Ross Original work started */ 8908260029.00 /* 08/26/89 #1 Ross Sym: Filling up work space with labels */ 9006150030.00 /* Fix: Add underflow logic for structure stack*/ 8908260031.00 /* 06/07/90 #2 Ross Add code to output BRK on SEU numbers */ 9006070032.00 /* 06/15/90 #3 Ross Sym: Outputting BRK on strings <xx|....> */ 9006150033.00 /* Fix: Recognize tokens of the form <|> */ 9006150034.00 /* */ 8812150035.00 /*******************************************************************/ 881215
Riding Lawnmower
All Sources in a Repository
Repository vs. Working Copy
History of Revisions
Differences in Revisions
Revisions at the Folder Level
One Folder Revision
Source Management Models
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 15
Source Management Models
• Local Data– All users on the same machine. Traditional
OS/400 model
• Client-Server– Repository is kept on a server, all developers
‘pull’ their working version onto their personal machines
• Distributed– Each developer has his own repository, they can
‘push’ or ‘pull’ specific revisions from other repositories
Some Products
• Client-server model– Open source
• Concurrent Versions System (CVS)• CVSNT • OpenCVS• Subversion• Vesta
– Proprietary• AccuRev• CA Software Change Manager • Autodesk Vault • CADES • IBM Rational ClearCase • codeBeamer • IBM Configuration Management Version Control
(CMVC)• IBM Rational Team Concert – • IC Manage Global Design Platform (GDP) –• MKS Integrity• Perforce – • PVCS • Quma Version Control System• SourceAnywhere • StarTeam • Telelogic Synergy• Vault • Visual SourceSafe• Visual Studio Application Lifecycle Management
(Team System)
• Distributed model– Open source
• Aegis• ArX• Bazaar• Codeville• Darcs• DCVS• Fossil• Git• GNU arch• LibreSource• Mercurial• Monotone• SVK • Veracity
– Proprietary• BitKeeper• Code Co-op• Sun WorkShop TeamWare • Plastic SCM
• Local data model– Open source
• Revision Control System (RCS)• Source Code Control System (SCCS)
Mercurial – Distributed Model
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 18
Typical Operations
• “Check Out – Check In” or “Edit – Merge”
• Checkpoint, Tag or Label
• Get History at file or folder level
• Show Differences at file or folder level
• Get a particular version
• Branch from Common trunk
• Merge two branches
• Share
Automating Builds
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 20
Building the Software
• Repeatable builds
• Identifiable
• Eliminate (at least Minimize) Grunt Work – Boring– Redundant– Time consuming– Error prone
• Frequent
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 21
Software to build Software
• CL Programs
• AVR or C# Programs
• Make
• MSBuild
• Nant
• Team City
NAnt Script
<?xml version="1.0" encoding="utf-8"?><project name="Skeleton" default="help">
<description>The skeleton file for the build process.</description>
<property name="nant.onfailure" value="fail" />
<target name="go" description="The main target for full build process execution" depends="clean, get, version, build, test, document, publish, notify"/>
<target name="clean" description="Clean up the build environment."> <delete dir="C:\build folder" /> <delete file="C:\build.log" />
<mkdir dir="C:\build folder" /> </target>. . . </project>
NAnt - Targets Get & Build
<target name="get" description="Get the source code."> <vaultsetloginoptions user="username" password="password" URL="http://VaultServer" repository="Products" /> <vaultgettolocationoutsideworkingfolder destPath="C:\build folder"> <vaultfileset> <include name="$/product/family" /> </vaultfileset> </vaultgettolocationoutsideworkingfolder> </target>
<target name="build" description="Compile the application."> <!-- ${project.solution} is a property that contains the full path to the solution file --> <msbuild project="${project.solution}" > <property name="Configuration" value="Debug"/> </msbuild> <msbuild project="${project.solution}" > <property name="Configuration" value="Release"/> </msbuild> </target>
NAnt - Target Version
<target name="version" description="Increase the version number."> <vaultcheckout checkoutExclusive="true"> <vaultfileset> <include name="$/${vault.project.folder}/VersionFile"/> <!-- ${vault.project.folder} is a reference to a property called vault.project.folder --> </vaultfileset> </vaultcheckout>
<!-- create the new file --> <echo message="${buildnumber.nextversion}" file="${project.temp.dir}\VersionFile"/>
<vaultcheckin comment="Commit initiated by NAnt."> <vaultfileset> <include name="$/${vault.project.folder}/VersionFile"/> </vaultfileset> </vaultcheckin> </target>
NAnt - Tasks
http://nant.sourceforge.net/release/latest/help/tasks/
You can get NAnt at http://nant.sourceforge.net/
Managing the Team
Move Obstacles out of the Way
Avoid Scope Creep
Penny Wise Pound FoolishSmall expenditures can mean big gains in productivity
Penny Wise Pound Foolish
Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 31
Elbow Meetings
• Meetings should be:• Short• Focused• Positive
Managing Software Development