139团队(大型研发团队,大型敏捷开发团队,大型团队结构,敏捷绩效管理)

Ubuntu国内镜像源配置指南与速度优化 软件包镜像源是Linux系统更新与软件安装的核心基础设施,其工作原理是通过分布式节点缓存官方仓库内容。采用国内镜像源能有效解决跨国网络延迟问题,提升apt-get等包管理工具的执行效率。在DevOps实践和持续集成场景中,稳定的软件源可确保开发环境的一致性,避免因网络波动导致的构建失败。针对Ubuntu系统,清华大学TUNA、阿里云和华为云等国内镜像提供了高速稳定的服务,支持HTTPS加密和IPv6访问。通过合理配置这些镜像源,软件包下载速度可从200KB/s提升至10MB/s级别,大幅缩短系统更新和依赖安 阅读详情

作者:陈勇

出处:blog.youkuaiyun.com/cheny_com

定义

简单看,139团队就是1个项目经理,3个小组长,9个开发人员,小组长管理各自管理3个左右开发人员。

139团队从管理上缩减了团队规模,可以被视同只有1个项目经理和3个小组长,细节交由小组长处理。这样就方便在大型团队中进行敏捷开发了。

角色

在Scrum敏捷团队中,队员们是平等的,只有Scrum Master是个个例。但由于在国内很难找到Scrum Master(一则知识缺少,二则一般PM不愿意放弃管理权和技术而转而做“协调”工作),且团队往往超过7~9人,139团队会是一个替代方案。

项目经理

主要工作与原来的项目经理无异,如果在做敏捷可以向自组织团队偏斜一下,即减少其管理职能,增加其领导职能(管理与领导有何差异会另有博文解释)。

作为项目的主心骨,项目经理的技能越高越好,毕竟将辐射到多达10人身上。

小组长

小组长要对开发工作相当熟悉,上要与项目经理加强管理沟通,下要与组员加强技术沟通。

开发人员

帮助小组长干活。

还有一种人介于小组长与开发人员之间,他们可以独立工作(一般用来攻坚),但是尚不能带领下属(可能因为技术能力,也可能因为性格,或技术与职责过于专一)。

工作方式

开会(计划会/每日立会/总结会/技术方案讨论会……)

项目经理可以认为自己手下只有这几个小组长,开会时主要的沟通发生在项目经理与小组长/小组长与小组长之间。

开发人员多数情况下每次均与自己的小组长列席各种会议,倾听小组长们的沟通,除非有特殊问题不直接介入讨论。但开发人员必须保证自己理解组长们的沟通,否则必须补充发问。

日常

小组长和3个开发人员如果还要开会就迂腐了,而是必须以至少“松结对编程”(将另有博文描述),也就是每人拥有自己的电脑独立工作,但重要工作小组长要在一台电脑上指导开发人员完成(“编到读数据库的语句的时候叫我一声我来帮你”)。

日常工作的沟通非常重要,否则在开会的时候,就很难保证几位“不说话”的开发人员和小组长对任务的理解是相同的。

绩效管理

传统的大团队绩效考核无外乎是考察每个人做出的贡献,按称分金银。但这会造成人与人之间缺少互助,遇到困难躲着走等等诸多弊病。

139团队给大型团队的个人绩效开辟了一个新的思路。它认为团队中人的绩效在于其为团队做出的贡献,而非直接完成的任务,而“贡献”的直觉反应,就是一个人在139团队中的位置:是1?是3?还是9?

基于位置建立绩效等级

即认为个人绩效=团队×位置,1最高,9最低。

笔者在01年供职的企业尝试使用4种等级,分别是:需接受指导的、可独立的、可提供指导的、可提供培训的,来整体区分程序员的等级。这种体系结构不太关注人的实际技术水平,而是更关注一个人对团队和部门的贡献。无论你的水平多高,如果缩在角落里自己干自己的,都不能晋升。

无独有偶,在10年访问NEC的时候,他们使用几乎完全相同的等级制度,只有最后一个不同:需接受指导的、可独立的、可提供指导的、可担当重任的(就是大项目经理或部门经理)。

非物质激励

存在等级后,激励的种类就变多了。当我问及NEC为何一个人会甘愿带徒弟时(他们带徒弟没额外奖励),大家面面相觑表明之前真没太想过这个问题,最后有一个人说:当然要带徒弟了,日后领导要提拔谁,很大程度要看谁在团队中更有威信;如果你连徒弟都没有,怎么让你管这么多人?

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

 

火星人敏捷开发手册 2012-12-31(修正了页眉) 您可以在非商业场合免费使用(详见文档最后的授权页面): 作为培训前的预习阅读。 打印并张贴在公司走廊上。 作为企业内部小组培训教材使用。 请大家在http://blog.youkuaiyun.com/cheny_com置顶贴中跟帖多提意见和要求,以便及时更新。 立即下载

相关推荐

火星人敏捷开发手册 2012-12-25

火星人敏捷开发手册 2012-12-25

139团队(大型研发团队,大型敏捷开发团队,大型团队结构,敏捷绩效管理)...

