Software System Development

advertisement
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
Download