1 SOFTWARE SYSTEM DEVELOPMENT Spring 2010 2 About The Course What this course is about? 3 Hands-on experience with methodologies , technologies and tools for different job roles and activities in a software development organization Some of software organization job roles/tasks 4 Business Analyst Product Manager User Interface Designer Software Project Manager Software Developer Program Manager Software Architect QA Manager Software Configuration Manager Maintenance and Support Engineer More? Prerequisites 5 Basic Software Engineering Course Basic Java skills Desirable but not must Some industry experience Basic Project Management Concepts Keen interest in practical applications of software engineering methods. Technology Focus 6 Tools of the trade Enabling technologies GWT, App Engine Mobile Servlets, JSP Google Frameworks and Services RDBMS/SQL/JDBC, ORM/Hibernate Web Programming HTTP, XML, JavaScript, Ajax Persistence Eclipse, UML Tools, SVN, Ant, Hudson, JUnit, Bugzilla J2ME, Android Enterprise and Distributed EJB, RMI, JAX-WS Holistic approach 7 A taste of what it’s take to bring an idea to the software product Experience every(almost) stage of software product development lifecycle Subjects (technologies and methodologies) are covered at very high level. Blend of methodologies, ideas and techniques from software engineering, product management, project management Course Organization 8 Learn technology or methodology for a task Try on a class project Share your experience with the class Goal: every participant will get exposed to the major aspects of each job role Startup environment 9 2-3 software product ideas will be presented in class Students form 2-3 groups A group will have multiple roles in multiple projects (e.g. group A might play a customer for project A and a product manager for project B) Tentative Lesson Plan 10 1st hour: Presentation of technologies or/and methodologies useful for next assignment 2nd and 3rd hour: Individual presentation on technologies/tools Group presentation on a project tasks Discussion , brainstorming Small deliverables from each group for every class Group deliverables 11 Usually < 10 slides or short demonstration E.g. requirements and design documents Very short (1-2 pages or table) but very informative Stable final release Grading 12 Exam 50% Basic concept from methodologies and technologies studied Group and individual presentation 40% As described above In-class participating 10% Comments, discussions, criticism, brainstorming 100% grade for 100% effort 13 Plan your time for the course 14 The course is very demanding in terms of your time Some portion of the assignments can be done while driving, walking etc. But eventually, You’ll have to write code , prepare presentation and write documents Plan for at least 2 weekly hours for assignments Hopefully, the knowledge and experience you’ll get is worth it! Please introduce yourself 15 Name Academic background Undergraduate degree Current status and courses already passed Work experience Roles, technologies , tools you are or were exposed at your work Your expectation from the course “Just for the credit” is OK Starting from myself 16 Sasha Apartsin apartsin@gmail.com Academics Industry certifications B.Sc. in Computer Science ,Technion M.Sc. In Computer Science ,Weizmann M.Sc. In Management ,Polytechnic Institute of NYU Currently Ph.D. @Tel-Aviv University Project Management Methodologies (PMP from PMI) Software Development/Management Methodologies (CSDP from IEEE) Product Development/Management Methodologies (NPDP from PDMA) Industry experience From 1991 in various roles (student, developer, development group manager, architect, product manager) at various organizations (startups, matrix corporations, independent consultant) and industries (networking, web, telecom, enterprise) 17 Product Ideas Proposed product ideas 18 “Really Good” Course Scheduling Service “Really Good” Resume Service “Really Good” Students Social Network Site Course Scheduling Service 19 It can be time consuming to come up with good course schedule/selection taking into account various constrains Courses already taken Courses available this semester Courses given only once a year Personal preferences (days, hours, lecturers, subjects) Course difficulty Friends preferences Resume Service 20 Some says the resume should be adjusted for each position its time consuming to adjust resume for every position The resume might be evaluated by different people at the potential employer company. Some looking for experience with specific technologies, other are looking for managerial experience. Sometimes people would like zoom in into specific project you mention in your resume and get more details Students social network 21 Updates from different courses you take are spread at different places Can’t easily connect to other students from your past courses Ask recommendations, opinions, advice from students who already took the course 22 A View on Software Product Development Process Simplified view on software product development process 23 Activities 24 Product Planning System Design Estimate, Plan and assign work Project Execution Design Inner working Project Planning Define the product Code, Test Deployment, Maintenance, Support Deliver to customer(s) Something is missing…. 25 Customer/User What is the difference? • Makes a buying decision • Accept deliverables • Use your product • Influence the customer “Cat food problem”: Buyer is not a user On the Web everything is mixed up…. Group Roles to experience during the course 26 Customer Product Planning Team Software architecting and design Project Planning Team Product requirements/specifications System Design Team Provide initial story and accept deliverables Plan and monitor activities Execution Team Develop , QA and deploy Approximate lessons breakdown 27 Only third of all software projects are successful 28 Top reason for failure: Lack of Communications Group-Role Assignments Table 29 Resume Service Social Network Course Scheduling Customer G1 G2 G3 Product Planning G2 G3 G1 Product Design G3 G1 G2 Project Planning G2 G3 G1 Execution G3 G1 G2 Group Assignment #1 30 “Customer” presentation next week 15 minutes, 10 slides Focus on a problem not on the solution Invent/Recall stories , persons, scenarios involving the problem Complain, make wishes Be ready to answer questions from the audience Open discussion on tools, product ideas, technologies Individual Assignment Eclipse IDE overview Install, compile simple Java project, share experience Demonstrate in class, read few articles You thought on cons and pros Google App Engine Read few article Write simple web app Demonstrate in class, share expirience