CT2 Development Process v2

From UG

Revision as of 03:19, 27 July 2009 by Alex (Talk | contribs)
Jump to: navigation, search


! This is UNDER CONSTRUCTION (NOT COMPLETED YET). Old version of this article here: CT2 Development Process


Contents

Intro

This article defines what methodology, roles, workflow, etc we use in CT2 Web Software Development.

CT2 Supercomponents

CT2 System is large and can be divided into the following supercomponents (supertasks):

  • Acc
  • Client App
  • OpsReps
  • Ops
  • OpsPdfs
  • Admin
  • Misc

Each supercomponent has its own Development team, project plan, etc.

Some coordination between teams is needed because supercomponents are interrelated to a certain degree.

CT2 Team

CT2 Acceptance Board (The Board)(Committee)(Demo Meeting) Group of people who:

  • initiated the CT2 project
  • oversees general progress
  • demo meeting is conducted for The Board
  • makes final decision about acceptance, tweaks, course of the project

Chairman of Acceptance Board

  • person who makes final decision in case there is a conflict


CT2 Systems Architect

  • Technical leadership of CT2 project

CT2 Project Manager

  • time/scope leadership of CT2 project

CT2 Supercomponent Team

Each CT2 Supercomponent Team consists of 2 groups of people:

  • Business Team (Client/Sponsor)
  • (Software) Development Team (Vendor)

CT2 Supercomponent Business Team

Business Analyst

  • logistics/transportation expert/manager
  • invents, initiates features, components, formulates business needs and requirements
  • communicates/transfers these requirements to Systems Analyst

Systems Analyst

  • IT expert, core knowledge of logistics/transportation required
  • interview Business Analyst
  • creates wiki spec doc that describes detailed business requirements and specifications
  • this wiki spec is all developer and QA need to fully implement feature/component
  • transfers specs to development team

Project manager

  • time/scope management expert
  • accountable for delivering component on time and on budget
  • managing/coordinating business phases of CT2 Software Development Worflow (see below)

CT2 Supercomponent Development Team

Development Manager - leader of the development team

  • coordinates development effort
  • manages resources
  • manages dev phase of proj plan: detailed development schedule that includes phases of development, bugfix, QA, graphics (for every sub-component/dev task)
  • collects updates from developer, QA, graphic designer regarding deadlines
  • if there is a chance for ETA to be postponed then he must notify Project Manager ASAP and they both decide what to do: move tasks around, add resources or push ETA forward or do something else

QA Engineer

  • makes sure that specs are complete
  • creates test plans
  • runs test plans
  • forwards bugs to developer
  • provides ETA for his work to Development Manager
  • must immediately notify Development Manager if his ETA can slip

Developer

  • makes sure specs are complete
  • implements new sub-components, changes, tweaks, bug fixes
  • deploy, forwards his work to QA
  • provides ETA for his work to Development Manager
  • must immediately notify Development Manager if his ETA can slip

Graphic designer

  • responsible for creating overall Look and Feel concept
  • creates Style Guide
  • creates all graphics for application
  • provides ETA for his work to Development Manager
  • must immediately notify Development Manager if his ETA can slip

CT2 Task and Bug Management System

We use Mantis software as a main CT2 Tasks and Bugs Management System.

Read this section as a separate article here: Mantis and CT2

CT2 Task Types

All tasks (ativities) we classify into:

  • major changes:
    • request for new components
    • request for new version of existing component
  • minor changes:
    • request for tweak (minor change of existing component)
  • bug
  • etc

CT2 Workflows

For each task type as defined above there is a special workflow.

Read this section as a separate article here: CT2 Workflows

CT2 Project Method and Plan

Read this section as a separate article here: CT2 Project Method and Plan

Intro to Scrum and Sprints

  • Currently we use Scrum method.
  • Supercomponent Backlog is complete set of tasks required to release supercomponent
  • It consist of 4 sub-sets:
    • a) set of known bugs
    • b) set of known tweaks
    • c) changes with specs completed and accepted by dev team
    • d) changes with specs not completed or not accepted by dev team

If d) is empty then it is possible to create complete project plan for release - it is estimated schedule with all tasks included

  • Under CT2 version of Scrum we split development effort and timeline into 1 week long segments called Sprints
  • Before the start of the Sprint, Team is looking at current state of Supercomponent Backlog and selects a number of tasks for next Sprint based on:
    • Supercom Proj Plan
    • prioity of tasks
    • size of tasks
    • resources available, etc.
  • This set of tasks is recorded and after end of Sprint compared with actual
  • By the end of Sprint scheduled tasks are fully developed and presented at Demo meeting
  • If during Sprint it is clear that given task can't be completed by the end of Sprint then Dev Manager and SA decide between the following options:
    • continue working on task but not show on Demo meeting
    • stop working on this task and instead add other smaller tasks that can be completed by end of Sprint
    • cancel some other lower priority tasks to be able to finish task at risk
    • add time
    • add resources
    • reduce scope of that task
  • If Release Date for supercomponent is fixed then all Sprints must be planned in advance so that they cover entire backlog for final Release.
  • If Release Date for supercomponent is not fixed then planning can be done just for next week.
  • Note that conventional approach is to estimate each task and build a sequence (plan). One of the advantages of Scrum is that it has always same distance between milestones.

Read more about Scrum here: http://en.wikipedia.org/wiki/Scrum

Release Procedure

All accumulated code in SVN Trunk (on /CyberTrax) released at once.

In the future we will have bugfix releases

Communication

Through Mantis

If there is a question regarding task then:

  • post question into Mantis notes
  • set task to feedback
  • assign to person you are asking
  • if urgent contact that person in Skype

Through email

  • If there is a general question - use email. CC to your manager and others as required
  • Everyone must check email at least 2 times a day: at the beginning and at the end of workday

Comm between Sys Analyst and Dev Manager

They agree on how to reach each other during extended timeframe.

Urgent Communication

  • we must define what can happen and how to reach someone we need to reach to solve urgency

Weekly Status Meetings

  • Why: These meetings are group chats in Skype with Agenda to update each other on progress
  • Who: Dev Team + Sys Analyst
Client App Team (summer 2009 schedule): Tuesd, Thur: 10-10:45am NY time
Reports and Accounting Team (summer 2009 schedule): Tuesd, Thur: 9:15-10am NY time

Communication Hours

  • Who: Dev Team + Sys An
  • What: All must be available in Skype
  • Why: In case somebody needs to discuss not through Mantis, but "live" through chat
  • When:
For All Super Components: Mon, Tue, Wed, Thur, Fri: 9-11am NY time
  • If somebody can not attend he must notify Dev Team Lead and give alternative time frame that he is available same day

Vacations and Days Off

  • Must notify Dev Team Lead as much in advance as possible
  • Dev Team Lead must post this info into Dev Calendar
Personal tools