简析敏捷在分布式团队中的实践

PMP-敏捷项目管理实践-敏捷Scrum实践 敏捷思维模式由价值观定义,以原则为指导,并在许多不同的实践中体现。具体的实践方法包括但不限于Scrum、XP(极限编程)、看板、TDD(测试驱动开发)等。可根据不同环境结合使用或单独使用,而今天分享其中的Scrum实践。Scrum实践是一种敏捷开发方法论,旨在提高团队的效率和生产力。它主要强调团队合作、迭代开发,以及不断反馈和改进。Scrum实践包括一系列的会议、角色和工具,比如三个支柱、三个角色、三个工件、五个事件、五大价值观,简称33355。 阅读详情

什么是敏捷?

简而言之,敏捷是一种新的软件开发的思想,通过迭代、结对编程、测试驱动等实践逐步完善对软件的开发,最终形成稳定的系统。与传统的软件开发相比,敏捷强调人与人之间的沟通,而不是通过文档。这儿可以用Kent Beck、Martin Fowler等16位业内权威的软件人士在几年前所做的一个敏捷宣言来解释:

  1. 个体和交互胜过过程和工具
  2. 可工作软件胜过面面俱到的文档
  3. 客户合作胜过合同谈判
  4. 相应变化胜过遵循计划

从中我们可以看出直接的沟通和交流在敏捷中所起到的重要作用。在传统的方法中,我们强调经验的积累,通过大量的文档和合同等来记录这些东西,其实在实际的工作中,这些辛苦积累下来的东西得到的后期应用很少,因为这些记录通常是烦琐的,不人性化的。即使文档再好,但没有起到实际的作用,也是做无用之功。而在敏捷的方法中通过人与人经验的传递,使得团队中的人很快地成长,站在一个水平线上,为最终目标的完成配置最有效的人力资源。

InfoQ中文站是什么?

这儿之所以要介绍InfoQ中文站,因为这是介绍整个主题的背景知识。InfoQ.com是一个社区型技术媒体,以关注企业级软件开发领域的趋势见长。目前这个媒体在全球开发者社区内引起了很大的反响,经常被各大社区引用。那么InfoQ.com的架构是什么样子的呢?可以说,它是一个非常典型分布式的团队。这件网站的总编在加拿大,销售在美国,开发团队在罗马尼亚,另外还有InfoQ中文站、InfoQ日文站等。而InfoQ中文站上的参与人员也是分部在全国各地的,包括北京、上海、广州、深圳、西安、成都等。

敏捷方法对于团队沟通的借鉴

作为一个知识型的团队,如果没有有效的沟通是很难将工作完成的,InfoQ.com和InfoQ中文站是如何保证团队间的沟通的呢?

在敏捷的方法里,有两个非常有效也是比较简单易用的实践,一个是Stand up,一个是回顾。Stand up的意思就是站立会议,详细解释就是说每天早晨或者晚上,团队成员围成一个圈,分别汇报当天的工作进展情况和下一步的打算,从而让整个团队内部的信息沟通有无,彼此了解对方的进展,推动整个项目的发展。而回顾,简而言之就是在一个稍微长的一段时间内,将过往的项目进行分析总结,发扬优点,改正缺点,为下一个项目或者项目的下一个阶段积累经验。

在InfoQ.com和InfoQ中文站两个组织中都比较好地应用到了这两个实践。比如InfoQ.com的沟通方式是每周二团队Stand up,包括内容、商务和开发人员,分别汇报自己的工作状态,还附之以沟通的电子邮件,进行问题的确认,防止出现理解有误的情况。而对于InfoQ中文站,因为都是中文,交流相对也比较方便,所以一般是每天通过邮件群组的形式进行Stand up,每周一电话沟通本周计划,周三则追踪计划的进展情况,周五则是回顾。通过这种形式很好地保证了公司日常工作的进展。另外一个好处是随着交流的增多,团队之间的了解程度也逐渐加深,团队成员的热情也得到很大的调动,形成了一个比较有活力的团队。这些成绩的背后都可以看到敏捷的功劳。

工具和平台对于敏捷的补充

那么是不是说只要借鉴敏捷方法,就可以让一个分布式团队有效地进行工作呢?还不完全是,另外一个不可或缺的因素是工具和平台。这里所谓的工具就是指交流所用的软件,比如MSN、Skype、Google Group等,通过这种在线沟通的形式,可以方便地联系到团队的其他成员,就某个话题进行交流,还可以进行任务的分配等;所谓平台就是办公写作平台,因为InfoQ.com和InfoQ中文站的主要工作是编辑,那边一个协同的办公平台就非常重要。

