31
Project Development Methods and Tools 9/12/15 Project Development Methods and Tools Adriano Maron MS Student Computer Science

Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Project Development Methods and Tools

9/12/15   Project  Development  -­‐  Methods  and  Tools  

Adriano  Maron  MS  Student    Computer  Science  

Page 2: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Agenda

1) Agile Development – Scrum

2) Rally

3) Slack

4) Test-Driven Development (TDD)

5) GIT

9/12/15 Project Development - Methods and Tools

Page 3: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Agile Development - Scrum

9/12/15 Project Development - Methods and Tools

Page 4: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Overview

Main characteristics •  Iterative and incremental agile development methodology; •  Assumes that software requirements change during the development; •  Relies heavily on collaboration between developers.

Benefits •  New features are implemented and accepted in 2-4 weeks; •  Deliverable products are available before all features are implemented.

Limitations and Concerns •  Budgeting and time estimates might be hard to predict; •  Relies on self-organization and communication of the teams.

9/12/15 Project Development - Methods and Tools

Page 5: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Roles

Product Owner: • Define User Stories (USs); • Define acceptance criteria.

Scrum Master: • Manages the dev team; • Coordinate meetings. Development Team: •  Implementation and testing.

9/12/15 Project Development - Methods and Tools

Page 6: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Workflow

9/12/15 Project Development - Methods and Tools

Client

Me Product Owner Me Dev.

Team

Everyone

Page 7: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members. Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

Page 8: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members. Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

User Story (US): As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: The page should provide fields for the user information and the complaint/suggestion message.

Page 9: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members. Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

User Story (US) : As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: The page should provide fields for the user information and the complaint/suggestion message.

Page 10: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members. Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

US: As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: The page should provide fields for the user information and the complaint/suggestion message.

User Story (US) : As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: - The page should provide fields for: user name, email, phone and complaint/suggestion message. All fields must be marked as “required”; - A confirmation message should be displayed when the form is submitted; - An error message should be displayed if any field was not filled.

Page 11: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members. Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

US: As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: The page should provide fields for the user information and the complaint/suggestion message.

User Story (US) : As a Product Owner, I would like to have a webpage with a submission form for client complaints and suggestions. Acceptance Criteria: - The page should provide fields for: user name, email, phone and complaint/suggestion message. All fields must be marked as “required”; - A confirmation message should be displayed when the form is submitted; - An error message should be displayed if any field was not filled.

Page 12: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Scrum Development Keys for Success

Communication •  Constant communication increases productivity; •  Stuck in a problem? Ask other team members.

Define specific tasks •  Team members need to know what they are being asked for; •  Acceptance criteria must be easily verified.

9/12/15 Project Development - Methods and Tools

Version control and testing •  Code should be maintained under a repository; •  New features must be tested before making them available to other

members; •  Only approved code will be checked in.

Page 13: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Rally: a tool for software development

9/12/15 Project Development - Methods and Tools

Page 14: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Rally Managing the Production

9/12/15 Project Development - Methods and Tools

User Story

User Story (US) • Specifies what should be accomplished (a feature to be added to a software); • Contains multiple tasks, describing the necessary steps to complete the US; • Describes the acceptance criteria;

• A US is accepted by the Product Owner if the acceptance criteria is met.

Page 15: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Rally Managing the Production

9/12/15 Project Development - Methods and Tools

User Story

State

State • Defined: US was created, but the Owner did not start working on it yet; • Progress: Owner is working in one or more tasks from this US; • Completed: Owner finished all tasks from this US; • Accepted: Product Owner reviewed the work and accepted as complete; • Blocked: Someone in the team blocked the US due to some problem.

Page 16: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Rally Managing the Production

9/12/15 Project Development - Methods and Tools

User Story

State

Work Estimation • Plan Est (points): Product Owner quantifies how complex is the US; • Task Est (hours): US Owner estimates how many work-hours are necessary

to complete all tasks; • To Do (hours): Number of work-hours remaining to complete this US.

Work Estimation

Page 17: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Rally Managing the Production

Main purpose •  Keep track of the overall work; •  Identify team members going through problems; •  Provide insights for US assignments. Main challenges •  Quantify the complexity of the User Stories; •  Provide good estimates of the necessary work-hours. Main contribution •  Increases the productivity over time; •  Easier to manage all the work being done.

9/12/15 Project Development - Methods and Tools

Page 18: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Slack: group communication

9/12/15 Project Development - Methods and Tools

Page 19: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Slack Team Communication

9/12/15 Project Development - Methods and Tools

• Great communication tool;

• Group message in different channels;

• Direct messages; • File sharing; • Desktop and mobile app.

• Used last Fall; • Highly active team; •  1.300 messages; • GIT integration.

Success story

Page 20: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Slack Team Communication

9/12/15 Project Development - Methods and Tools

• Create channels for specific purposes: •  #technical-questions, #product-questions, #user-stories, #repo-

update, …; • Everything in one place.

#product-questions #user-stories

#technical-questions #repo-update

Page 21: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Test-Driven Development

9/12/15 Project Development - Methods and Tools

Page 22: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Test-Driven Development Ensuring High Quality Software

Add a test • Understanding the feature’s

specification and requirements.

Make test fail • Ensure the test does not

mistakenly fails. Write code •  Implement the desired feature. Run ALL tests •  If all tests pass, clean up the

code; if not, refactor the code (and maybe the test) and run tests again.

9/12/15 Project Development - Methods and

Tools

Page 23: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Test-Driven Development Ensuring High Quality Software

Granularity of tests •  Small tests might be pointless if they are testing very simple things; •  Large tests might be too complex to come up with the expected outputs. Make your code modular •  Thinking about tests helps you to design your code in a modular and

reusable fashion; •  Re-use tested modules is what we are looking for. Code coverage •  Degree to which the source code is tested; •  é code coverage, ê chance of bugs.

9/12/15 Project Development - Methods and Tools

Page 24: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT: code repository

9/12/15 Project Development - Methods and Tools

Page 25: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Version Control

Helps you to… •  manage different versions of your code; •  manage different features being implemented by different developers; •  share your (sometimes incremental) contributions with other developers; •  automatically run tests when new code is about to be shared.

9/12/15 Project Development - Methods and Tools

Page 26: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Version Control

•  Create your own branch;

•  Locally commit small (working) improvements;

•  Push to your remote branch when larger features are done;

•  Only stable code in the master branch;

•  Before merging to master, pull changes from remote repository.

9/12/15 Project Development - Methods and Tools

Good Practices

Page 27: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Branching

9/12/15 Project Development - Methods and Tools

Your local repository

Page 28: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Git Hooks

What are they? •  Scripts that run in reaction to specific git events, such as commit, push,

checkout, …

9/12/15 Project Development - Methods and Tools

• Code validation; • Unit tests. If fails, aborts with message and no commit.

Page 29: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Git Hooks

9/12/15 Project Development - Methods and Tools

• Execute all tests to ensure that the code is not broken;

• Check for missing files.

What are they? •  Scripts that run in reaction to specific git events, such as commit, push,

checkout, …

Page 30: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

GIT Git Hooks

9/12/15 Project Development - Methods and Tools

• Notify users that the remote repository was updated;

• Send message to Slack.

What are they? •  Scripts that run in reaction to specific git events, such as commit, push,

checkout, …

Page 31: Methods and Tools - people.cs.pitt.edupeople.cs.pitt.edu/~mosse/capstone/Sw-Dev-Tools-Presentation.pdf · Project Development - Methods and Tools User Story (US): As a Product Owner,

Thank You

9/12/15   Project  Development  -­‐  Methods  and  Tools