31
Managing Software Development Eduardo C. Ross

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

Embed Size (px)

Citation preview

Page 1: 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

Managing Software Development

Eduardo C. Ross

Page 2: 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

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

Page 3: 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

Software

Development Production

Source Docs

Process

Ideas

Problems

Solution

Requirements

Change Management

Page 4: 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

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’

Page 5: 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

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

Page 6: 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

Riding Lawnmower

Page 7: 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

All Sources in a Repository

Page 8: 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

Repository vs. Working Copy

Page 9: 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

History of Revisions

Page 10: 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

Differences in Revisions

Page 11: 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

Revisions at the Folder Level

Page 12: 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

One Folder Revision

Page 13: 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 Management Models

Page 14: 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

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

Page 15: 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

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)

Page 16: 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

Mercurial – Distributed Model

Page 17: 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

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

Page 18: 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

Automating Builds

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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>

Page 22: 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

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>

Page 23: 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

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>

Page 24: 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

NAnt - Tasks

http://nant.sourceforge.net/release/latest/help/tasks/

You can get NAnt at http://nant.sourceforge.net/

Page 25: 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

Managing the Team

Page 26: 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

Move Obstacles out of the Way

Page 27: 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

Avoid Scope Creep

Page 28: 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

Penny Wise Pound FoolishSmall expenditures can mean big gains in productivity

Page 29: 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

Penny Wise Pound Foolish

Page 30: 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

Integrating your IBM i with Web, Mobile, and Windows © 2013 by ASNA. All rights reserved. 31

Elbow Meetings

• Meetings should be:• Short• Focused• Positive

Page 31: 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

Managing Software Development