这里列举一个协同办公的流程。比如InfoQ.com上新发布了几篇新闻,InfoQ中文站要拿过来翻译,那么管理员把新闻的相关内容植入Google Spreadsheet,然后共享给其他参与翻译的团队成员,成员接到邮件后同步打开在线文档,选择自己感兴趣的内容进行翻译,然后将翻译好的文档再通过Google Docs共享给审校的人员,然后新闻就可以在InfoQ中文站上进行发布了。如果说没有Google的在线协同办公工具,还是依靠原来的邮件或者单纯的IM形式,效率会降低很多。

总结

综上所述,我所强调的内容基本是两点,第一是要借鉴敏捷方法中的精髓,将其思想应用到分布式团队的沟通之中,加强人与人之间的交流;第二则是在沟通的同时,也要注意合理地利用现有的技术,比如IM和在线协同工作平台,通过这些技术提高团队之间的沟通效率。希望这些经验能够对创业中的分布式团队起到一定的借鉴意义。


免费迷你书下载:领域驱动设计精简版

免费迷你书下载:OSWorkflow中文手册

免费迷你书下载:Visual Studio .NET使用技巧手册

视频:孟岩谈深入理解SOA和Enterprise Web 2.0

分布式敏捷团队中实施RACI具体挑战及对应的解决方案 分布式敏捷团队实施RACI框架面临地理、时差和文化等挑战,需采取针对性策略:一是明确跨文化角色定义,通过标准化RACI矩阵和沟通规范解决角色模糊问题;二是采用分层授权和时区标签提升决策效率;三是通过文化适配方案如本地化模板和敏感性培训降低协作阻力;四是整合协作工具实现责任可视化。核心在于将RACI转化为动态协作框架,结合技术工具与文化适配,在保持敏捷性的同时确保责任清晰。典型案例显示该方法可提升25%开发效率和40%协作满意度。 阅读详情

相关推荐

36、敏捷项目中的实践社区与分布式团队管理

本文探讨了在大型项目和分布式团队中如何提升沟通效率、确保协作顺畅以及促进知识共享。重点分析了实践社区的培养及其价值,以及分布式团队管理的挑战与应对策略。通过实践社区,团队成员可以打破界限,共享知识,提高效率;同时,分布式团队通过合理选择团队分布方式、优化沟通策略,可以有效克服地理和文化障碍。文章还提出了实践社区与分布式团队协同发展的方法,以提升项目管理的整体效率和质量。

o1p2q3r的博客 121

分布式团队中的敏捷

为了在一个分布式环境中获得更好的团队效能,并让敏捷可以很好地发挥作用,团队需要协同运转,而团队合作是核心。 Richards指出,你需要消除文化和流程限制,这样才能实现团队之间以及团队内部的协作。 关于如何在远程工作时保持联系,Pilar Orti在接受InfoQ采访时就如何处理远程团队的跨文化问题提出了建议: 我认为,这里有两个不同的场景需要考虑:一是...

weixin_34306676的博客 329

分布式敏捷开发系统架构 zheng

项目简介: 基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位 J2EE 企业级开发解决方案。

敏捷分布式_分布式团队与敏捷? 没问题!

敏捷分布式 分布式敏捷团队的工具和技术 敏捷宣言断言,同一地点和面对面的交流对于成功的软件开发团队而言是必不可少的组成部分。 但是,利用当今的技术,只需轻按一下即可实现同一地点。 在本文中,我们将讨论以下敏捷技术的在线工具: Scrum 指点扑克 回顾性 一般的团队合作 在搜索工具时,我们需要一些简单,实用且免费的工具。 对于我们的团队来说,其中包括Micros...

danpu1174的博客 605

OpenClaw实操:给网站装上“智能眼睛”?手把手教你用OpenClaw实时监控网站

本文介绍如何在Windows系统使用OpenClaw构建智能网站监控助手。手把手教你通过配置本地AI模型,让openclaw构建的ai助手自动检测指定网页的内容变化,理解更新重要性,并及时通过邮件、微信、Telegram等渠道发出预警,让你第一时间掌握关键信息,彻底告别手动刷新。

plawuyue的博客 2162

人形机器人触觉革命:压电式电子皮肤的多模态感知与自修复技术突破

本文深入探讨了压电式电子皮肤如何推动人形机器人的触觉革命。文章分析了其基于压电效应的多模态感知原理,能够灵敏检测压力、振动与温度,并重点介绍了赋予电子皮肤自修复能力的动态共价网络等前沿材料技术,从而极大提升了机器人与物理世界进行精细、安全交互的可靠性与智能化水平。

