敏捷开发实践之问题1

从0到1构建电商平台的实践与反思 虽然在项目中遇到了一些问题和困难,但通过团队的共同努力,我们最终成功完成了项目,并积累了宝贵的经验。通过总结成功经验和不足之处,我不仅提升了自己的项目管理能力,也为未来的项目积累了宝贵的经验。在过去的三个月里,我参与了一个从0到1构建电商平台的项目。作为项目的主要负责人之一,我不仅参与了前期的需求分析和产品设计,还负责了后期的开发和上线工作。项目的主要目标是在三个月内完成平台的设计、开发和上线,并确保平台的稳定性和用户体验。敏捷开发方法:采用敏捷开发的方法,分阶段进行设计和开发,确保了项目的进度和质量。 阅读详情

第一天也是下一个版本迭代会议,会议议程:

1。介绍敏捷开发思想,流程,优点

2.结合项目管理工具JIRA讲解在工作中如何操作

3.这个迭代开始实践敏捷开发



遇到的问题:

1.时间评估环节:明显不不适应,共同估算时比较迷茫,同时也在担心一个问题,估多了嘛心里过不去,估少了又不能按时完成,这时候要传达成员一种理念,估算不是为了精确开发时间,是为一个更合理的时间(对比CMMI),,其次要教成员怎么估算时间

      a)Story功能拆分成相对独立开发的功能

      b)讨论每个功能要修改的地方,然后估算功能的时间=技术预研时间+看别人代码时间+套模板时间+编写逻辑代码时间+调试时间(参考BUG率)

         


创新实训实战指南:从问题定义到敏捷开发 创新实训是培养技术人才解决实际问题能力的重要方法,其核心在于平衡创新性与可行性。从技术实现角度看,采用敏捷开发方法和MVP(最小可行产品)理念能有效控制项目风险。在技术选型时,需综合考虑技术成熟度、学习曲线和社区支持等因素,常见工具如Jira、Trello等看板工具能提升团队协作效率。代码质量保障方面,代码审查、单元测试和持续集成是关键实践。创新思维培养则可通过头脑风暴、原型设计等方法实现,最终通过用户反馈和数据分析验证项目价值。 阅读详情

相关推荐

敏捷开发-Scrum和实践

软件开发所面临的挑战和任务是在现有的时间和有效的资源范围内,寻找解决实际问题的切实可行的方案。在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要的原因,它比其他所有因素加起来的影响还大。导致这种普遍性灾难的原因是什么呢? 首先:我们对估算技术缺乏有效的研究,更加严肃地说,它反映了一种悄无声息,但并不真实的假设一切都将运作良好。 第二:我们采用的估算技术隐含地假设人和月可以互换,错误地将进度与工作量相互混淆。 第三:由于对自己的估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作。 第四:对进

福如意的博客 1万+

浅谈敏捷开发及Scrum(二)实施与难点

上一篇浅谈敏捷开发及Scrum(一)概念与理解写了一些关于敏捷开发和Scrum的相关概念及个人理解,这里来说说实施与遇到的一些困难。 Scrum.itlao5.com 如何实施 敏捷开发的实施,我们是用的Scrum迭代开发,关于Scrum的一些介绍上一篇已经说了,这里说一下实施流程及其关键点。 一个Scrum迭代一般建议2-3周,具体视团队...

测试0901-1 585

【分子指纹】化学分子指纹的概念和应用(非常重要)

分子指纹(Molecular fingerprints)可以低计算成本的方式表示大规模化学数据集中化合物的化学(结构、物理化学等)性质。它们在将化学数据集中的分子转换为适合于计算方法的一致输入格式(bit向量或数值)方面发挥着重要作用。在这篇综述中,

DJJ5210的博客 1万+

敏捷开发实践(1)-故事工作量估算导致的问题 .

背景 自从我们使用scrum进行项目开发后,出现了这样那样的问题,有些是因为我们对scrum的理解不到位,有些则是客观因素导致的,针对这些问题,在每次迭代的总结会上,我们进行了反思,并根据具体环境对scrum进行了一一调整,想通过几篇文章和大家分享一下我的经验。 我说的不一定正确,只是描述问题,然后说说我对问题的看法,采取的解决方案,希望使用敏捷开发的大牛提供宝贵意见。 故事

liuhaozcx的专栏 1540

EEGLAB安装、EDF数据导入、EEG预处理(Matlab)

目录下载和安装下载安装遇到问题及解决方案导入EDF数据EEG预处理 下载和安装 下载 链接:https://pan.baidu.com/s/17eMT6B7LgZ4PyqWvD5ixmg 提取码:12gz 安装 **第一步:**将下载下来的文件解压,修改名称为eeglab,将此文件夹存放在matlab的安装目录里的toolbox文件夹下,下图是我的路径,需要拷贝到自己相对应的路径中 第二步: 打开Matlab软件,点击主页中的设置路径 设置路径 点击添加并包含子文件夹,将eeglab文件夹添加进来,保

