Sample Wiki Comments?.

Slides:



Advertisements
Similar presentations
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Advertisements

Version Control System (Sub)Version Control (SVN).
Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
Agenda −Scrum with TFS 2010 using MSF for Agile 5.0 −Planning the Project −How do you plan the project? −Project planning in TFS 2010 −Planning a Sprint.
Software Engineering.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
Computer Science 162 Section 1 CS162 Teaching Staff.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
1 CMPT 275 Software Engineering Revision Control.
1 Waterfall/Scrum You might want to take notes, because specific aspects of the processes will be on the exam. Combining – A scrum with water…
Agile Software Development Brian Link
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Object-Oriented Software Engineering Using UNIX groups and Subversion Estimated Time: minutes “Unix is user-friendly. It's just very selective about.
Object-Oriented Software Engineering Using UNIX groups and CVS Estimated Time: minutes.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Team Formation Dr. Tallman. ECE297 Tutorials, Jan 21 & Jan 23 Your team will meet your Communication Instructor (CI) and schedule a weekly 30- minute.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control.
(A radical interpretation) Tomo Lennox Bow Tie computer services Why Agile Works.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
CS5103 Software Engineering Lecture 02 More on Software Process Models.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
P51UST: Unix and SoftwareTools Unix and Software Tools (P51UST) Version Control Systems Ruibin Bai (Room AB326) Division of Computer Science The University.
Lean Software Development (Can Çetin)
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software Development - Methodologies
Software Development.
Peer Pressure / Refusal Skills
Agile Development & Companies
Appendix B Agile Methodologies
Version Control with Subversion
SVN intro (review).
Managing Client’s Projects in Opensource and Being Profitable
CS 5150 Software Engineering
Methodologies By Akinola Soyinka.
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Client Management Managing Client Expectations
Source Code Management
What do you need to know about XP?
Decomposition.
Teaching slides Chapter 1.
COMP 208/214/215/216 Lecture 3 Planning.
Pair Programming.
How to keep your Enterprise GIS Project on Track
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
CSE 303 Concepts and Tools for Software Development
Applied Software Project Management
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Git CS Fall 2018.
Project Management.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Coming up: What is Agile?
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Agile Development – a new way of software development?
Extreme Programming.
Planning and Estimation
Extreme Programming (and Pair Programming)
Jamie Cool Program Manager Microsoft
Presentation transcript:

Sample Wiki Comments?

Wiki: Try #2 Measurable milestones, with owners & target dates

Partner Broke Build Ken, The build is broken; can you take a look? Vaughn No sense of urgency & action required is vague Not very specific & not clear it is Ken’s problem Ken, Once again you broke the build! Sadegh and I can’t work – this is unacceptable. Fix it now! Still no evidence it is Ken’s problem Conveys urgency & asks for specific action Tone: angry and condescending  will damage relationship

Partner Broke Build? Specific problem and evidence it is Ken’s Hi Ken, There are many compilation errors in streets.cpp. The last commit to this file was at 8 pm last night by you so we think it’s your code. This is holding Sadegh and I up (can’t compile). Can you take a look ASAP, and also let us know when you can fix this? If it can’t be fixed in the next hour, we’ll have to revert your changes. Thanks, Vaughn Conveys urgency, asks for specific action and sets a time limit Tone: respectful & polite, but firm

Conflict E.g. Partner not meeting commitments? Talk about it! What would you do? Talk about it! In person Be factual, not emotional Likely have to talk multiple times Write down the outcome on the wiki Less aggressive commitments? Or more commitment & tracking? Talk to TA and/or CI? Yes, if not resolved But be sure you have told teammate issue first Hurts trust otherwise, and reduces your learning

Coding in a Team

Coding Productively in a Team Want Parallel development  multiple team members working at once Without wasting work or blocking each other How? “Adding manpower to a late software project makes it later.” -- Fred Brooks

1. Split Up Functionality Work in different files or functions Feature 1 Feature 2 svn update f1.cpp f2.cpp builds builds prog.exe prog.exe tests tests svn commit

Features Not Totally Independent? More communication during planning & coding Feature 1 Common Feature 2 svn update f1.cpp common common f2.cpp builds builds prog.exe prog.exe tests tests svn commit Frequent commits more important. Continuous integration!

Coding Routine svn update to latest code fix a bug, or enhance a feature, or … build test svn commit What if someone else changed repository code? svn update build test then re-try svn commit

Update/Commit Often Continuous integration Otherwise can run out of time at the end Easier to move tasks between team members Don’t have a lot of new code in one team member’s working copy only But don’t break the build Do not commit broken code Won’t compile Or breaks previously working tests Halts development by other team members

2. Split Development and Test Test & debug is massively parallel Can add many people, even late in project, and get gains Developing new features Testing & Debugging

3. Pair Programming One computer, two programmers Driver: Navigator: Writing code Focus on details Navigator: Reading code, giving feedback Focus on strategy: “What if there’s a NULL ptr”? Switch roles frequently Should each have some svn commits Talk a lot Stop when you get tired Pair Programming Tutorial

Pair Programming Two people writing one thing: productive? Less code written But higher quality Saves debugging & future issues Helps a team become cohesive Grows expertise of team members  mentoring Helps team members read each others code Most studies say more productive for new teams, and/or one programmer not expert image: llewellynfalco.blogspot.com

Project Management

Option 1: Waterfall Development Changes cheap Does not really work for complex projects  no one can plan well enough! Changes expensive Up front planning Phases: concept to detailed implementation Motivation: early changes cheaper

Option 2: Iterative/Agile Development Plan, but quickly Later parts of the plan more coarse Prototype Refine Test & Evaluate Includes end-user / customer evaluation

One Flavour of “Agile”: Scrum image: ecomcanada.org Choose features for 21-day sprint Team meets each day for 15 min scrum End of each sprint  working SW for customer

Agile: Prototype Early Not having a working system is very dangerous Don’t know when/if the system will work Engineers can’t test their work in the whole system Don’t know where the problem areas to improve / optimize will be Get something simple working Test & Measure Add features / Improve problem areas Repeat Keep it simple! Use simplest approach that works

Set Measurable Milestones Key to keeping larger projects on track