作者:陈勇出处:blog.youkuaiyun.com/cheny_com 定义简单看,139团队就是1个项目经理,3个小组长,9个开发人员,小组长管理各自管理3个左右开发人员。139团队从管理上缩减了团队规模,可以被视同只有1个项目经理和3个小组长,细节交由小组长处理。这样就方便在大型团队中进行敏捷开发了。角色在Scrum敏捷团队中,队员们是平等的,只有Scrum Master是个个例。但由于在国...

diaogan4202的博客 450

火星人敏捷开发手册

火星人敏捷开发手册火星人敏捷开发手册火星人敏捷开发手册

敏捷开发的团队建设:培养高性能的软件开发团队

1.背景介绍 敏捷开发是一种软件开发方法,它强调团队协作、快速迭代和持续改进。在敏捷开发中,团队成员通过持续地交流和反馈来确保软件的质量和满足用户需求。这种方法与传统的软件开发方法相比,具有更高的灵活性和适应性。 在敏捷开发中,团队成员需要具备高度的技能和专业知识,以便在短时间内完成高质量的软件开发工作。因此,培养高性能的软件开发团队成为敏捷开发的关键。 在本文中,我们将讨论敏捷开发的团队建...

AI天才研究院 1047

火星人敏捷开发手册 2012-08-15

您可以在非商业场合免费使用(详见文档最后的授权页面): 作为培训前的预习阅读。 打印并张贴在公司走廊上。 作为企业内部小组培训教材使用。 请大家在www.cheny.com置顶贴中跟帖多提意见和要求,以便及时更新

大团队敏捷scrum开发攻略

大团队敏捷开发攻略,scrum很不错的资料,很好的示意图,techexcel的资料

如何打造139团队(不同层次人员的选择与培养,大型研发团队,大型敏捷开发团队)

2001年的时候,我们注意到程序员个体差异很大,尤其是质量差异很大,即使他们天天坐在一起。原因在与大家几乎各自分工干各自的活动,中间缺少交流(不是交流学习会那种,而是每时每刻发自内心的交流)。而对于一个软件而言,质量最好的部分并不能导致整个软件质量好,但质量差的部分却可以导致整个

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 5683

PDF批量加水印 与 去除水印实践

我们可以给PDF加图片水印或文字水印,要去除图片水印,一般只需要删除最后一个图片对象即可。要去除文字水印,需要保证主体内容和文字水印在/Contents中位于不同的对象内,这样我们只需要删除文字水印对应的对象即可删除水印。而对于主体内容和文字水印已经混合在一个对象时,本文的提供的方法则无能为力,需要进一步深入分析PDF细节。

小小明-代码实体的专栏 2762

一文搞懂敏捷开发团队的四大组织形式

敏捷开发的落地,人是最重要的,在做敏捷开发之前,需要先组建一支敏捷的团队,那什么样的团队才是符合敏捷的思想?有些小型创业团队没有那么多的角色,如既是项目经理,又是系统工程师, 又是开发人员, 这样的团队还能运作敏捷项目项目吗?答案是肯定的,根据共创力咨询长期的经验,我们总结出敏捷团队的四种模式,适应于不同的团队类型。 第一种:完整的交付团队阵型 所谓完成的交付团队,是根据交付的对象,设置实体化完整交付团队,即以子系统或大特性为单位,融合架构、设计、开发、测试等角色,形成一个新型的团队,主要的角色如下:

ipmc2017的博客 956

无符号整数、带符号整数溢出问题

让我们详细讲解一下带符号整数溢出和无符号整数溢出问题中,符号标志位 (SF)、零标志位 (ZF) 和进位标志位 (CF) 的行为方式

weixin_49342084的博客 2089

【科研绘图】【数据拟合曲线】:附Origin详细画图流程

拟合曲线图

weixin_50236590的博客 4万+

java开发小团队还是大团队好_139团队(大型研发团队,大型敏捷开发团队,大型团队结构,敏捷绩效管理)...

作者:陈勇出处:blog.youkuaiyun.com/cheny_com定义简单看,139团队就是1个项目经理,3个小组长,9个开发人员,小组长管理各自管理3个左右开发人员。139团队从管理上缩减了团队规模,可以被视同只有1个项目经理和3个小组长,细节交由小组长处理。这样就方便在大型团队中进行敏捷开发了。角色在Scrum敏捷团队中,队员们是平等的,只有Scrum Master是个个例。但由于在国内很难找到S...

weixin_35645652的博客 281

C语言实现AES加解密

C语言实现AES加解密 #include<stdio.h> #include<string.h> #include<time.h> #include<windows.h> #define Nb 4 //数据块行数 #define Nk 4 //密码块行数 #define Nr 10 //轮加密次数 unsigned char RoundKey[4*Nb*(Nr+1)]; //轮密钥 unsigned char Key[17];

qq_44310495的博客 8891

139团队(大型研发团队,大型敏捷开发团队,大型团队结构,敏捷绩效管理)【转】...

