menu

Blogs

Lots of our people have lots of opinions. Here are just a few of them

ThoughtWorks embraces the individuality of the people in the organization and hence the opinions expressed in the blogs may contradict each other and also may not represent the opinions of ThoughtWorks.

Continuous Integration – photos for feedback and visibility

Today I was looking for good images representing Continuous  Integration (CI) feedback and visibility. As I have done the same search many times before, I decided to place on this blog post some of the best photos I have found.

Here they are:

Series_of_build_lights red-bubbles-thumb green-red lava-lamps-build-monitor build-monotir2 automated-information-radiator StreetLightSmall build_failed-big-tv build-monitor build-lights

 

And here a some of the original blog entries where I got these photos from:

Blog post by Paulo Caroli - Blog
21 August 2014

Original Link

Software development is empirical

One should learn from previous experiences and previous mistakes. Even better, one should learn from others experiences and mistakes. In software development, we have been very good at adapting knowledge from other industries. This has been especially the case with the manufacturing industry. From the Taylorism to the more recently influences of Lean thinking, the software development theories and practices have borrowed a lot from the manufacturing industry.

But we need to be very aware of the differences in our industries. Manufacturing typically deals with repeatable processes, while software development is empirical.

In manufacturing, a repeatable process converts consistent…

Blog post by Paulo Caroli - Blog
21 August 2014

Original Link

Integração Contínua

Integração Contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu código frequentemente. Cada integração é verificada por meio de uma compilação e testes automatizados para detectar erros de integração o mais rápido possível. Integração Contínua assume um alto nível de testes automatizados.

 

Leia mais sobre o assunto no site do Martin Fowler..

Blog post by Paulo Caroli - Blog
20 August 2014

Original Link

Workshop de Retrospectivas na Scrum Rio 2014

scrum-rio

 

 

Na Quarta-feira, dia 03 de Setembro estarei na Semana Ágil da Scrum Rio lecionando o workshop de retrospectivas.

Retrospectivas Divertidas com Paulo Caroli (ThoughtWorks)

Um workshop com atividades e ideias para tornar retrospectivas ágeis mais engajadoras. Como transformar um grupo de pessoas em um time efetivo? Como consolidar o aprendizado em cada iteração e evoluir com o projeto? Como manter o espírito ágil vivo no time? Retrospectivas ajudam a melhorar a comunicação, produtividade e qualidade, além de promover troca de conhecimento e experiências.

Mais informações e inscrições aqui.

Veja também a programação completa do evento.

Blog post by Paulo Caroli - Blog
20 August 2014

Original Link

Agile versus Security

Ah, there’s nothing like using a false dichotomy to build a blog premise around, is there? This post is to share some of my thoughts and findings from the research I’ve done into Agile security of late. Agile and Security are not an either/or choice, but some aspects of typical Agile implementations can lead to […]

Blog post by Andy Marks
19 August 2014

Original Link

Níveis de Competência do Facilitador de Inception

Identificamos 6 níveis de habilidade para o facilitador do workshop Inception. Esta classificação serve para alinhar expectativas e para demostrar a importancia da habilidade do facilitador, bem como identificar o nível do facilitador alocado para uma Inception.

1. Iniciante

Pessoas que estão participando do workshop Inception pela primeira vez.

2. Intermediário

Pessoas que já participaram, mas ainda não facilitaram nenhuma atividade durante um workshop Inception.

3. Facilitador Aprendiz

Pessoas que já participaram e facilitaram uma ou mais das atividades realizadas em workshops Inception.

4. Facilitador

Pessoas que já facilitaram um workshop Inception e se sentem seguras para fazê-lo.

5. Facilitador…

Blog post by Paulo Caroli - Blog
19 August 2014

Original Link

Trilogia da Geração de Estórias

Meio sem notar, escrevi recentemente ou aqui no blog ou no site de Insights da ThoughtWorks três artigos que acabaram se complementando e de certa forma resumindo a minha visão atual de análise de sistemas/negócios em projetos ágeis.

