WHAT?已经有人在用 ONES 管理一个亿的项目

1. ONES Project

在这里插入图片描述

图1-1、ONES Project 项目概览图

    ONES Project 是服务于项目管理的一款产品。根据项目具体管理工作流程,分析匹配适用场景来高效的、规范的管理我们的项目。

适用场景

  • 通用项目管理
    项目进度,迭代计划,报表统计,任务管理,工时统计
  • 敏捷研发管理
    快速迭代
  • DevOps 持续交付
    项目自动化

2. 团队成员管理

    创建项目前,首先进入团队配置中心成员管理,则可以通过邮箱邀请指定用户加入团队,同时邀请时可配置被邀请用户的产品授权项。也可变更对团队成员的授权产品项。
    此处仅控制产品授权,团队成员角色、用户组、项目管理等权限在后续项目配置设置中进行管理。

在这里插入图片描述

图2-1、成员管理邀请新成员图

    仅有 ONES Project 产品授权的用户登入系统后欢迎页如图2-2、ONES Project 欢迎页图。
    未创建项目时概览页只有仪表盘,Project 这里已经创建了一个项目,看这项目名称,难道?莫非?是的,没错;这里是王先生的小目标,我们一个亿的 ONES Project。

在这里插入图片描述

图2-2、ONES Project 欢迎页图

    成员管理可创建用户组,编辑用户组可关联项目团队成员。项目权限支持按用户组、部门、成员、角色进行分配

在这里插入图片描述

图2-3、用户组列表图

3. 创建项目

    我们可以在 ONES Project 新建项目,也可以在项目概览页快捷入口进行创建。

在这里插入图片描述

图3-1、ONES Project 项目列表图

    新建项目命名为 A billion project,此处以敏捷项目管理模板为例。新建项目时维护项目团队人员,后面也可以动态增减项目团队成员。

在这里插入图片描述

图3-2、新建敏捷项目管理项目图

在这里插入图片描述

图3-3、初始化项目团队成员图

敏捷项目管理模板支持项目概览、迭代、迭代计划、需求、缺陷、任务、筛选器、文档、报表、成员等组件。
瀑布项目规划模板支持项目概览、项目计划、里程碑、交付物、任务、文档、报表、成员等组件。
通用任务管理模板支持项目概览、任务、报表、成员组件。

4. 项目配置中心

    项目配置中心管理属于产品层级。

    进入 ONES Project,可以看到已创建的项目列表。列表展示项目状态、团队成员数量、项目计划起止日期、工作项完成度等项目属性。
    项目配置中心创建的配置项,在具体的项目中可以选择性使用,可以使用也可以不使用。某个项目若想要引入一个新配置项,需拥有产品管理权限的成员在项目配置中心维护新的配置项,该项目下才可选择项目配置中心提供的配置项。

    为了方便截图,下面会把左侧菜单暂时隐藏。

4.1 项目和角色管理

  • 项目:
    查看项目和管理项目的权限分配。
  • 项目属性管理
    项目属性管理,可维护自定义项目属性
    此处著作权,专利,总裁办是新建的项目属性,其他属性是系统属性。
  • 项目状态管理
    默认包含未开始、进行中、已完成三种状态,可以考虑新建已关闭状态。

在这里插入图片描述

图4-1、项目属性列表图

在这里插入图片描述

图4-2、项目下配置项目属性图
  • 角色
    角色管理,可维护自定义角色,此处角色管理是产品层级的概念,此处创建的角色在项目的成员角色管理中,作为系统提供的可选角色项。项目角色需要到具体项目进行配置,添加已创建的自定义角色,进入角色添加项目团队成员。
  • 产品权限
    支持管理版本权限和批量移动工作项的权限分配

在这里插入图片描述

图4-3、角色管理列表图

在这里插入图片描述

图4-4、项目成员角色配置图

4.2 工作项管理

