Project Management in Team Software Projects

Similar presentations

1 Project Management in Team Software Projects“The primary challenge of project management is to achieve all of the goals of the project charter while adhering to the four classic project constraints – scope, time, cost, quality”

3 Leeds Source-IT“Leeds Source-IT is a consultancy service staffed by high calibre Computing student programmers and managed by experienced staff. We undertake self contained projects on a fixed price basis. All projects are tightly specified up front and undertaken using Agile Programming techniques, monitored on-line with dedicated project management software and client sign off stages”

5 svn checkout <repository URI>Retrieving from SVNInitial check out of an existing project. The following command will check out a working copy of an existing project:svn checkout <repository URI>This will check out the project into the current directory.A particular revision can also be specified with “revision” number. ‘checkout’ can also be ‘co’.You are now ready to work using SVN. Subsequent commands require entry from the root of the checked out project directory.Notifying Subversion of local modifications

6 Adding to SVNModifications to existing files will be automatically detected by Subversion and included in future commits (and updates).Adds file to Subversion (to be included in the next commit). If file is a directory, file is added recursively, including all subdirectories and files.svn add <file>commit your changes now.

7 svn delete <file>Deleting to SVNSubversion must be notified of changes to the directory structure including notifications of additions, deletions, copies and moves:svn delete <file>Deletes file from the working copy and informs Subversion to delete the file from the repository at the next commitcommit your changes now.

8 svn commit [-m “Explanation of changes”]Pushing Changes to SVNTo share changes made to the local copy with other developers, the changes must be uploaded to the central repository:svn commit [-m “Explanation of changes”]Wait for other users to commit their files.

9 Pushing Changes to SVN IIUpdating the local copy with the latest changes in the repository. To update a local copy:svn updateThis command fetches the HEAD version of each file from the repository and lists each file with a prepended flag specifying the state of the file in relation to the current working copy.

10 Flag Description Flag Description UThe file has been updated with changes fro the server.AThe file or directory has been addedDThe file or directory has been deletedRThe file or directory has been replaced (an existing file was deleted, then a new file of the same name was created)‏GThe file has been changed locally and remotely, but the changes did not conflict and have been automatically merged by subversion.CThe file conflicts with changes from the server.Reference: c/files/documents/15/177/svn-ref.ps

11 Managing Conflicting ChangesSubversion will merge multiple changes to the project so that subsequent checkout commands will retrieve the latest version of each file in the repository.What happens if a file has been modified by multiple users since the last checkout/commit cycle?Subversion cannot know which version is correctinforms the user there is a conflictprevent further changes until this conflict is resolvedConflict needs to be resolved manuallyUsually this will require a discussion between the authors of the changes.The file can then be edited to the correct state.

12 Managing Conflict IIOnce a conflict has been resolved, Subversion must be informed of this resolution before the working copy is allowed to be committedsvn resolved filenameMarks the conflict on filename as resolved. The file can now be committed to the repository. Perform these steps again, so your partner can resolve a conflict.

13 Managing Conflict TaskIn groups discuss the following questions:1. Who decides which changes are kept and which is deleted?2. What impact do you see during code development?3. What mechanisms would you put in place to ensure the correct decisions are made?4. What are the different scenarios causing conflict (consider different orders of checkout, update, resolve and commit)‏SVNFile AUser 3File AUser 1File AUser 2

14 Tools and Infrastructure of Software DevelopmentThis section of the workshop demonstrates how to set up the Eclipse IDE for use with Leeds Source-IT infrastructure.

15 Installing an Eclipse Subversion plug-inTwo Eclipse plug-ins exist for Subversion:Subclipse from the original Subversion developers, andSubversive, from the Eclipse foundation.Both offer the same functionality and are presented in a similar way.This workshop discusses installing Subversive, but the steps are similar if your prefer Subclipse.

16 Installing SubversiveIn Eclipse, navigate to:Help | Software Updates...On the panel that appears, click the Add Site... button on the right and enter the following URL in the location field that is displayed:Select the following:Subversive SVN ConnectorsSVN Team ProviderSVN Team Provider LocalizationSVNKit (either version)‏Then click the Install... button.

17 Checking Out an Existing ProjectTo check out an existing project:File | New > Project...In the displayed dialog select SVN | Projects from SVNA new dialog will be displayed containing existing SVN repositories that Eclipse is aware of. Select a repository if it in the list, otherwise select the ‘Create a new repository location’ and click next. If a new repository is selected, enter your username and password and enter the URL to retrieve the SVNEach project will be running its own SVN and you will be provided with the correct URL to access the SVN for a projectA list of directories will be displayed (corresponding to available projects if a project name was not specified in the URL). Select the appropriate directory and click Finish to check out the project into an Eclipse project of the same name (Next will allow this default name to be changed).