作者:陈勇 出处:blog.youkuaiyun.com/cheny_com 定义 简单看,139团队就是1个项目经理,3个小组长,9个开发人员,小组长管理各自管理3个左右开发人员。 139团队从管理上缩减了团队规模,可以被视同只有1个项目经理和3个小组长,细节交由小组长处理。这样就方便在大型团队中进行敏捷开发了。 角色 在Scrum敏捷团队中,队员们是平等的,只有Scrum Master是个个例...

weixin_30511039的博客 98

EfficientNet 改进:添加混合卷积提取特征

混合卷积(Mixed Convolution)是一种在卷积神经网络(CNN)中结合多种卷积操作的策略,旨在通过融合不同卷积核大小或类型的卷积操作来提升模型的性能和灵活性。:例如标准卷积、深度可分离卷积(Depthwise Separable Convolution)、分组卷积(Grouped Convolution)等,可以在计算效率和特征提取能力之间取得平衡。混合卷积可以根据任务需求动态调整卷积操作的组合方式,适应不同的输入数据分布。:通过引入可学习的权重,动态调整不同卷积操作的贡献。

Henry的博客 660

提示libfakeroot.so或libfakeroot-sysv.so出错处理方法

嵌入式Linux、Buildroot交叉编译出现fakeroot问题处理方法。

阿xin*的嵌入式AI 1443

《敏捷开发绩效管理》扩展阅读(敏捷开发绩效管理,敏捷团队绩效管理)

本文长期更新,请常来看看。• 序言– 从代码行到故事点敏捷估算:故事点与直接估算天数的差异– 下一步?• 敏捷团队绩效管理– 谁来管理团队中的个体?同行压力(兼谈敏捷团队,绩效管理,自组织团队)目标管理(百度百科)– 敏捷团队的目标– 从团队外部认识团队目标 敏捷团队绩效管理与目标管理:关于如何为团队设立外部目标– 敏捷开发中的目标管理意识 – 执行与...

diaogan4202的博客 158

【GlobalMapper精品教程】084:tif(tfw)、jpg(jgw)、png(pgw)的区别与联系

摘要:本文介绍了TFW、JGW、PGW等地理参考文件的基本原理和应用。这些文件通过简单的文本格式存储栅格图像的地理坐标信息,适用于平面坐标系下的GIS数据处理。文章详细说明了文件各行的含义,并提供了在ArcGIS和Globalmapper中生成这些文件的具体操作步骤,包括导出TIFF、JPG、PNG格式时勾选生成对应坐标文件的选项。这些文件虽然简单易用,但仅适用于平面坐标系,且功能相对有限。配套视频教程提供了更详细的操作演示。

智慧空间实验室 2402

《现实世界的敏捷开发-大型敏捷研发团队》培训课程扩展阅读

•    谁在管理团队中的个体?•    从领导指令到自组织团队-敏捷生态系统 –  自组织团队的潜在问题 –  敏捷Scrum是怎样解决这些问题的? –  敏捷生态系统         同行压力(兼谈敏捷团队,绩效管理,自组织团队)        敏捷生态系统:2009敏捷中国大会上的演讲稿–  大团队/强分工下易受影响的生物 •    习惯性分工与事实性分工 •    大型团队:139团队模型

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 2663

相位偏折PMD全栈技术拆解 | 四步相移解算+梯度积分形貌重建,助力镜面工件微米级缺陷高精度稳定检测

工业精密检测领域中,高反光镜面类工件长期存在检测瓶颈,涵盖汽车高亮车漆、半导体抛光晶圆、光学透镜、精密抛光模具、玻璃盖板等主流产品。传统2D机器视觉仅能识别表面明显污渍、大尺寸破损,完全无法捕捉微米级划痕、凹坑、橘皮、曲面微形变等微观缺陷;常规线激光3D、普通结构光3D检测设备,面对镜面材质会产生严重镜面反射杂光,激光条纹、结构光图案完全失真,必须喷涂显影粉辅助检测,不仅破坏工件表面完整性,还无法适配自动化量产产线,检测效率与良率极低。

getusushu的博客 544

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

敏捷开发“松结对编程”实践之六:大型团队篇|后记(大型研发团队,学习型团队,139团队,师徒制度,人员招聘,职业生涯规划) .

本文是“松结对编程”系列的第六篇。(之一,之二,之三,之四,之五,之六,之七,之八,此系列之九及之后文章请见栏目总目录。) 松结对编程是小型团队的实践,大约运行在1个师傅+1~3个徒弟的尺度上,当面临更大尺度的时候,就需要大型团队模型。这里推荐139团队模型,因为它不但可以让松结对编程运转顺利,还解决了大团队沟通、绩效考核、师傅的出路等问题。 139团队的整体情况相当复杂,将另有系列博文描

蓝斯的专栏 9922

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 威斯敏斯特教堂(西敏寺)墓碑上的话(WestMinster Abbey,When I was young and free...,修身齐家治国平天下)
下一篇: 敏捷测试与传统测试的区别
火星人陈勇
博客等级 码龄18年 4899粉丝 381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值