敏捷研发管理模板包含工作项需求、子需求、任务、子任务、缺陷等工作项。基于实际工作管理模式,可以考虑扩展任务为开发任务、测试任务,缺陷拆分为 Bug 和优化等。

  • 工作项类型
    工作项类型支持新建,默认工作项类型包括需求、子需求、任务、子任务、缺陷等
  • 工作项状态
    工作项状态根据具体工作项类型来设计,比如缺陷包括测试提交,已确认修复忠,已修复,测试中,挂起,待回归,回归通过,回归不通过,关闭等状态。
  • 工作项属性
    工作项属性用于配置工作项需要的显示字段。比如工作项名称、计划起止日期、预计工时、实际工时等

5. 项目设置

    项目设置属于项目层级。
    上面的项目配置中心是更高层级的管理,项目设置才是当前项目的具体配置入口。在项目配置中心创建的角色,工作项,项目状态等,不会直接沿用到具体的项目。在某个项目中可以选择性的维护,项目配置中心创建的配置项。比如配置中心角色管理维护的新角色,需要在项目下的成员组件下添加角色,而不是新建角色;只有在项目配置中心可新建角色,项目中来添加项目配置中心已维护的角色。

5.1 项目配置

  • 项目状态
    一般的包含未开始、进行中、已完成三种项目状态,来展示项目的执行进度所处阶段。当然也支持自定义扩展项目状态。
  • 项目属性
    项目属性用于配置项目需要的显示字段。比如创建人,负责人,执行进度,团队成员,项目公告,项目状态,项目公告等。也可以添加项目配置中心维护的项目属性,比如上面创建的"著作权","专利"等属性。在项目概览图可自定义透出项目中的属性项。

5.2 权限配置

    包含项目权限 、迭代权限、里程碑计划权限、交付物权限、工作项权限;以上权限配置支持具体到角色、用户组、部门及成员。

在这里插入图片描述

图5-1、项目设置权限配置图

具体权限项如下

  • 项目权限
    查看项目、管理项目、查看项目报表的权限
  • 迭代权限
    管理迭代、成为迭代负责人权限
  • 里程碑计划权限
    管理、编辑、查看、更新里程碑计划权限
  • 交付物权限
    查看交付物权限、"提交、编辑和删除交付物"权限、管理交付物权限
  • 工作项权限
    工作项权限可以用于定制工作项的操作权限控制。
    创建、编辑、查看、删除工作项权限,变更工作项状态,编辑关注者,成为负责人,导出工作项列表,管理工时等权限

5.3 工作项类型

在这里插入图片描述

图5-2、项目设置工作项类型管理图

    默认提供了五种工作项类型,需求、缺陷、任务、子任务、子需求,基本上满足大多工作场景。
    一般的,由团队产品人员发起录入需求及子需求,研发负责人接入并负责拆分为各个任务及子任务。具体任务设置负责人到具体的团队研发人员,任务被完成后,转到团队测试人员。测试过程出现 Bug 则在父任务下录入缺陷,交由所属父任务开发人员来处理,Bug 被修复后,交由测试人员验证通过关闭缺陷。测试通过的任务可关闭。
    当然如果团队需要细化工作项或者要扩展工作流程,可以新建工作项,维护工作流。比如可以把缺陷细分为 Bug 和优化。把任务扩展为 Story 和 Task,每一个 Story 对应一个Task,Task 一直挂在开发人员身上,Story 随着工作流流转。
    支持配置工作项变更通知和到期提醒,当工作项变更时或距离截止时间满足阈值检测条件时会通知到工作项关联的团队成员,一般是通知工作项负责人。通知方式支持"通知中心"、“邮件”、“钉钉”、"企业微信"四种方式。可以按角色、用户组、部门、成员等维度来配置会收到通知的成员。

  • 工作项属性
    定义:工作项属性可以用于定制对应工作项类型的显示字段;
    设计:项目设置下默认拥有系统提供的工作项属性,可添加项目配置中心已维护的属性,新建工作项属性需要在项目配置中心进行维护。
  • 工作项权限
    定义:工作项权限可以用于定制工作项的操作权限控制;
    设计:权限控制支持按角色、用户组、部门、成员进行配置。
  • 工作项工作流
    定义:工作流可以用于定制对应工作项的在不同状态阶段的流转。
    设计:比如下图,"任务“工作项的工作流,任务生命周期状态流转未开始>>进行中>>已完成,支持自定义工作流,注意需要设置工作流初始状态,此处任务工作流初始状态为未开始。