y18771025420的博客 1万+

Ubuntu的初步环境配置(VMware)

4.屏幕显示不全解决完后,在试用Ubuntu里面,直接双击“安装Ubuntu 20.04.6 LTS”。如果不存在“屏幕显示不全”的问题,直接点击安装即可,大致安装步骤与以下步骤类似。15.点击现在重启,重启成功后,会出现“清除安装介质”的问题。19.此时点开火狐,可以上网,但只可输入英文,不可以输入中文,具体解决方法见3.2。3.进入安装界面,此时可能会出现“屏幕显示不全”的问题,具体解决方法见3.1。8.选择“正常安装”、“安装Ubuntu时下载更新”,点击继续。最后,点击保留更改,设置成功。

森菌蛙诺的博客 2274

敏捷开发实践(1)-故事工作量估算导致的问题

背景         自从我们使用scrum进行项目开发后,出现了这样那样的问题,有些是因为我们对scrum的理解不到位,有些则是客观因素导致的,针对这些问题,在每次迭代的总结会上,我们进行了反思,并根据具体环境对scrum进行了一一调整,想通过几篇文章和大家分享一下我的经验。 故事工作量估算导致的问题 我们在对backlog中的story进行

一名系统架构师的征途 4027

基于Simulink的PR(比例谐振)控制器在单相整流中的应用

本文详细介绍了基于Simulink的单相整流系统中PR(比例谐振)控制器的设计与实现方法。首先阐述了PR控制器相较于传统PI控制器的优势,能够有效消除交流信号跟踪中的稳态误差。接着系统讲解了PR控制器的传递函数原理、实用型设计(带带宽)及参数整定方法。通过Simulink建模步骤,包括主功率电路搭建、电压外环PI设计、电流指令生成、PR控制器实现(推荐MATLAB Function方法)和SPWM调制等关键环节。仿真对比显示PR控制在电流跟踪精度(THD仅1.9%)、功率因数(0.998)和动态响应(突变恢

amy_mhd的博客 689

敏捷开发12条核心原则的数仓场景全解读

为了让你更系统地落地敏捷开发(适配3人数仓测试小组),我优先整理了(每条原则都对应具体落地动作,无空泛理论),再补充。

m0_68935893的博客 685

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

【变化检测】变化检测相关数据集+代码+论文合集

光学影像变化检测领域数据集(有label的,无label的)、高光谱影像变化检测领域数据集、3D变化检测领域数据集、传统变化检测算法、深度学习变化检测算法、SAR变化检测算法、高光谱变化检测算法论文及代码等资源。

向上生长的程序媛的博客 2089

敏捷开发“松结对编程”实践--大型团队篇

 松结对编程是小型团队的实践,大约运行在1个师傅+1~3个徒弟的尺度上,当面临更大尺度的时候,就需要大型团队模型。这里推荐139团队模型,因为它不但可以让松结对编程运转顺利,还解决了大团队沟通、绩效考核、师傅的出路等问题。   139团队的整体情况相当复杂,将另有系列博文描述,这里只描述与“松结对编程”相关的内容,以保证本系列博文的完整性。   基本概念   139团队就是1个项目...

优快云1332531529的博客 230

环境仿真软件:MIKE 21_(9).MIKE21水生植物模块介绍

MIKE21支持多种水生植物的模拟,用户需要在配置文件中定义植物种类及其特性。</</</</</</</</</假设我们需要定义一种新的水生植物“水葫芦”(Water Hyacinth),并将其特性写入配置文件。# 创建XML根元素# 定义新的植物种类# 生成XML文件假设我们需要分析仿真的水流速度变化,并绘制水流速度随时间变化的图。# 读取NetCDF文件# 获取水流速度数据# 获取时间数据# 绘制水流速度随时间变化的图plt.xlabel('时间 (天)')

kkchenjj的博客 726

AI Agent Harness Engineering 项目管理实践:敏捷开发与迭代规划

术语简明定义面向AI Agent全生命周期的工程体系,包含测试评估、灰度发布、监控报警、Bad Case回流、版本管理等模块,核心目标是最小化反馈闭环,降低迭代成本和风险AI Agent敏捷开发适配AI概率性特性的敏捷迭代方法论,核心是围绕「指标提升+Bad Case解决」而非功能交付做迭代,小步快跑快速验证黄金测试集覆盖Agent核心场景、标注了标准答案的测试用例集合,是Harness评估的核心基准,必须版本化和Agent版本绑定Bad Case回流机制。

Java大师兄的博客 200

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

敏捷开发实践指南:从理论到落地的全面解析

敏捷开发不仅是软件工程的方法论革新,更是一种适应快速变化时代的思维方式。从Scrum到Kanban,从极限编程到智能化工具,其核心始终围绕“以人为本”与“持续改进”。对于团队而言,选择合适的工具(如支持多模式协作的看板系统)和框架,结合自身业务特点灵活调整,才是实现敏捷转型的关键。未来,随着技术演进,敏捷开发将继续推动软件工程向更高效、更智能的方向发展。

2501_90297932的博客 1716

深度学习工具包 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")

敏捷开发模式下SDL实践

开发模式的变革,为开发安全实践了更多的挑战,那么如何在敏捷开发模式下更好的落地SDL将会是企业安全建设不可避免的问题!

cavalier的学习之路 4315

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

敏捷开发实践

敏捷开发是一套软件开发的方法学,或者方法框架,包含有很多内容,详细定义可以点击 , 敏捷开发http://en.wikipedia.org/wiki/Agile_software_development  瀑布模型 http://en.wikipedia.org/wiki/Waterfall_model,本文主要是讲在开发团队中实践敏捷开发, 1 角色 在瀑布模型中,所有的流程是预先定

寻亚楠的专栏 5817

【敏捷开发方法论】敏捷开发流程和工具实践

敏捷开发是一种强调灵活性和响应性的现代软件开发方法。其核心在于通过迭代开发和频繁交付,迅速响应用户需求和市场变化,提高软件质量和客户满意度。敏捷开发与传统的瀑布开发模式不同,它更加注重团队合作、客户参与和持续改进。

weixin_39372311的博客 1427

敏捷开发实践与经验总结

敏捷开发强调团队协作、快速交付和持续反馈。与传统的瀑布模型相比,敏捷开发更加注重迭代开发,通过不断地反馈和调整来满足用户需求。敏捷开发的核心原则包括个体和互动胜过流程和工具、可工作的软件胜过详尽的文档、客户合作胜过合同谈判以及响应变化胜过遵循计划。

DevCorner的Pro技术博客 3054

16 敏捷开发实践(1)

在创造价值的目标下,通过改良流程不断地消除浪费。现被广泛用于生产制造管理、IT系统建设。精益开发的基本原则消除浪费:将所有的时间花在能够增加客户价值的事情上。推迟决策:保持可选方案的开放性,但时间不能过长。加强学习:通过短迭代周期、重构、集成测试和频繁的客户反馈会议增强学习。快速交付:短期迭代或小批量立即交付价值,促进有效的决策制定。打造精品:使用恰当的方法确保质量,如构建自动化测试、安装和持续集成。授权团队:精益专注于团队,让创造增值的员工充分发挥自己的潜力。优化整体:快速试错,快速学习。

PeNg_Dr1988 956

敏捷开发方法Scrum最佳实践

首先强调一些Scrum的基本概念本文只想为那些不断实验敏捷开发方法、追寻快速交付产品的IT管理者提供全套经过验证的实践经验,供之参考。我首先假设你已经理解了Scrum这种敏捷开发方法的基本概念并认同之,但是仍然,我还是要强调以下我们对Scrum达成的“共识”:-)Scrum开发流程通常以30 天或者更短的一段时间为一个周期,由产品经理(Product Owner)提供新产品的需求规

