CT2 Development Process v2

From UG

(Difference between revisions)
Jump to: navigation, search
(CT2 Task Types)
 
(13 intermediate revisions not shown)
Line 1: Line 1:
-
+
[[Category:Software Development Processes]]
-
<span style="color:orange; font-size:14pt">! This is UNDER CONSTRUCTION (NOT COMPLETED YET). Old version of this article here: [[CT2 Development Process]]
+
<span style="color:red; font-size:14pt">! This is OUTDATED! Old version of this article here: [[CT2 Development Process]]
</span>
</span>
Line 54: Line 54:
-
'''Business Analyst'''  
+
'''[[Business Analyst]]'''  
-
* logistics/transportation expert/manager
+
 
-
* invents, initiates features, components, formulates business needs and requirements
+
 
-
* communicates/transfers these requirements to Systems Analyst
+
'''[[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'''
'''Project manager'''
Line 105: Line 99:
We use Mantis software as a main CT2 Tasks and Bugs Management System.
We use Mantis software as a main CT2 Tasks and Bugs Management System.
-
Read '''[[Mantis and CT2]]''' article!!!
+
Read this section as a separate article here:  '''[[Mantis and CT2]]'''
== CT2 Task Types ==
== CT2 Task Types ==
Line 118: Line 112:
== CT2 Workflows ==
== CT2 Workflows ==
-
Read this section as a separate article here: '''[[CT2 Workflows]]'''
 
-
== CT2 Project Planning ==
+
For each task type as defined above there is a special workflow.
 +
Read this section as a separate article here: '''[[CT2 Workflows]]'''
-
=== Intro to Scrum and Sprints ===
+
== CT2 Project Method and Plan ==
-
 
+
-
Scrum is an approach we use to scheduling components/tasks into development.
+
-
 
+
-
Planning is based on weekly or bi weekly or any regular time intervals that is called ''Sprint''.
+
-
 
+
-
Before the start of the Sprint team is looking at current tasks backlog (new components, bugs, tweaks, changes, etc) and select a number of tasks for next Sprint based on prioity, size of tasks, resources available, etc.
+
-
 
+
-
Note that conventional approach is to estimate each task and build a sequence (plan). One of the advantages of Scrum I guess is that it has always same distance between milestones.
+
-
 
+
-
So under Scrum if there is an ETA slip for given task then instead of re-scheduling milestone (demo date) we move delayed component to next demo and ideally work on and show something else instead for current milestone (demo).
+
-
 
+
-
If Release Date fo supercomponent is fixed then all Sprints must be planned in advance so that they cover entire backlog.
+
-
 
+
-
If Release Date fo supercomponent is not fixed then planning can be done just for next week.
+
-
 
+
-
=== Project Planning with Mantis and Scrum ===
+
-
* Developer must set '''emh'''(estimated man hours) hor each task
+
Read this section as a separate article here: '''[[CT2 Project Method and Plan]]'''
-
* QA must indicate his '''QAemh'''
+
-
* Based on: Dev emh, QA emh, ds (priority) and other constraints (like other tasks, days off, etc) Dev Team Lead together with QA and Developer must create Task List for next Sprint.
+
-
* If Sprints are say weekly and start on Monday then this Task List consists of all tasks that will be ready for Demo on Friday
+
-
* For all these tasks Dev Team Lead must set '''due(ETA)''' field
+
-
* This Task List for next Sprint must be approved by all and presented to Sys Analyst and to the last Status Update Meeting of previous week.
+
-
* These ETA will be included into '''high''' level Proj Plan and be presented to '''the Board'''.
+
-
* Using Mantis sorting and filtering features these tasks could be easily extracted and migrated to xls or other format.
+
-
* I suggest incorporating into planning 1 day / week of developer time for tweaks and bugs --[[User:Alex|Alex]] 06:30, 23 July 2009 (UTC)
+
== Release Procedure ==
== Release Procedure ==
Line 198: Line 168:
* Must notify Dev Team Lead as much in advance as possible
* Must notify Dev Team Lead as much in advance as possible
* Dev Team Lead must post this info into Dev Calendar
* Dev Team Lead must post this info into Dev Calendar
-
 
-
 
-
 
-
[[Category:PM]]
 

Current revision as of 19:46, 24 May 2010


! This is OUTDATED! Old version of this article here: CT2 Development Process


Contents

[edit] Intro

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

[edit] 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.

[edit] 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

[edit] CT2 Supercomponent Team

Each CT2 Supercomponent Team consists of 2 groups of people:

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

[edit] CT2 Supercomponent Business Team

Business Analyst


Systems Analyst


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)

[edit] 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

[edit] 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

[edit] 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

[edit] CT2 Workflows

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

Read this section as a separate article here: CT2 Workflows

[edit] CT2 Project Method and Plan

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

[edit] Release Procedure

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

In the future we will have bugfix releases

[edit] Communication

[edit] 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

[edit] 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

[edit] Comm between Sys Analyst and Dev Manager

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

[edit] Urgent Communication

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

[edit] 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

[edit] 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

[edit] 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