18 Working with a Shared ProjectEclipse greatly simplifies using Subversion when compared to the command line approach.To update or commit a project right click the project name in the Project Explorer view and chooseTeam | Commit... to commit changes (and a commit message)Team | Update to get the latest changes.Team | Synchronise with Repository does a commit and shows any conflicts.Double clicking the conflicts opens an editor displaying the local copy and the latest repository copy side by sideOnce all conflicts have been resolved, the project will need to be recommitted (conflicts prevent the first commit from completing).As well as easing the conflict resolution task, Subversive handles changes to the directory structure by automatically performing the correct svn command for moves, deletes and copies.

19 Introduction to MylynMylyn extends the Eclipse SDK with sophisticated mechanisms for keeping track of tasks.A task is any unit of work that you want to recall or share with others, such as a user-reported bug or a note to yourself about improving a feature.Mylyn lets you store tasks locally in your workspace or work with tasks stored in one or more task repositories.Leeds Source-IT uses Redmine as a task repository and to coordinate all aspects of project management.To connect to the Leeds Source-IT task repository, you must have installed a Mylyn connector for a web based repository.

20 Installing MylynTo install Mylyn for your version of Eclipse, use the Eclipse Update Manager:Help > Software Updates > Find and install > Search for new features to installThe Mylyn web connector is currently in the Eclipse incubator, so will need to be added to Eclipse’ list of sites to search for updates. Click on Add Site and enter the following URL:Click OKNow select the Mylyn Connector: Web Templates (Advanced) and click on Install.

23 Leeds Source-IT Group Project ManagementWhat is Project Management?Sequence of tasksConsumes resourcesAchieves an objectiveResults in something newGolden Rules of Project SuccessDevelop a comprehensive, realistic plan and keep it up-to-dateGain consensus on project outcomesMake reasonable resource requirementsBuild the best team you can and take care of themKeep the stakeholders informedBe willing to change or to try new thingsThe Source-IT infrastructure provides all the necessary tools available to achieve these points if used correctly.Project Members need to keep the project information current

24 Project Stages Contract Set-up Phase(LSIT managers) liaise with clients to understand their requirements and agree the Specification.Price for the work will be derived from this, based on the agreed Skills List and estimated times.Hourly rates or a task based rate will be agreed and formalised within the Client Contract.We will use standard templates provided by University of Leeds Consultancy Ltd (ULCL).

25 Software Requirements Specification (SRS)‏Well-designed, well-written SRS accomplishes four major goals:1. It provides feedback to the customer.An SRS is the customer’s assurance that the development organization understands the issues or problems to be solved and the software behaviour necessary to address those problems.SRS should be written in natural language, in an unambiguous manner that may also include charts, tables, data flow diagrams, decision tables, etc.2. It decomposes the problem into component parts.The simple act of writing down software requirements in a well-designed format organizes information, places borders around the problem, solidifies ideas, and helps break down the problem into its component parts in an orderly fashion.3. It serves as an input to the design specification.SRS serves as the parent document to subsequent documents, such as the software design specification and statement of work.SRS must contain sufficient detail in the functional system requirements so that a design solution can be devised.4. It serves as a product validation check.SRS also serves as the parent document for testing and validation strategies that will be applied to the requirements for verification.

27 Draw the picture to the specification and requirements.Specification TaskSort yourself into groups and complete the following specifications and requirements.Specifications:Create a picture with geometrical shapes of various colours. The picture willhave a red star, a blue circle and a green triangle not overlapping with twodiagonal black lines crossing at the centre.Requirements:1. Diagonal lines1.1 lines are black and straight1.2 lines are drawn to intersect in the centre of the page1.3 First line is from the top left (below the corner) to bottom right(above the corner)‏1.4 Second line is from top right corner to bottom right corner2. Red star2.1 Start is red and colour filled2.2 Star is a six pointed star2.3 Star is positioned on the upper right section of the page2.4 Star is small in size3. Green triangle3.1 Triangle is green bordered with no fill3.2 Triangle is positioned on the top left below the line from top left to bottom right3.3 Triangle is large in size4. Blue circle4.1 Circle is blue with no fill4.2 Circle is position at the bottom of the page4.3 Circle is not touching the black lines4.4 Circle is medium in sizeDraw the picture to the specification and requirements.

28 Specification Task IIDiscuss any differences in the image and the specification.How does it differ?What specifications needed to be added to make it an exact replica.Question:What impact would differences here have on the development of software?