在这里插入图片描述

图5-3、任务工作项的工作流图
  • 通知
    设计:通过配置通知方式来通知团队成员。支持通知中心(系统通知)、钉钉、邮件、企业微信四种通知方式。同样的,通知也是按角色、用户组、部门、成员进行配置。
  • 提醒
    设计:通过添加提醒规则,配置工作项限制,满足该限制时,发送提醒到指定团队成员
    区别:工作项通知可以用于定制哪些成员可以收到工作项动态的通知提醒并设置通知渠道;工作项提醒可以针对工作项的关键时间推送消息提醒

ONES Project 管理:WOW!这就是你使用 ONES 管理的一个亿项目
Powered By niaonao

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
抱歉,我是一个语言模型AI,无法编写完整的项目管理系统。但是,我可以为您提供一个简单的项目管理系统的代码框架,您可以在此基础上进行进一步的开发。 ``` import java.util.ArrayList; import java.util.Scanner; public class ProjectManagementSystem { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<Project> projects = new ArrayList<>(); while (true) { System.out.println("What would you like to do?"); System.out.println("1. Create a new project"); System.out.println("2. List all projects"); System.out.println("3. Edit a project"); System.out.println("4. Delete a project"); System.out.println("5. Exit"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: System.out.println("Enter project name:"); String name = scanner.nextLine(); System.out.println("Enter project description:"); String description = scanner.nextLine(); System.out.println("Enter project deadline (MM/DD/YYYY):"); String deadline = scanner.nextLine(); projects.add(new Project(name, description, deadline)); System.out.println("Project created successfully."); break; case 2: if (projects.isEmpty()) { System.out.println("No projects found."); } else { System.out.println("List of projects:"); for (Project project : projects) { System.out.println(project); } } break; case 3: if (projects.isEmpty()) { System.out.println("No projects found."); } else { System.out.println("Enter project name to edit:"); String projectName = scanner.nextLine(); for (Project project : projects) { if (project.getName().equals(projectName)) { System.out.println("Enter new project name:"); String newName = scanner.nextLine(); System.out.println("Enter new project description:"); String newDescription = scanner.nextLine(); System.out.println("Enter new project deadline (MM/DD/YYYY):"); String newDeadline = scanner.nextLine(); project.setName(newName); project.setDescription(newDescription); project.setDeadline(newDeadline); System.out.println("Project edited successfully."); break; } } } break; case 4: if (projects.isEmpty()) { System.out.println("No projects found."); } else { System.out.println("Enter project name to delete:"); String projectName = scanner.nextLine(); for (Project project : projects) { if (project.getName().equals(projectName)) { projects.remove(project); System.out.println("Project deleted successfully."); break; } } } break; case 5: System.out.println("Exiting..."); System.exit(0); break; default: System.out.println("Invalid choice."); } } } } class Project { private String name; private String description; private String deadline; public Project(String name, String description, String deadline) { this.name = name; this.description = description; this.deadline = deadline; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getDeadline() { return deadline; } public void setDeadline(String deadline) { this.deadline = deadline; } @Override public String toString() { return "Name: " + name + "\nDescription: " + description + "\nDeadline: " + deadline + "\n"; } } ``` 该代码框架提供了以下功能: 1. 创建新项目 2. 列出所有项目 3. 编辑项目 4. 删除项目 5. 退出 您可以在此基础上进行进一步的开发,添加更多的功能和自定义的字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

niaonao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值