Categorii: Tot - development - efficiency - acceptance - infrastructure

realizată de Alex Ostreiko 1 an în urmă

416

E-Commerce Website PM Plan

A well-structured project plan is essential for successful completion and involves several key phases and considerations. The initiation phase addresses environmental factors, including staff skills and the necessary infrastructure like office facilities and equipment.

E-Commerce Website PM Plan

project plan

Closing

Lessons Learned Document
Hand off Completed Product
Acceptance of the Product

Monitoring & Controlling

Risk Reassessments & Audits
Update Project Planning Documents
Monitor Stakeholder Engagement
Corrective Actions
Analyze & Evaluate Performance
Metrics to Measure Performance

Executing

Follow Agile Project Processes
Conflict Resolution
Team-building Activities
Evaluate Team Performance
Engage Team Members
Quality Audits
Continuous Improvement

About Planning

communication
velocity
milestones
implement mechanisms for

Adaptation

Inspection

Transparency

focus intention

organize autonomously

flock of ducks

objective

goal

address risks
we don't want to go in blind
to make a plan and continuously check & make sure we are following the plan

Project Artifacts

Assumptions
For clarification of questions regarding the process and methodology, the Project Team agrees to align with the best practices of Agile methodologies.

Méthode agile

The methods and approaches outlined in this document are acknowledged by the Project Team and the Client as the framework for this project.
The project has full support of the Project Team and the Client
Definitions
The Product

The Product is the implementation of the product description in the Statement of Work section, built by the Development Team in close collaboration with the Client.

The Development Team

The Development Team consists of the members of the Project Team that are employed by Syspark.

The Project Team

The Project Team consists of all individuals who perform recurring activities on the project.

The Stakeholders

The project Stakeholders are all individuals that will use the completed Product.

The Client

The project Client is the organization that commissioned, and will accept the completed Product. The Client can be represented by anyone who speaks on behalf of that group.

Planning

Progressive Elaboration
Iterate
continually refine

scope

estimates

Change Management
Communication & Client Engagement
Process Improvement
Quality Standards, Processes & Metrics
Meetings
Iterations
Backlog
The listing of web development tools is enclosed to be used as reference by the Development Team

The Development Team has the final say as to what tools they will use to complete the activities

Consider JS framework for backend

React.js+Flux+Backbone.js+Polymer.js+ag-Grid

Flux and Backbone

Angular vs Backbone vs Ember

React

ag-grid

Polymer.js

WebComponents

Ember.js

Backbone+

Ag-grid

Dojo

grid

Meteor

course

Meteor + React tutorial

Criteria for choosing a framework

Long term utility & transferability of skills

Learning Curve

Job Market Competition

Regional Popularity

Momentum & Trends

sub-reddit stats

e.g. /r/reactjs/about/traffic

Google Trends

web dev tools best practices

SCM

git

GitFlow

CI

Jenkins PHP

Teamcity

PHPCI

Travis CI

Staging

Vagrant

scripted w/puppet

vagrant box add debian https://path/to/image.img

Development

Frameworks

reasons to choose Cake

experiential knowledge

feedback from context

nuances and tricks

top 7 from Winspire

top 13 from Mashable

Aura

Phalcon

PHPixie

Nette

CodeIgniter

Symfony 2

Yii 2

Laravel

Lithium

presentations

CakePHP

previously written code snippets

various nuances

most experience

IDE

PHPStorm

Git integration

Eclipse

egit

vim

Code

Standards

PSR-2

PSR-1

Code Standards Fixer

from Sensiolabs

"creators of Symfony"

php php-cs-fixer.phar fix /path/to/dir --fixers=linefeed,short_tag,indentation

php php-cs-fixer.phar fix /path/to/project --level=symfony

php php-cs-fixer.phar fix /path/to/project --level=psr2

sniffs & corrects

Code Sniffer

Code Beautifier

phpcbf

phpcbf --standard=CakePHP $file

Analysis

phpmd

PHP Mess Detector

PhpMetrics

static analyzer tool

software metrics reports

phpdcd

PHP Dead Code Detector

phpcpd

scan project for duplicated content