29 Issues: Features, Documents and BugsUsing the Source-IT infrastructure and online software for project management (Redmine).Issues are used to define features, documents and bugs needed for development and new versioning.Issues == Requirements == Features

30 Identifying and Linking Requirements to SourceRequirements (or issues in Source-IT) for development require the following fields:Requirement NumberUnique IdentificaitonRequirement TypeType as defined by the project and Source-ITSpecification NumbersTo map the requirement to the client specificationDescriptionOne sentence statement of the requirementOriginatorWho created the requirementFit CriterionThe measurement of the requirement to test is the solution matches the requirementPriorityRating of the customer valueSupporting MaterialPointers to documents that explain this document (probably the specification document)‏HistoryCreation, changes, deletions etc.In the Source-IT infrastructure, the requirements are added as Issues labeled Features within the Software Application. A unique ID is already allocated. Fields within the application.LowNormalHighUrgentImmediate

31 Redmine and RequirmentsDuring the team kick off meeting for a project. Clients, Source-IT management and consultants will discuss and set the specification requirements to create a Source-IT requirements specification document (technical document) to be signed off by the client and management. Each specification will have a unique id and allocated to a milestone agreed by the kick-off team and setup as an issue/feature within the Source-IT infrastructure. The above table specifies the process to create, implement and sign off a specification.

32 Penny Queue Exercise: Waterfall and AgileThis simple simulation exercise helps people to understand the efficiency that can come from moving away from a waterfall or large batch process. The exercise can be done with 20 pennies, 5 people and a clock with a second hand.The exercise simulates processing work in the form of flipping pennies from heads to tails and back. Four people in the Team sit at a table or other hard surface in a line beside each other. The surface must allow for easily sliding the pennies. The fifth person, the Manager, starts the process and times it.

33 Penny Queue Exercise: Waterfall and Agile IIFirst Pass - Waterfall Large Batch1. The Manager gives all the pennies to the first person in the Team and notes the start time. The pennies should be in a big jumble.2. The first Team member chooses a side (heads or tails) and flips all the pennies onto that side.3. The person with the pennies passes the whole pile of pennies to the next person. That person then flips all the pennies to the other side.4. Repeat step three until the last person on the Team has flipped them.5. The manager notes how long this took.

34 Penny Queue Exercise: Waterfall and Agile IIISecond Pass - Waterfall Small Batch1. The Manager gives all the pennies to the first person in the Team and notes the start time. The pennies should be in a big jumble.2. The first Team member chooses a side (heads or tails) and flips all the pennies onto that side. As each penny is flipped, the Team member passes it along to the next person.3. Each person flips their pennies as quickly as possible and immediately passes them on to next person.4. Do this until they are all flipped.5. The manager notes how long it took for the first penny to go through all four Team members, and how long it took for all of them to finish.

35 Penny Queue Exercise: Waterfall and Agile IVThird Pass - Parallel Small Batch1. All the pennies are in a random jumble in the middle of the table.2. One Team member calls heads or tails and the manager notes the start time.3. Each person grabs a penny at a time from the pile.4. All working at the same time as quickly as possible, each person flips the pennies first so they are all the same as the original call if needed, and then three more times5. As each penny is finished 3 or 4 flips (as appropriate) it is pushed into a separate done pile in the middle of the table.6. The Manager records the time for the first penny to be put into the done pile and for all of them to be completed.

36 MilestonesMilestones are arranged by Leeds Source-IT managers, you (the project team) and the clients.Develop An Overall Model - goal is to identify and understand the fundamentals of the domain that your system is addressingBuild Features List, grouping them into related sets and Subject areas. These first two steps map to the initial envisioning effort of AMDD .Plan By Feature, the end result being a development, the identification of class owners (more on this in a minute), and the identification of feature set owners.Design By Feature, design featureBuild By Feature, complete client values function

37 Milestones IIThe majority of the effort on an FDD project, roughly 75%, is comprised of the fourth and fifth steps Design By Feature and Build By Feature. These two activities are exactly what you’d expect, they include tasks such as detailed modeling, programming, testing, and packaging of the system.FDD also defines a collection of supporting roles, including: Domain Manager; Release Manager; Language Guru; Build Engineer; Toolsmith; System Administrator; Tester; Deployer; Technical Writer

38 Milestone and Features Allocation TaskSet yourself into groups of 5 (appoximately).From a set of tasks handed out,sort the task into a features listallocate who will do which task.Finish the tasks and write down your results for X.Question:What were your milestones?What problems did you encounter?Who ensures the issues and features have passed to close a milestone?Discussion adding requirement from tasks into Redmine. Think about allocation, completion and testing

40 Finding Faults EarlyIt is commonly believed that the earlier a defect is found the cheaper it is to fix it.

