CS427: Software Engineering IProject gradingGrade curve from 2001Topics since midtermOpen sourceSlide 6ProcessSlide 8The leaderThe usersRequirementsDesignTestingLife-cycleRewardsCommercial rewardsCostsEnablersXPSummaryNext time1CS427:Software Engineering IDarko Marinov(slides from Ralph Johnson)CS427 24-2Project gradingFinal report due on Dec 7Demo scheduled between Dec 4 and 18?The sooner the betterDefault: Everyone on team gets the same grade for the projectBUT: We will also ask you for more inputPrevious semesters: Individual project grades ranged from 0 to over the team gradeCS427 24-3Grade curve from 2001A+ 7A 15A- 27B+ 19B 13B- 11C+ 4C 1CS427 24-4Topics since midtermSpecificationsDesignQuality assuranceUser interfaceTwo more processesOpen source (today)Crystal light (next lecture)CS427 24-5Open sourceReading for this lectureThe Cathedral and the Bazaarhttp://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/Source code is availableFor inspectionIndependent peer review Rapid evolutionCS427 24-6Open sourceTechnologyInternet (communication)Widely used languages Lots of potential users/helpersStandardsProcessCS427 24-7ProcessCathedral vs. bazaarCentralized vs. decentralizedPlanned vs. unplannedCS427 24-8Open sourceRolesLeaderDevelops initial systemDoes what nobody else doesMakes final decisionsUser/programmerDoes most of the workCS427 24-9The leaderAn open source project needs a leaderDelegates as much as he canEmpowers usersDecides what goes inCS427 24-10The usersUsers are co-developersUsers are programmers who can Add featuresFix bugsPort to new hardware/operating systemsImprove designCS427 24-11RequirementsWho decides what features get added?ProgrammersWho want to use the feature (scratch an itch)Who are persuaded to add itMust be a way to distribute changes for a featureMust be way to talk about desired featuresCS427 24-12DesignDesign is incrementalRefactoring is importantCS427 24-13TestingEvery user is a testerEvery programmer is a reviewer and bug fixer“Given enough eyeballs, all bugs are shallow.”“More users find more bugs.”CS427 24-14Life-cyclePlausible promise - must start with a (small) working programRelease early and oftenRecognize good ideas from usersKeep users connected, let them see the results of their workCS427 24-15RewardsWhy would anybody do this?They need the programEgo boostContributingHaving people think they are goodCS427 24-16Commercial rewardsWhy would anybody do this?Produce better softwareProduce software more cheaplyCS427 24-17CostsNeed a leaderA lot of work over a long timeMust communicateAn organizer as much as a designerCS427 24-18EnablersInternetCopyleftCBoring, high-paying jobsCS427 24-19XPHow is the “Bazaar” process like XP?Is the Bazaar leader like an XP customer?What about unit tests?Where does planning happen in the Bazaar?What could the Bazaar borrow from XP?What could XP borrow from the Bazaar?CS427 24-20Summary“Human beings take pleasure in a task when it falls in an optimal-challenge zone; not so easy as to be boring, not too hard to achieve.” “A happy programmer is one who is neither underutilized nor weighed down with ill-formulated goals and stressful process friction.” “Enjoyment predicts efficiency.”CS427 24-21Next timeCrystal Clear by Alistair CockburnReading will be updated on Wiki and sent to
View Full Document