碧荷故乡_胡奇的专栏 4819

Scrum敏捷开发模式介绍与实践

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言开发模式1. 瀑布流开发模式2. 迭代开发模式3. 螺旋开发模式4. 敏捷开发模式一、敏捷开发模式二、敏捷模式1. Scrum2. Kanban3. XP4. Lean Startup三、Scrum 敏捷开发模式1. 框架图2. 角色Scrum Master,SMProduct Owners, POSoftware Developers, SD3. 术语Product BacklogSprintSprint PlanningS.

qq_16608213的博客 4630

充电桩项目敏捷开发实践分享

敏捷实践项目干货分享

weixin_51517346的博客 1055

单一模型的敏捷开发实践

1.背景介绍 随着人工智能技术的发展,单一模型的敏捷开发已经成为一个热门的研究和实践领域。单一模型的敏捷开发是指在短时间内快速开发和部署单一的机器学习模型,以满足业务需求和市场变化。这种开发方法不同于传统的大型系统开发,它更注重快速迭代和持续交付,以满足业务需求的变化。 单一模型的敏捷开发实践涉及到多个领域,包括数据科学、人工智能、软件工程和项目管理等。在这篇文章中,我们将从以下几个方面进行深...

AI天才研究院 1092

敏捷开发流程总结

Agile——敏捷开发,作为CMM神话崩溃后被引入的一套新的软件开发模式,这几年来被广泛引起关注,并被寄予厚望。敏捷开发在其他业界的应用是否理想不得而知,但以下总结了我所在公司的敏捷开发试验,希望可以达到管中窥豹的目的。敏捷开发宣言——个体和交互 胜过 过程和工具可以工作的软件 胜过 面面俱到的文档客户合作 胜过 合同谈判响应变化 胜过 遵循计划虽然右项也有价值,但是我们认为左项具有更大的价值

陈宇明 1万+
上一篇: 我的敏捷开发流程
下一篇: 敏捷开发实践之问题2
php_sir
博客等级 码龄14年 3粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值