Agenda

Final Exam Preparation

Session #12 is the final exam, worth 25% of the COMP1950 grade. It is split into two sections, each of equal weight:

Collaborative Coding

Working with a team on a multiple file project presents several challenges to the developers: How will we ensure all team members have the latest copy of the codebase? How do we track what each team member has contributed to the project? Collaborative frameworks provide a mechanism for project management that is crucial for team based development.

Collaborative Workflow

  1. A team member makes updates to local files
  2. After testing their work, they commit to the changes
  3. After committing the changes, local files are synced with publicly shared files
  4. Publicly shared files are updated, and the updates are propagated to the local files of other team members

Version Control Systems

A Git is a Version Control System (VCS). Open source, created by Linus Torvalds of Linux fame. It allows you to update, change, track all of your changes to any code you are working on.

If you don't have access to a Git server, there are a few services that allow you to do the same. The most well-known, and used, is GitHub.

Using GitHub

Register

Install Git GUI

Create A Repo

Update And Commit Changes

From here on in, adding files is fairly easy. You can add them in Explorer/Finder and git will track which ones are new or have changed.

Commits are like 'waypoints' that mark important stages in the progress of a project. They help to track what each developer has contributed as well as providing the option to 'revert' a project back to a previous state.

Reviewing changes

After publishing, repo files will be available online from the git server.

Collaborative code editing

Clone a Repo

Adding Collaborators

The owner of a repo can decide who, if anyone, is allowed to contribute to the code.

Collaborating

GitHub Fundamentals

We have only covered the mere basics of Git and GitHub today. There is a LOT more it can do and can save your bacon when you have your code committed and versioned properly. Git takes much of the work out of keeping versions of your code, but it doesn't come easy. Like any other technical skill it takes practice, discipline and commitment to keep it going.

Methodology: Site Planning Overview

A methodology is an organised, documented set of procedures and guidelines for one or more phases of the web development life cycle, such as analysis or design. A step-by-step "cookbook" approach for carrying out the procedure; and an objective set of criteria for determining whether the results of the procedure are of acceptable quality.

More than just Project Management, but it is derived from it.

Keys to remember

Why have a Methodology?

Generally, there are 5 accepted phases in Web Development Methodology:

However... I have added 2 steps that I think are critical in selecting and maintaining successful projects:

Phase 0 - Client/Project Selection

If you want to start a project, it is important to know who your client is, who your team members will be, and what your chance of success is.

Bad Client Early Warning:

Good Clients Early Warning:

If you see any of the early warnings, think to yourself: How much do I need this job? Sometimes it is better to find yourself a better account rather than suffer through a bad one.

If your employer is your client, get into the habit of documenting everything you do, and everything that the project is expected to accomplish.

Phase 1: Definition

Work with your client to gather as much information as you can about their company/product/promotion

Client Questionnaire

One of the challenges of development for a client is determining the needs and wants that must be met, and those that might be optional. In the early stages of a project, have your client fill out a questionnaire to better understand where they are coming from.

The questionnaire is not only useful to the developer(s), it helps the client to get a clearer understanding of what their needs are.

Understanding Your Audience

Setting Goals

Creative Brief

Project Plan

Project Team

Schedule

Budget

Kick it off!

Phase 2: Site Development

Review Existing Content

Sitemapping

Page View

Wireframing

Labeling the site

Defining User Paths

Phase 3: Design

Starting the Creative Process

Brainstorming

Presenting designs to the client

Creating a protosite

Create final templates

Phase 4: Production and Testing

This is the GET IT DONE phase. Take everything you have planned and put it all together. This is where the coders, application developers, designers and client all work together.

Tracking Progress

Production

Testing

The basics of Quality Assurance (QA) Testing

Levels of QA Testing

Your client may only be interested in the most basic levels of QA testing. Be sure that they understand what the consequences of skipping/skimping on testing are!

Having stated that, there are levels of testing you can do to satisfy your client (and yourself!):

Prioritizing and fixing bugs

For most projects, the bugs will arise during early in the development phase, but some squeak through into the later phases and can slow a project way down. In some cases it might be better to delay the launch of a site in order to fix a critical bug than it is to go live with a "Show Stopper". If the launch date is solid and cannot be changed, consider moving resources to the problem area in order to reach resolution faster.

Tip: Fix the visual issues as early as possible. These are the ones the client will "see".

It is important to document major deficiencies so that you have a record of them existing. Mark them with the following:

Conducting a final check

Once the site has been checked through QA, make sure that you run through a final check on a staging server. All conditions and scripts should be "real-world" instead of development/test data. This can be done easily by getting everyone from the client and development sides to hammer the site for a day or two, just trying out the site.

This has an added benefit of giving the client a way to experience the site as a user would, preparing them for any questions that might arise when the site launches.

Phase 5: Launch

Handing off the site to the client. This section is generally straightforward. The site has been tested and should be ready for prime time.

Tasks to be completed at this phase:

Going Live

Phase 6: Epilogue - Maintaining the Site

Use web analytics to track the success of your site(s): Guide to Web Analytics and Measurement

Keys to Success

Spend lots of time discovering, defining, planning, clarifying.

It will help when it comes to Production.

One Decision Maker

Make sure you get ONE decision maker if at all possible. If you have a team or committee, get them to nominate a single contact person

Get it in writing!

Make sure you have your primary decision maker physically signs off on each deliverable when they are satisfied.

Track Your Progress

Use a calendar, project management software, task list, whatever, but track your progress!

Content is King!

Fancy layouts and cutting edge design matter for only the smallest percentage of sites. The rest require compelling content. Don't let your client drive you to the bleeding edge.

Working as a Team

A developer rarely works in a vacuum. Acting as a part of a team requires several non-technical skills. Effective teams communicate well and keep each member engaged and active.

To Do

No more quizzes!