41 Testing Methods Specification Based Testingaims to test the functionality according to the requirements. (requires thorough test cases to be provided to the tester who then can simply verify that for a given input, the output value or behavior)‏Black Box Testingtreats the software as a black-box without any knowledge of internal implementation. methods include:equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing, specification based testing, etc.Black Boxmethods include:equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing, specification based testing, etc.White BoxThe following types of white box testing exist: - code coverage - creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to cause all statements in the program to be executed at least once. - mutation testing methods. - fault injection methods. - static testing - White box testing includes all static testing.White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods (code completeness evaluation). This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested.Grey BoxManipulating input data and formatting output do not qualify as grey-box because the input and output are clearly outside of the black-box we are calling the software under test. This is particularly important when conducting integration testing between two modules of code written by two different developers, where only the interfaces are exposed for test. Grey box testing may also include reverse engineering to determine, for instance, boundary values or error messages.

42 Testing Methods II White Box Testingwhen the tester has access to the internal data structures and algorithms (and the code that implement these)‏Grey Box Testinginvolves having access to internal data structures and algorithms for designing test cases, but testing at the user, or black-box level.Black Boxmethods include:equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing, specification based testing, etc.White BoxThe following types of white box testing exist: - code coverage - creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to cause all statements in the program to be executed at least once. - mutation testing methods. - fault injection methods. - static testing - White box testing includes all static testing.White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods (code completeness evaluation). This allows the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested.Grey BoxManipulating input data and formatting output do not qualify as grey-box because the input and output are clearly outside of the black-box we are calling the software under test. This is particularly important when conducting integration testing between two modules of code written by two different developers, where only the interfaces are exposed for test. Grey box testing may also include reverse engineering to determine, for instance, boundary values or error messages.

43 Non Functional Software TestingSpecial methods exist to test non-functional aspects of software.Performance testing checks to see if the software can handle large quantities of data or users. Generally referred to as software scalability.Usability testing is needed to check if the user interface is easy to use and understand.Security testing is essential for software which processes confidential data and to prevent system intrusion by hackers.Internationalization and localization is needed to test these aspects of software, for which a pseudolocalization method can be used.

46 Source-IT Project FinalisationOnce the project is internally signed off, it will be presented to the Client who will externally sign off.Note that this may be a staged process, depending on the contract, as Clients may wish to sign off each part of the work (see milestones).Once the Client has fully approved the work, they will be asked to sign a formal written Acceptance Form and the project will be terminated.Financial payments and invoicing will be carried out by ULCL (including debt chasing if necessary).

47 Risk Assessment for Student Consultants1. Students failing to complete work on time (for instance due to abilities, illness)‏Careful recruitment and selectionClear guidance and briefing of terms of workSupport in the case of lack of skillsStudents required to file work at least weekly, so that at most one week’s work (ie. 5 hours) will be lostStudents paid only on satisfactory completion of work2. Students unable to do work and withdrawing from all or part of a project As (1).Work allocated to another student asap.Client advised and extra time requested if necessary.3. Students making errors in workTest plan to be part of each projectStudents check each others’ workWeekly monitoring

48 Risk Assessment for Student Consultants II4. Clients dissatisfiedAgree very tight specification, to form part of a signed agreementClients involved in sign off at each stage of process5. Clients refusing to payRefer to ULCL for standard debt chasing procedures6. Clients taking us to courtRefer to ULCL7. Clients not providing sufficient support to process (eg. not attending project management meetings or providing details for specification)‏Support to project management procedures part of contract with clientThey need to agree either decisions made without them, or project delay.

49 Risk Assessment for Student Consultants III8. Hardware failures (particularly on student computers)‏Appropriate guidance on backing upEncourage students to use SoC facilities including SVNProvide 1-2 LSIT machines in dedicated LSIT office9. Software problems - delays due to need to install libraries or plug-ins for specific projectsSupport asked to give priority to LSIT when there are deadlinesInvestigate software requirements as part of specification and start up process10 Not enough work coming inStudents only paid if work available.Some costs of pilot phase could be covered by start up funding11. Too much work coming inManage client expectationsLook for appropriate partners who we could pass work to in busy timesConsider running a modified scheme based on vacation working

51 Homework Home work task for accepted ConsultantsFamiliarise yourself with RedmineOther sandbox management applications for Trac; Bugzilla etc. (search the web)‏Skill: Please complete the Skills section in Redmine when you have an usernamePDP: Please think what you wish to obtain from Source-IT (other than money)‏Select the categories and during your time on Source-IT add examples on work you are doing.If you wish to add any categories to the PDP, please contact a member of management