CS342 Mobile Application Development Wednesday, 22 April 2015 0. Miscellaneous -- The Any/Any problem for storyboards var dog = animal as? Dog println(dog.name) -- as? as! -- The !? stuff in ListDemo's tableView:cellForRowAtIndexPath: -- What else? 1. Projects & Teams -- Any problems with my selections? -- Get together with your team, grab a chunk of wall, and talk about how you think you should approach your first client meeting. * What should the agenda be? * What questions should you be asking? * What do you want to take away from the meeting? * Who should do what at the meeting? 2. One possible agenda You can edit this or make your own, but you need to go into the meeting with a clear sense of what you want to have and know when the meeting is over. Of course, sometimes a meeting will wander off agenda, and that can be good or bad. Use your judgment. A. Introductions B. Description of the project [by the client; you have read the description they provided, but you want to hear it from them in person as well] C. Discussion of client goals [Try to come to an understanding of the non-software goals You can say to the client: the software in itself is not an end goal; rather, we hope the software will be able to support your true end goals, which involve helping people to learn a language or have a good experience at Reunion, etc.] D. Discussion of the essential app features [During this discussion, you're talking about the software, but you want the three or four central features to clearly refer back to the goals from #3. Separate features into those that are essential and those that would be nice if there's time. This agenda item might produce drawings, miscellaneous lists, etc.] E. Construction of a plan / to-do list [A couple items on your to-do list will be to send the clients screen mockups/drawings for feedback in about a week, and to show them a running prototype with at least the basic navigation in place by mid-May. But perhaps your app will need a server side, or access to an HTTP-based API with college data, etc. Somebody will need to talk to whoever owns the data, and you'll need to figure out where the server side gets hosted, etc. Depending on the project, there may be lots of idiosyncratic tasks to handle early in the project. Try to write those down during this meeting. Also, write down any basic information you need to know to do the work. Phone numbers, URLs, names of people, etc.] 3. What is professionalism? 4. Other notes Focus on customer goals. This is harder than it sounds. Customers and developers are both bad at app design (with occasional exceptions on both sides) Customer contempt is a genuine problem Shaun: "Bring me problems, not solutions" Professionalism: of what does it consist? respect, communication, timeliness, preparation, listening, engagement, responsiveness,... Atticus Finch