weixin_29251567的博客 194

超越外包:了解分布式敏捷

把工作拿到别的地方去做,这不是什么新鲜事。从上个世纪起,人们就知道:如果按照欧美的价格收费,同时把一部分工作拿到亚洲(印度、马来西亚或者中国) ,你就能赚到更多的钱。这件事由于软件的物流成本约等于0,因此在软件业里更成规模、成体系。这件事就是外包。从人力成本高的地方拿到项目,外包到人力成本低的地方生产,从而降低成本增加收益。从美国外包到印度、从日本外包到中国、从北京外包到西安,都是一个道理。但软件

透明思考@优快云 7194

CNN卷积神经网络手写数字识别实例及代码详解

本文的代码来自githup的Deep Learning的toolbox,是用Matlab实现的。感谢该toolbox的作者付出和分享。 我在应该该代码进行训练时,出现一些报错,如expand函数应用不对,flipall函数未定义等问题,对这些问题进行了修正,完成网络训练和验证。 本文mnist_uint8.mat的获取可以参照我的另一篇博客:MNIST数据库处理--matlab生成mnist_

VivienFu的专栏 6万+

地理上分布式敏捷开发-简介

介绍 在敏捷开发联盟[1]2010年的一份问卷调查中,90%的受访者表示他们所在的团队不同程度地使用过敏捷研发方法。同一受访人群中,65%的人表示他们所在的团队是分布式,高于2009年时的57%。此外,45%的受访者表示在外包类项目上他们正在采用或者计划采用敏捷研发方法,这一数据高于2009年时的41%。 很显然,分布式开发不仅仅是众多团队面临的现实状况,而且还是一个正在增长的敏捷社区。但

金枪鱼的专栏 1420

论文浅读之PIP-Net: Patch-Based Intuitive Prototypes for Interpretable Image Classification

这篇文章的主要贡献包括:1 提出了一种新型的可解释图像分类模型PIP-Net,它基于原型部分学习可解释的原型,实现内置解释性。2 PIP-Net采用自监督学习的新正则化方法,学习原型之间的相似性,使得 latent 空间中的相似性能更好地与人类视觉感知相一致,从而减小了所谓的语义差距。3 PIP-Net可解释为一个稀疏的打分表,它可以检测图像是否属于任何类,或是否属于多个类。它也可以对OOD数据进行分类并说“我没有看到过这个”。

qq_49370210的博客 1791

Copula函数

Copula是处理统计中随机变量相关性问题的一种方法。本文是对Copula函数的各种定义,Copula函数的思想,Copula函数的性质,Copula函数的类型等理论资料总结

Explore 5万+

如何让敏捷落地?谈谈敏捷工具在团队中的应用实践

为各类团队提供了得力支持,无论是研发、市场还是运营团队,都能轻松找到契合自身需求的敏捷解决方案。一个优秀的敏捷工具不仅能提高团队的执行效率,更能帮助团队建立透明、高效和协作的工作文化。在敏捷的实践中,工具是桥梁,而真正的推动力还是团队成员之间的互信与协作。敏捷工具的作用就是帮助团队更轻松地跨越挑战、打破部门墙,实现持续改进和价值创造。

老湖 667

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译

本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。

weixin_29169505的博客 357

敏捷-第五章 敏捷团队与协作环境

1、PMP考试中SM或敏捷项目经理往往强调其负责使某件事得以正确落实。例如“干系人提出新需 求时,敏捷项目经理 应该将其纳入PBL相应 优先级的位置” ,它是 指敏捷项目经理有责 任确保新需求得以正 确处理——应该是去 找PO来具体承担这项 工作。注意:产品经理关注的相对更远期更宏大一些,产品负责人关注的 更近期更详细一些。小结:常见的信息发射源有:白板、电子白板、任务板、燃尽图、燃起图、累计流量图、故事地图、共享文件夹。2、敏捷项目经理具有比SM更高的职权,甚至可能领导 多个SM。至少在项目开始这么做。

陈显平的专栏-Oracle EBS 843

【深度学习新浪潮】近三年垂域大模型研究与产品进展全景洞察(2022-2025)

近三年来,垂域大模型完成了从技术探索到产业落地的关键跨越,在多个行业实现效率提升与价值创造。面对数据治理、技术适配、生态建设等挑战,未来需要通过技术创新、标准制定、人才培养等多维度发力,推动垂域大模型向更高效、更可靠、更普惠的方向发展。随着"人工智能+"行动的深入推进,垂域大模型将成为数字经济与实体经济深度融合的核心驱动力,为产业智能化升级注入持续动能。

