150 likes | 285 Vues
This lecture reviews essential elements of software implementation, including the importance of style documents, commentaries, and coding methodologies. It addresses key questions about developer needs, monitoring progress, and avoiding project stalls. The discussion highlights productivity discrepancies among programmers, effective roles within teams, and the benefits of code reviews and pair programming. Emphasis is placed on collaborative environments, junior-senior pairings for skill enhancement, and the overall strategy to foster efficient software development.
E N D
ITEC 370 Lecture 15 Implementation
Review • Questions? • Draft of design document on F • Brief 3-5 minute work update on F (will continue except for mid-term) • Implementation • What are some of the elements in a style document? • Comments • Warning / Error codes
Objectives • Look at different methodologies for development
Writing code… • Manager • What do developers need to do their work? • How can you monitor their progress? • How can you keep them from stalling out? • How do you keep them on time / on budget • Schedule • How long should X take
Issue • Mythical man month • Throw more labor at a problem and it is solved faster • Reality • 9 women can’t birth a child in a month…
Issue(2) • Not all programmers are equal • Some are 5 to 10 times more productive than others • Only get paid twice as much… • Trying to keep up is not a fun experience • Support roles • Experimental roles
Scenario • Have 200 workers and 25 managers • Managers are 5 times more productive than the workers • Should you get rid of the workers and have the managers build the project or should they stick to management?
Roles (MMM) • Surgeon • Person who writes the code, documentation, tests • Co-pilot • Sounding board, evaluator, Mini-Surgeon • Administrator • Building / Personnel • Editor • Documentation • Toolsmith • Systems administrator • Language lawyer • Detail oriented person, perhaps the R&D department
Code reviews • Scheduled times to sit down and review code written • Quality (Design, Structured, Comments) • Memory leaks • Tools / hand checking • Automatic • VCS will email it to a reviewer and it won’t be accepted until someone looks at it
Pair programming • Write code with someone else
Parts • Environment • Physical • Large open area with tables / computers • Small offices • Both • Software • Nothing special required, collaborative editors + voice • Work faster / better when someone is looking over your shoulder
Ways • Pair up junior / senior developers • Helps junior devs improve faster • Helps senior devs learn to teach • Experts and experts • Build it and build it fast • Junior devs • Help each other figure out problems
Studies • Multiple results • Not so overwhelming that you MUST do it • Fifteen percent less bugs, fifteen percent more time • Harder / more effort than solo programming • Biggest gain from novices pairing together
Meaning • Pair programming is a really good idea for you all • Requires you to like / be on the same page • Driver / Navigator • Swap off • Big picture / Detailed view
Review • Ways of developing software • Concerns about how to start the process • Didn’t even get into actual coding strategies