Software Engineering I Sept. 18, 2012 Notes Last time we reviewed examples of use cases This time, we will discuss gathering requirements and the research project. Interviewing -Need good listening skills and empathy for the user -Understand and care about the problem -Relate to the problem __Be_Nice_to_the_client!__ Analyze after the interview Typically you will need to conduct several interviews Interview questions to ask clients (first meeting) -What are your duties? -What is your mission/organizational mission? -What is your organizational structure? -Do you have any supervisors? -What technology is available? +What licenses are available? +Preferred language? +Server availability? -Describe the project. What do you envision? Draw on a whiteboard if necessary. -Is COTS software available to complete this project? If so and it is inexpensive, the client should be advised about this. Brainstorming Gathering information and generating ideas - meet with stakeholder representatives - have 5 - 20 people - Use an experienced moderator/facilitator - Bring lots of paper - Develop 'trigger' questions + come up with one line answers to important questions + Ex. what are the important features in this system? - Everyone should answer a question + write down the answer in one or two lines per sheet with one idea per sheet + Pass the sheet to your neighbor + Look at the answers from your neighbor to stimulate ideas -Our brains are pattern regconizers seeing other ideas helps to create similar but slightly different ones + Pass it on to your next neighbor + Repeat for 5 - 15 minutes + Have people read ideas in front of them outloud and allow the group to breifly discuss the idea. The moderator writes these down. + The group should prioritize ideas + No idea is excluded from discussion - Important because process is structured and thinking goes on in parallel. Prototyping Rapid implementation of only part of the program Paper prototypes used for UI Good for parallel development Possible to use "rapid prototyping languages"