É apenas o pensamento atual - pode e deve mudar com o tempo -  e é imperfeito e não aplicável a todos os casos, mas representa um bom conjunto de axiomas que tenho tentado aplicar nos projetos que me envolvo (que normalmente tem sido tiros curtos de menos de 6 semanas) e que tem dado bons resultados. São fortemente influenciados pelas ideias…

Blog post by Lourenco Piuma Soares
19 August 2014

Original Link

代码仓库规划

公司内软件项目越来越多, 项目类型也逐渐丰富, 比如移动应用, 后端服务, 基础框架和库等. 需要在整体上对代码库的使用进行规划, 制定基础的规则, 比如什么时候需要新建独立的 git 仓库, 什么时候使用已有的仓库, 什么时候新建分支, 什么时候合并等. 这些规则的制定, 需要考虑以下几个原则:

  • 能够快速应对业务和需求变化
  • 能够降低开发人员日常的操作成本
  • 能够降低管理员日常的维护成本
  • 规则简单直观, 能够降低无意中违反规则的几率

基于以上原则, 一个示例的代码库规划方案如下.

库策略

一般性的规则如下:

每个可独立发布, 独立升级的单元对应一个单独的代码仓库

比如, 这里的单元可包括:

  • 一个发布到 AppStore 或 Google Play 的移动应用
  • 一个单独部署的后端服务
  • 一个公共的底层框架
  • 一个实用的库
  • 一个应用程序内独立发布独立升级的组件, 类似微信表情包等
  • ……

该策略的重点是独立发布, 独立升级. 如果两个组件总是一起发布, 一起升级, 则它们应该共用同一个代码库.

分支策略

分支增加灵活性, 但带来合并成本, 集成成本, 因此依然需要遵循上面的原则来制定策略, 以应对变化和降低维护成本为目标.

分支策略受众多因素影响, 包括项目规模, 开发流程, 需求稳定程度, 发布策略, 架构设计, 依赖关系等等.

整体上, 分支策略分两大类, 主线开发模式特性分支模式.

主线开发模式

主线开发模式, 也叫发布分支模式(Release Branch Strategy), 或不稳定主线模式(Unstable Trunk Strategy). 其主要规则是:

日常新特性开发都在主干上进行, 临近发布时创建发布分支
需要在本次发布中包含的内容进入发布分支, 并合并到主线
下一版本的开发继续在主线上进行

本模式的优点是:

  • 合并成本较低
  • 管理维护简单
  • 持续集成缩短反馈周期, 保证质量

本模式的缺点是:

  • 一旦某个功能最终决定不包含在本次发布中, 需要评估其影响, 来决定彻底把代码拿掉, 还是只是在接口/界面上不体现

本模式的前提是:

  • 项目涉及的开发者人数较少, 以不超过20人为经验值
  • 自动化测试比较完善

特性分支模式(Feature Branch)

特性分支模式(Feature Branch), 也叫稳定主线模式 (Stable…

Blog post by Guanglei Li
19 August 2014

Original Link

Agile Leadership Popovich style

I recently had an article given to me by a colleague about the legend Spurs basketball coach Gregg Popovich. In it he was interviewed about his philosophy for building a great team that can respond to change and adapt on its feet. The parallels for me were extreme when I think about the changing paradigm of leadership in business, I believe this is an analogy for future leadership consideration.

Let me highlight some of the great paragraphs.

On managing a high performing team Popovich refers to the continued need to nudge the team so complacency doesn’t set in. Even high…

Blog post by Gary O'Brien
18 August 2014

Original Link

Inception stakeholders and active members

A typical inception agenda has two types of sessions, matching the participation levels: stakeholder or active members.

  • Active member is anyone directly involved by the understanding and implementation of the project. These are the people who should actively participate on all the inception sessions. These might include: Product owners, developers, testers, project managers, and user experience.
  • Stakeholder is someone impacted or affected by the project. These are people highly interested on the inception direction and results, but cannot participate on all the sessions. These might include: sponsors, end users, legal, sys-admin, sales, and marketing.

There are two mandatory stakeholder sessions:…

Blog post by Paulo Caroli - Blog
18 August 2014

Original Link