New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Software Practice

by: Marian Kertzmann DVM

Software Practice CS 3500

Marian Kertzmann DVM
The U
GPA 3.78


Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Class Notes
25 ?




Popular in Course

Popular in ComputerScienence

This 30 page Class Notes was uploaded by Marian Kertzmann DVM on Monday October 26, 2015. The Class Notes belongs to CS 3500 at University of Utah taught by Staff in Fall. Since its upload, it has received 43 views. For similar materials see /class/229995/cs-3500-university-of-utah in ComputerScienence at University of Utah.

Similar to CS 3500 at The U

Popular in ComputerScienence


Reviews for Software Practice


Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 10/26/15
Administrivia 0 Questions m cs 3505 umvmmv mum L14 1 Review 0 What is the development strategy that we have defined thus far 7 Requirements elicitation write use cases 7 Decide on architectural requirements component diagram 7 Create design class diagram Note architecture and design work hand in hand 7 Next steps are what you have done before Implement Test Deploy 0 Very waterfall like 7 See next for review of waterfall 7 But incremental is the way to go we just haven t had the time to do a real incremental approach Tm CS 39601 UNlVE RSITY or UTAH L132 Support of Software Engineering Planning estimation organization process management Con guration control metrics defect tracking reuse documentation nu CS 3500 Ubiix ilAskllTY L15 4 e and a of Waterfall 1 Was used the most and still used some b Projects are rarely sequential thus change causes problems b Difficult to get all customer requirements up front b Customer does not see progress since first version is way late in process b Early mistake can be disastrous b Time waiting can exceed time being productive 1 Significantly better than no process nu CS 3500 UfiliEllKASEl TY L15 5 TraditionalCMM o Capability Maturity Model 7 Late 8039s early 90 s 7 Thousands have adopted 7 Highly structured version of traditional software 0 Has 5 levels r Adhoc chaotic ble vs Agility 0 Agility Manifesto We have come to value Agile Traditional Individuals and Process and tools Interactions Working software Comprehensive documentation Repeata Customer collaboration 7 Defined Responding to change Following a plan 7 Managed 7 That is while there is value in the items on o t p mtlzmg the right we value the items on the left 0 Complalnts o equot r Spending time writing docs complains Changing 50 fast 3 7 Can you do big projects with no repeatable Is expensive documentation 7 Isn39t this just the hack approach Tm CS 3505 UNIVERSITY UTAH L14 6 eXtreme Programming XP How much would you pay for a software development team that would do what you want Wait don t answer yet what ifthey could also tell you how much it would cost so that you could decide what to do and what to defer on your way to your deadline You also get quality software a robust array of tests that support the project through its entire lifecycle and an uptodate clear view of project status Best of all you get the ability to change your mind about what you want at any time See Extreme Programming Installed by Jeffries et al nu CS 39601 UfierJEllKASEl TY L13 7 eXtreme Programming XP 0 One type of agile process that received a lot of support 0 Write user stories on cards 0 Define acceptance tests 0 Estimate time to complete stories I Customer prioritize 0 Definequot quot 39 39 highly 39 39 process 0 Individual owns a story works in pairs doing testfirst development 0 Collective ownership simple design continuous integration 40 hour work week 0 Releases of business value every few weeks to customer nu CS 3505 UhierJElllASEl TY L21 a Clearly XP Has Made It Big EXTREME PROGRAMMXNG OKAY HERE s A AND EACH FEATURE STORY YOU GIVE E a x CAN 39r GIVE YOU 2 EEDS ALL OF THESE 5 wHAT wE CALL A ME ALL OF MY FEATURES IN TH g ween snows FEATURES OR I LL a RUIN YOUR LXFE FIRST VE R510 N 391quot irr lew Lann In mm m www ailbcvlm m nu UNIVERSITY cs 39601 UTAH L13 9 THE NEu SYSTEM 15 A MINUTE OLD AND I ALRiADV HATE EVERYONE FIRE1quot PICK A PARTNER THi TUO DF YOU WILL WORK AT ONE COMPUTER FOR FORTV HOURS A MEK R GOING TO TRV SOMETHING CALLED EXTREME PROGRAM MING opgrlght a zaaa umrea Fauture synamm Inc EXTREME PROGRAMMING MM SOMETIMES I CAN THE NO OF VOU WILL BE A CODErLJRITING TEAM i L3 apwgm 9 24m Unlted Feature Syndicate Inn nu UN IVE RSITY cs 39601 UTAH L1310 Crystal Clear 0 Another type of agile process 7 Although trying to specify more general concepts 0 Crystal Clear Human Powered Methodology for Small Teams Alistair Cockburn AddisonWesley 2005 o is a lucid and practical introduction to running a successful agile project in your organization 0 This lecture comes from the Crystal Clear book nu cs 3505 UN YJE15 TY L14 11 Seven Properties of Successful Teams PSquotPWNT CS 3505 Idea is to encourage the properties and not focus on the procedures 7 Because It is polisible that other procedures can produce 5 the same prope Ie Frequent Delivery Reflective Improvement Osmotic Communication Personal Safety Focus Easy Access to Expert Users Technical Environment with Automated Ttests Configuration Management and Frequen lntegratIon fg w L14 12 1 Frequent Delivery 0 Why 7 Feedback on rate of progress 7 Users can give feedback on what can and can t be done 7 Developers are forced into meeting short deadlines 7 Team can debug development and deployment process 0 How often 7 Two months 7 As long as four and as little as weekly o What if can t give to all 7 Find a test user and give it to them 7 If not then at least integrate and test doesn t test deployment Tm cs 3505 fg w L14 13 2 Reflective Improvement 0 Meet and discuss what works and what doesn t 7 AND FIX THOSE THINGS THAT AREN T WORKING 0 Teams can do this and salvage a failing project 7 Lots of examples where a project is failing in the beginning 7 Lots of examples in the book where this led to success 0 Try new ideas 0 Post these lists so everyone can see 7 That way you don t fall into the same traps 7 It also enforces the things that are working well m cs 3505 fg w L14 14 3 Osmotic Communication 0 Communicate in the background so you can hear things as if by osmosis 7 That means that you just hear stuff that could be useful 0 You can t do this with everyone sitting in their own offices 7 Sit in the same room with the ability to just ask a question and get an answer 0 You need to develop the skill to ignore questions that are not relevant 7 Supposedly this can be learned 0 So communication cost is low feedback is high errors are quickly fixed knowledge is transferred cs 3505 l w L14 15 3 Osmotic Communication 2 0 Problem too many questions too much noise 7 Self regulates 7 Reduces random chatter 7 People respect think time 0 Problem protect the project lead by placing in their own office they are in high demand 7 Bad can t get questions answers 7 Bad can t learn apprentice 0 Solution put project lead in with everyone else 7 Bad too many interruptions lead can t get anything done 7 Solution develop Cone of Silence Tm cs 3505 fg w L14 1e 4 Personal Safety 0 Ability to speak when something is bothering you 7 Without fear of bad consequences 7 Le Your design needs to be improved 7 Le Mr Manager your schedule is unrealistic 7 Le Buddy take a shower o Is on the road to trust 0 Presence of trust is directly related to teams that are successful 7 Personal observation trust and dedication are worth more than just about anything for a team In my experience a tiny team that trusts and is dedicated can a everyone Tm cs 3505 w L14 17 4 Personal Safety 2 o Exposures 7 Revealing one s ignorance 7 Revealing a mistake 7 Revealing ones inability to handle an assignment 0 If you are exposed and nothing bad happens then you build trust 0 Some expert managers force an exposure handle it in an appropriate way and demonstrate that you aren t hurt by it 7 Building trust m cs 3505 l w L14 1a 5 Focus 1 Know what to work on and 2 Have the time to do it 0 Get someone who knows the business value to decide what is important 0 Don t work on several projects at once 7 Can t progress on any 7 One to one and a half is the max 0 Lots of interruptions 7 Begin to idle between interruptions and get nothing done 7 A solution is to block out two hours per day when only the very highest priority interruptions are allowed No meetings no demos etc cs 3505 l w L14 19 6 Easy Access to Expert Users 0 This gives you 7 Tester of your deliveries 7 Feedback on quality 7 Feedback on design decisions 7 The latest requirements 0 The more hours an expert is available the better 7 But the rst hour is critical 0 Success at least weekly or biweekly meetings 7 Phone calls for backup 0 Onsite if possible 0 Lastly try to get the developers to be trained as Tm cs 3505 w L14 20 7 Technical Environment with Automated Tests Con guration Management and Frequent Integration 0 Every programmer Alistair interviewed Once moved to automated tests swore never to work without them again 7 Automated tests improve quality of life When you pass those tests on Friday afternoon your weekend is free 0 Con guration management allows 7 Working asynchronously r Backout changes 7 Create releases o Frequent Integration 7 Multiple times per day or at worst every other day 0 Best continuous integration with test Tm cs 3505 U lJE15 TY L14 21 Technique 1 Methodology Shaping 0 Have a preliminary meeting 7 more than an hour long 7 Each team member list all of the development techniques that they have experienced and disliked and would like to avoid Make tanother list of experienced things that they liked and would like to repea Discuss and combine into team lists h team me b et 7 votes for each list to say what they think are r Eac g s important you can spread your votes around or put many on one item up to seven total 0 Have the Methodology Shaping Workshop Start with the given rules for a project and write them down Take the likedrepeat list and t in with the given rules Take the relevant dislIked ist and put what is relevant on a list of things to id Edit and agree on each list to come up with the starting rules for the project Tm CS 3505 UNIVERSITY UTAH L14 22 Technique 2 Reflection Workshop 0 At the end of each appropriate period have a reflection workshop 0 Keep them short maybe 15 to 30 minutes 0 First input is the methodology shaping workshop list 0 Discuss what is working and not working 0 Discuss any new ideas that maybe should be tried 0 Create new edited version of the list Tm cs 3505 fg w L14 23 Technique 3 Blitz Planning Gather attendees stakeholders developers etc Grab cards and write tasks on them 7 Partition into short tasks few hours 7 Do as fast as you can get done in at most 15 minutes Lay out dependencies r Sequential tasks top to bottom 7 Parallel side to side Review tasks remove duplicates add as needed Estimate tasks time and who will do it e If external requirements are needed write that on Sort the tasks 7 Mark sequential dependencies Mark the walking skeleton first release nal releas 7 Walking skeleton tiny implementation that is end to endquot CS 3505 Tm UNIVERSITY or UTAH L14 24 Technique 4 Delphi Estimation Process to estimate the scope time people needs and release plan for a project Gather designers and other senior people Input use cases for system Create table of factors for the system in rows 7 Such as screens use cases technical classes business classes 7 Columns were for each participant lterate filling out table and add up factors to get size estimate Determine what people skills are needed and link back to ors Petermine velocity of people skill per size and compute total Ime Determine releases We will not be doing this for our project CS 3505 mi UN lVE RSITY WM L14 25 Technique 5 Daily Standup Meeting Short meeting of entire team Identify problems don t discuss them 7 If you start discussing move it to after the meeting with only those needed to be involved staying Answer three questions 1 What did I work on yesterday 2 What will I work on today 3 What is getting in my way CS 3505 m UN IVE RSITY UTAH L14 26 Technique 6 Essential Interaction Design 0 Think about roles of the users of the system 0 Work through these roles and how they will interact with the system 0 Specify a Ul that will meet the roles 0 Define a testing strategy to insure Ul competancy Tm cs 3505 fg w L14 27 Technique 7 Process Miniature 0 Basic concept is to run through the process that you have in a very small session 7 Like an hour 0 Gives everyone insight into how you will work to get to where you are going Tm cs 3505 fg w L14 23 Technique 8 SidebySide Programming 0 Sit next to each other 7 Close enough to see the screen of the other 7 But work on individual task assignments 7 Can ask at any time to have other look at screen run a test or get some help 7 When done you go back to working on your project 0 Effectively does peer code reviewing 0 Can do some pair programming if you want 0 Example 7 Client I server app with one doing client other doing senIer 7 Work on it and get to a point Hey I have a stub just finished can you test it Tm cs 3505 fg w L14 29 Scrum 0 An agile process that has gained a lot of popularity 0 Product backlog 7 List of features that the system should some day have 7 Each feature takes roughly 1 to 20 days to build In our case we are going to use less than 8 hours per feature 7 Product Owner Customer is responsible for prioritizing list of features 0 Scrum Sprint 30 day iteration 7 Begins with meeting where product backlog is examined and items c osen 7 Scrum team takes each item and breaks into Scrum Backlog roughly no more than 16 hours of work Includes estimates of how much work 0 Product backlog items for a particular sprint don t change during the sprint nu cs 3505 UN YJE15 TY L16 31 Scrum 2 0 Daily Scrum 7 Only pigs team can talk 7 Standard standup process 7 IS NOT A STATUS MEETING gtgt Designed to foster communication 0 Opportunity to Inspect and Adapt 7 Like cooking when you season taste season 7 If things aren t working then communication ensues between relevant parties 7 Not the entire team 0 New tasks may be discovered and added to Sprint Backlog do this Sprint or tossed up to Product Backlog do future Sprint nu cs 3505 l w L16 32


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Jim McGreen Ohio University

"Knowing I can count on the Elite Notetaker in my class allows me to focus on what the professor is saying instead of just scribbling notes the whole time and falling behind."

Jennifer McGill UCSF Med School

"Selling my MCAT study guides and notes has been a great source of side revenue while I'm in school. Some months I'm making over $500! Plus, it makes me happy knowing that I'm helping future med students with their MCAT."

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"

Parker Thompson 500 Startups

"It's a great way for students to improve their educational experience and it seemed like a product that everybody wants, so all the people participating are winning."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.