230 likes | 395 Views
CST 316. Process. Junior Project. Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide and Conquer Split the drudgery pieces of a project among the team members No single member does all the “yucky” stuff
E N D
CST 316 Process
Junior Project Process • Provide necessary points of communication for individual effort. • Allow a controllable division of labor. • Divide and Conquer • Split the drudgery pieces of a project among the team members • No single member does all the “yucky” stuff • Split the cool stuff among the team members • Spread the glory across the entire team
Rapid Development 4-Part Strategy • Avoid Classic Mistakes – Don’t repeat history • Apply sane development fundamentals – What are some? • Manage Risks – What are software project risks? • Manage time through schedules. Adapt schedules to reflect reality – What is reality?
Rapid Development Four Dimensions of Software Development • People • Process • Technology • Product
Rapid Development Four Dimensions of Software Development People – Teams will make or break a project. Small team communication and interaction is a key element in software development. • Small teams of Top Talent are better than larger mixed teams. • Fit tasks to skills and motivation of team members. • Help team members advance professionally as well as personally • Build teams of people that compliment and harmonize together • Face team member problems early and solve them
Rapid Development Four Dimensions of Software Development Process – The methodology and sequence of events used to organize software development efforts and extract software development artifacts. • Do not over organize process rules (never get caught in “Analysis Paralysis”) • Avoid the “All Powerful Process Tsar” • Define good development fundamentals: • Requirements • Analysis • Design/Modeling • Coding/Implementation • Testing/QA • Define, track, and handle project risks
Rapid Development Four Dimensions of Software Development Technology – The “stuff” we use to build a system. Avoid the “Silver Bullet Syndrome” – “Of all the monsters who fill the nightmares of our folklore, none terrify more than werewolves. They transform unexpectedly from familiar to horrors.” Technology to solve a problem, seen as a “silver bullet”, can easily become the “werewolf” we wish to eradicate! This is what is known as the “bleeding-edge” of technology.
Rapid Development Four Dimensions of Software Development Product – What exactly are we trying to build? • Define system scope • What does the customer really want? • Where do the boundaries of the system reside? • Never build what can be bought or obtained and integrated. • Requirements • Gather and catalog what the user wants. • Categorize these so the necessary components will be a high priority. • Define schedules based on these priorities.
Development Process • Well-defined development processes are important and necessary to achieve the goals. • Well-defined software processes can greatly reduce the cost of fixing errors later in the development cycle. • The key part of development process is everybody on the team has buy-in and the process is well understood. • All approaches are viable and will produce results.
“Software Process” • Committing all requirements to writing. • Using a systematic procedure to control additions and changes to the software’s requirements. • Conducting systematic technical reviews of all requirements, designs and source code. • Developing a systematic Quality Assurance Plan in the very early stages of the project that includes a test plan, review plan and defect tracking plan.
“Software Process” • Creating an implementation plan that defines the order in which the software’s functional components will be developed and integrated. • Using automated source code control. • Revising cost and schedule estimates as each major milestone is achieved. • Completion of requirements analysis • Completion of architecture and detailed design • Completion of each implementation stage
Phases of Software Lifecyle • Requirement Phase • Specification/Analysis Phase • Design Phase • Implementation Phase • Integration/Testing Phase • Maintenance Phase • Retirement
Software Project Players • Client • Developer • User
Synchronize-and-stabilize model • Mainly used by Microsoft • Similar to incremental model • Interviewing numerous potential customers during requirement analysis phase for a list of features • Divide the features into 3 or 4 builds • Synchronize work from teams • Stabilize each build