SOFTWARE SYSTEM DEVELOPMENT
Spring 2010
1
About The Course2
What this course is about?3
Some of software organization job roles/tasks
4
Prerequisites5
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 Focus6
Tools of the trade Eclipse, UML Tools, SVN, Ant, Hudson, JUnit, Bugzilla
Enabling technologies HTTP, XML, JavaScript, Ajax
Persistence RDBMS/SQL/JDBC, ORM/Hibernate
Web Programming Servlets, JSP
Google Frameworks and Services GWT, App Engine
Mobile J2ME, Android
Enterprise and Distributed EJB, RMI, JAX-WS
Holistic approach7
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 Organization8
Goal: every participant will get exposed to the major aspects of
each job role
Startup environment9
Tentative Lesson Plan10
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 deliverables11
Grading12
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% effort13
Plan your time for the course
14
Please introduce yourself15
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 myself16
Sasha Apartsin [email protected] Academics
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
Industry certifications 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)
Product Ideas17
Proposed product ideas18
Course Scheduling Service19
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 Service20
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 network21
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
A View on Software Product Development Process
22
Simplified view on software product development process
23
Activities24
Product Planning Define the product
System Design Design Inner working
Project Planning Estimate, Plan and assign work
Project Execution Code, Test
Deployment, Maintenance, Support Deliver to customer(s)
Something is missing….25
Customer/User What is the difference?
“Cat food problem”: Buyer is not a user On the Web everything is mixed up….
Group Roles to experience during the course
26
Customer Provide initial story and accept deliverables
Product Planning Team Product requirements/specifications
System Design Team Software architecting and design
Project Planning Team 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 Scheduli
ngCustomer G1 G2 G3Product Planning
G2 G3 G1Product Design
G3 G1 G2Project Planning
G2 G3 G1Execution G3 G1 G2
Group Assignment #130
“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