June 12: Jiwei's Appium setup instructions
June 4: final client demo
May 28: iOS push setup steps
May 28: Client Wrapup Task released
May 26: Final individual task assignment is up on Canvas. You can either do app testing (coding) or agile advice (reasoning and writing). Final submissions due midnight Wednesday of exam week.
May 14:Pariveda visit
May 5:Client kickoff reports
April 30:Team project demo day!
April 28:Weekly retrospections begin.
April 22:Deployment task released.
April 16: Results of first round of user tests due.
April 2: Supersonic setup report. Work in class on your first slice.
March 31: Welcome to EECS 394! No time to waste! Due today: 3 Pitches presentation.


TTh 11am - 12:20am


Abbott Auditorium, Pancoe


Important To get a permission number for this course for Fall 2015, you must fill in the prior experience survey , and then email me your request for a permission number. You must be logged in to your Gmail account to access the survey.

This is a class about learning to develop HTML5 mobile and web app products using modern sustainable practices that deliver value as quickly as possible to users, clients, developers, and the development organization. These practices usually go under the name of "agile" or "lean agile."

This course is not about programming. It's about software development. That means delivering high quality code early, often, and efficiently. That means constant reflection and and improvement in your development processes.

What you'll be doing a lot of in the next 10 weeks:

Required Meetings

This class involves a great deal of work with your team, your client and me. That means frequent face to face meetings. These are a requirement of the course. If you have trouble committing to the meetings below, contact me now. You may need to drop the course.

All meetings should lead directly to deliverables, designs for deliverables, or specific steps to take to improve your development process. If a meeting doesn't do this, it was a waste of time.

Programming Requirements

Substantial prior programming experience is required. I assume you already know or can quickly get up to speed with

The class discussions and assignments focus on development processes, not programming technology. Work is done in teams but all team members are responsible for all parts of the application.

Prior native mobile app development experience is not required. The ability to pick it up on your own is.

Development computer:

You need to have either a Mac, PC, or Linux machine suitable for software development, with plenty of memory and gigabytes of disk space. Laptops are best because they can be brought to the meetings to do demos and development.



The text for agile software development is The Agile Samurai by Jonathan Rasmusson. Don't be fooled by the casual style. This is a sound introduction, by a developer for developers, to agile software development.


The web will be a primary resource for technical details on HTML5, CSS and Javascript, but if this is new to you, I recommend getting a good book, such as Build Mobile: websites and apps for smart devices

Mobile Web Apps

In this class, we'll focus on mobile web apps and hybrid apps. That means that coding will be in HTML, CSS, and modern JavaScript, for the client front-end, and most likely for the backend. The advantages are

More specifically, we'll be using

These are complex frameworks. They provide excellent modern functionality, but there can be a steep learning curve. Every team member is responsible for helping every other team member learn the necessary skills.

Important: Building hybrid apps requires the Xcode development toolkit for iOS (available only on MacOS), and a Java development environment for Android. Cloud services can be used, but:

For iOS native app development, you must have a Mac with the current MacOS, an iPhone, and an Apple developer license ($100 / year, though we have some free one-year educational licenses).