PHP Copy/Paste Detector

pdepend

software metrics

PHP_Depend

PHPLOC

LOC = lines of code

quickly measure size of a project

QA

ENB

Faster BEM/BEViS assembler

JS to build pages from JSON

create pages by configuration

parse JSON files

BEM entity

Modifiers

Elements

Blocks

enb-bem-techs

set of ENB technologies

Block-Element-Modificator

QA-Tools

BEM

based on Behat Mink

PageObjects

BDD

format

scenarios

then I should see: bar foo

when I run "ls"

and there are files "bar" & "foo"

Given that I am in directory "test"

Title: list 2 files in the directory that contains them

And/But [another outcome]

Then [outcome]

When [event]

And [more context]

Given [context]

Scenario: [title]

features

I want to list directory contents on screen

As a UNIX user

in order to see the directory structure

ls

the feature

the role

the benefit

name the feature

Behat

behat --init

Behat Mink

acceptance testing

control browser a la Selenium

inspired by Cucumber

features & scenarios

each feature is defined by scenarios

scenarios are listed at the bottom of the feature file

scenarios explain how feature should act under certain conditions

scenarios are the Acceptance Criteria

features/*.feature

BDD is TDD done right

Article with good examples in French

orig English

vfsStream

mock real fs

QA/QC tools

PHPUnit

Build Automation

Deployer

recipes

PHP

Chef

PHP resources

Capistrano

DSL

common uses

deploy a version from SCM

rollback

switch symlink

one or more servers

craft flexible scripts

PHP deployment with Capistrano

Phing

based on Apache Ant

XML build files

Dependency Management

pickle

extensions from pecl.php.net

based on Composer

Melody

Bower

Composer for JS

use with composer

bower install --save jquery

npm install -g bower

Composer

PHP the right way

Schedule
Activity List
Sequence Activities to determine predecessors & successors
Activity Resources
Create Work Breakdown Structure

A Release Candidate. Full redundancy with live system.

Admin Section running alongside WIMPS on live data. Training complete

Front-end CMS training & documentation complete

UX metrics, analytics, marketing & SEO tools

Integrate A/B tools

Themes

Retargetting

Produce a stable, usable version. Allow for partial deployment.

Full data exchanges between datacenters simulated. Gradual transition of services.

Admin Section tested by future users. Implementing feedback.

Front-end technical features & design specs complete. Implementing UX & UI feedback.

Produce a functional prototype.

A functional Admin Section. UI for data management. Member account control. Working CMS.

Integrate Business Logic & UI Libs. Achieve member account control & CMS

Establish code organization patterns to manage a large menu based application. Identify dependent widget libraries.

Routing

Forms

Rich Text Editor

Grids

Complete the main member interactive areas of the website

Discount Programs

Refer A Friend

Payment

Account Management

Program Membership

Acquire & Consume Discounts

Communications

Other Methods of Communication

Email Campaigns

Transactional Emails

Registration

Establish Scope, Lock-in Resources, Internal Prototype

Basic CMS

Create/View/Update Textual Content (Articles)

Basic Member Management

Separate & Secure Admin Area

View/Edit Accounts

Signup

Security

Validation

Deploy Rapid Development Environment. Establish Procedures & Protocols

Implement the branching model for Revision Control, establish code check-in procedures

Automatic syntax & code convention checking upon code check-in

Preliminary Database Structure Design

Map relationships sufficient to create prototype necessary to continue development

Analyze Javascript Frameworks

Construct scaffolding to start a large JS app

Analyze PHP frameworks

Select framework, create a prototype

Develop & commit to a mockup. Integrate the the look with the codebase

Branding

Acquire new branding details from 3rd party

Template

Integrate template with codebase

Analyze Requirements, select template that matches design

Project Scope
Detailed Requirements
categories

Quality

Project

Transition

Nonfunctional

Functional

Solution

Stakeholder

Business

Requirements Traceability Matrix

Traceability Matrix

avoid excessive detail

Having committed to a set of requirements, a team stops looking for ways to increase business value

Committing to a detailed set of requirements makes course adjustments more costly, and leads to missed opportunities.

A great number of requirements can only be known through assessing existing code

Iterative process

Requirements are gathered and discovered continuously throughout the project

Provide insight, and improve accuracy of projections for the Stakeholders.

Adjust deadlines or budget

Discover risks

Opportunities

Threats

Produce sufficient guidance for the Development Team to do work during the current Iteration.

external factors may necessitate a change in direction

rapidly respond to change

maintain connection with the business reality

the insights provided at the weekly Review meeting may impact the requirements for the next cycle

Plan Structure
Schedule Management Plan

Schedule Model Development

Accuracy levels

Initiating

High Level Risks
Plan Risk Management

v2

A continuous risk management practice will be implemented. Known and potential risks will be continuously entered into the Backlog and Sprint Log, and will be treated as regular defects. They will detail Risk Causes, Risk Triggers, Risk Impact, and a Risk Response Plan for each of the identified risks.

A continuous risk management practice will be implemented. Known and potential risks will be continuously entered into the Risk Register document which will detail Risk Causes, Risk Triggers, Risk Impact, and a Risk Response Plan for each of the identified risks.

Schedule Activities Associated w/Risk

mitigate

Antipattern checklist

Antipattern risk management

Defects are a form of User Stories

same attributes

Ready

Done

Difficulty

different attributes

Urgency

Severity

Risks are a form of defects

opportunities

if we are not taking advantage of an opportunity, it's a defect

threats

consider

Control Risks

Risk Contingencies

Risk Responsibilities

Risk Appetite

Risk Tolerance

Risk Threshold

1 week behind deadline

5% of some value

Plan Risk Responses

Outsourcing

off-the-shelf

Training & Orientation

Identify & Analyze Risks

External

Labour Issues

Should any member of the Development Team become unavailable for an extended period of time, the project may not be completed on previously forecast dates.

Organizational

In this context Organizational Risk refers to risks that arise due to poor communication, improper implementation of business rules and development processes.

Overconfidence

A common trait in expert professionals is to skip paperwork and work according to an improvised schedule

slide into code-and-fix chaos

Organizational Commitment

Lack of acceptance of the tools and protocols can introduce communication problems, defects, and deteriorated performance

fail to properly document work

take shortcuts

skip meetings

Overwork

If not managed, feature creep may affect staff stress levels resulting in deteriorated performance

Unrealistic Objectives

The Client may have the expectation to replicate the legacy system with newer technologies. Besides the developments in technology, since the legacy system was built, the consumer attitudes and behaviour have changed, and so did the nature of online commerce. Due to the maturing and proliferation of APIs and other services, the current online business model is a lot more modular with a strong trend towards maximum decomposition of monoliths.

Project Management

Scope Creep

Poor communication and unclear project goals can cause large features to be added forcing unsafe schedule compression, and technical debt.

Schedule Planning & Cost Estimates

The necessity to dismantle parts of the legacy system, and to reproduce their functionality in the Product introduces a degree of uncertainty.

Technical

Quality of Technology

Any complex implementation will have defects such as programming bugs and undesired side-effects. Insufficient code quality control resulting from inadequate code reviews or lack of unit and functional testing will increase rework and other costs.

Performance Risks

The current implementation of the website is tied to the legacy technology that acts as a performance barrier for the whole organization. To prevent overloading the legacy system, special considerations have to be made to operate within the tolerance limits of the legacy system.

Complex Technology

For historical reasons the Client stores data, and processes payments and memberships using a separately configured set of legacy technologies. That setup is not consistent with the industry’s best practices. Maintenance of that legacy system, and the requirement to integrate it with the website constitutes an overhead, and reduces the Development Team’s ability to produce accurate estimates.

initial statement

In accordance with Agile risk management principles, the Project Team commits to making risk management an intrinsic part of project lifecycle by encouraging transparency, inspection, and adaptation in all aspects of the project where risk is present.

Create Measurable Objectives
Milestone Schedule

Backstore

Payment Processing

Shopping Cart

CMS functionality

Integrate design with PHP code

Lock in design

Statement of Work
Product Description

Further, a secure back-end that can be used to perform these administrative functions:

Terminé

Back Store

Monitor and control the storefront.

Email Manager

Monitor statistics on transactional email activities.

Content Management (CMS)

An interface allowing the client to create, update or delete articles as well as control other items related to appearance or behaviour of the website.

The completed product will be a website which consists of a public front-end and a secure back-end. The front-end will have the following features:

Responsive Design

The website will employ modern browser technologies to take full advantage and maximize the use of features offered by mobile devices when viewed on mobile phones and tablets.

Storefront

Ability to select packages, and a secure checkout page where customers may enter their payment details.

Contact Form

Separate page

Member Registration

Consider possibility to have the registration form on marketing campaign landing pages, as an app in Facebook, and so on.

A separate page that contains a form with fields for the profile information. Allow possibility for a two-stage registration and use of third parties for authentication (Facebook, Google, Twitter).

Consider

Software development processes

Emergent Design

Big Design Upfront

website + admin + payment processing + mailing list, etc.

Business Case
why

It is important for the individuals doing the work to have some knowledge of the business case in order to understand the client’s needs and expectations.

How the product fits into the organization's strategic vision

we will acquire a DB of 1e5 customers, and we'll start emailing them in August

we plan to increase traffic 10x in the next 6 months

supplement Social Media efforts; most interaction takes place on Facebook

become the main hub for information, sales, memberships

Alternative Solutions

Social Media

A number of organizations have moved their principal points of contact with public onto social media websites such as Facebook. The nonprofit org does not currently have a Facebook page, but it has a website. Although social media presence is important for the nonprofit, at this point, a website upgrade is a more valuable project than full migration to Facebook.

Constraints

The Client is constrained to have the project fully completed by October 20XX. Any later delivery will result in lost sales and publicity for the Client.

Business Need

A Canadian non-profit needs to have its website upgraded. If this project is not undertaken, the client will lose revenue from lost sales and membership.

Why was the project initiated?

Demand

the Client may reevaluate Business Need in view of the project initiation findings

e.g.

add/remove/change features because of high or low complexity

complexity often becomes more visible when we start researching

change deadline if we can deliver a working product with basic critical features 3 months earlier, and then continue adding and improving features

What will happen to the client if project is not undertaken?

Environmental factors
what

Communication Channels

external

Regular meetings with the client allow the Project Team to prioritize work items that will bring the most business value to the client. Frequently scheduled inspection/adaptation sessions with the client assure that the Development Team can respond to external changes with agility. For this project it is recommended that a Review meeting with the client or a client’s representative be held every week when the Development Team will demonstrate, and the Stakeholders will inspect and accept the deliverables that were scheduled to be built during the week. The Stakeholders will apply the Acceptance Criteria that are agreed upon at the Retrospect meeting.

To remain responsive to external factors, and to incorporate feedback from Client quickly, Project Team is committed to maintaining frequent communication with Client in capacities outlined as best practices for Agile projects.

internal

meetings

Initial

Project Team recognizes value in Agile approaches, and will implement high-bandwidth communication between team members by aligning with meeting structure and frequency according to the best practices of Agile management.

Detailed

Retrospect. The Development Team will meet at the end of every week to review and adjust the Acceptance Criteria, and to assess the team efficiency during the previous week. This meeting is timeboxed at 3 hours.

Daily Stand-up. The Development Team will hold daily Stand-up meetings that will be timeboxed at 15 minutes.

Planning. The Development Team will meet in the beginning of each week

Efficient self-organizing teams require high-bandwidth communications in order to maintain optimal levels of agility and responsiveness, and to take full advantage of each others’ specific skills. Team meetings are collaboration tools, they constitute key opportunities to cultivate and practice transparency, inspection and adaptation. Therefore, the Development Team will ensure proper communication by holding at minimum the three regular internal meetings described below:

phone

email

chat

Infrastructure

equipment

development computers

two monitors

facilities

Syspark offices

Syspark makes its office available for the Development Team to perform work on the deliverables, and to hold meetings. The Development Team will determine the most efficient location and configuration to perform their work. The team should be able to explain how its choice improves efficiency.

who

HR

Staff skills

when
where
Inputs from previously completed processes/projects
Lessons learned
list