专注:太空算力、AI infra、异构调度、大模型成本工程 786

华为OD机试真题2025双机位C卷 C++ 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 280

远程敏捷团队的7个最佳实践

当团队中的每个人都聚集在一个位置时, 敏捷方法最有效。 当团队共享工作空间时,团队成员可以轻松地提问,配对编程任务以及解决问题,而无需安排会议。 使用网络会议,群聊和电子邮件等技术并不像直接的人对人交互那样有效。 技术亮点: 合作接听电话 远程工作,现在和永远? (计算机世界) 大流行结束后,视频会议快速修复需要重新考虑 (网络世界) 保护远程工作者 (CSO)的8个关键...

cxu0262的博客 685

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

敏捷开发在中小团队中的应用与挑战:实战指南与避坑手册

某30人团队CTO的感悟:“实施敏捷3年后终于明白,重要的不是完美执行Scrum,而是培养出持续改进的团队DNA。” 记住:适合的才是最好的敏捷,能落地的才是真敏捷。(注:文中数据均来自Tower《2023中国敏捷开发现状报告》及作者实战案例库)立即行动清单✅ 召开团队敏捷成熟度评估会议✅ 选择1-2个痛点启动改进实验✅ 在下一个迭代尝试文中任一实践。

蜡笔小新星的博客 1430

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

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【敏捷6.1】团队绩效理念与实践

团队绩效理念与实践前面讲了很多东西,是不是都感觉和 PO 有很大的关系。但其实 SM 也是一直贯穿其中的,当然,这也是敏捷中最重要的部分。因为我们要将有价值的内容给客户,那么如何识别价值,...

硬核项目经理 1043

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

PMP备考之路 - 敏捷实践第四讲(实施敏捷:创建敏捷环境)

文章目录1.1 从敏捷思维模式开始1.2 仆人式领导为团队赋权1.2.1 仆人式领导的职责1.2.1.1 仆人式领导的促进作用1.2.1.2 仆人式领导消除组织障碍1.2.1.3 仆人式领导为他人贡献铺路1.2.1.4 考虑这些仆人式领导的职责1.2.2 项目经理在敏捷环境中的角色1.2.3 项目经理应用仆人式领导1.3 团队构成1.3.1 敏捷团队1.3.2 敏捷的角色1.3.3 通才型专家1.3.4 团队结构1.3.5 专职小组成员1.3.6 团队工作场所1.3.7 克服组织孤岛 1.1 从敏捷思维模式

阿甘兄 6492

分布式团队与敏捷? 没问题!

分布式敏捷团队的工具和技术 敏捷宣言断言,同一地点和面对面的交流对于成功的软件开发团队而言是必不可少的。 但是,使用当今的技术,只需轻按一下即可轻松实现同一地点。 在本文中,我们将讨论以下敏捷技术的在线工具: Scrum 指点扑克 回顾性 一般的团队合作 在搜索工具时,我们需要一些简单,实用且免费的工具。 对于我们的团队来说,其中包括Microsoft Off...

danpu1174的博客 200

开发团队协作 敏捷开发_有关团队敏捷开发实践的6个常见问题

开发团队协作 敏捷开发 “任何问题?” 您可能已经听完一个演讲者在演讲结束时提出的这个问题。 这是演示文稿中最重要的部分-毕竟,您参加的不仅仅是听演讲,而是参加对话和社区。 最近,我有机会听到我的同事Red Hatter向本地大学的一组技术学生介绍了一个名为“ 敏捷实践 ”的会议。 在会议期间,软件工程师Tomas Tomecek和敏捷从业者Fernando Colleone和Pavel...

cumo7370的博客 577

神马是敏捷?(2)——敏捷流程框架及敏捷实践一览

我代表全国人民祝福你…… 代表什么!这星球上谁都代表不了谁!!敏捷流派这么多,我想通过一篇文章说清楚还真有难度,所以请允许我选一个代表吧,那就是近年来最火的SCRUM!对于敏捷的其他流派,我只能说:谁叫你不如人家火呢!本文将以SCRUM为代表,让你通过一篇短文大致了解敏捷流程框架、团队角色及各种敏捷最佳实践。

张传波(网名:Fireball,大大大火球) 3876
上一篇: 《领域驱动设计精简版》电子版迷你书序言
下一篇: 传统图书还有未来吗?
futurelight
博客等级 码龄25年 358粉丝 229原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值