methods and tools -...
Post on 26-Jun-2020
10 Views
Preview:
TRANSCRIPT
Project Development Methods and Tools
9/12/15 Project Development -‐ Methods and Tools
Adriano Maron MS Student Computer Science
Agenda
1) Agile Development – Scrum
2) Rally
3) Slack
4) Test-Driven Development (TDD)
5) GIT
9/12/15 Project Development - Methods and Tools
Agile Development - Scrum
9/12/15 Project Development - Methods and Tools
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
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
Scrum Development Workflow
9/12/15 Project Development - Methods and Tools
Client
Me Product Owner Me Dev.
Team
Everyone
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
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.
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.
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.
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.
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.
Rally: a tool for software development
9/12/15 Project Development - Methods and Tools
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.
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.
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
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
Slack: group communication
9/12/15 Project Development - Methods and Tools
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
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
Test-Driven Development
9/12/15 Project Development - Methods and Tools
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
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
GIT: code repository
9/12/15 Project Development - Methods and Tools
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
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
GIT Branching
9/12/15 Project Development - Methods and Tools
Your local repository
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.
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, …
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, …
Thank You
9/12/15 Project Development -‐ Methods and Tools
top related