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.
Scrum is an agile framework to solve complex projects. Scrum was initially built to software development projects, but it has been applied in any scope of complex projects and innovative work. Scrum is especially adequate to projects with requirements that change fast or are highly emergent. The software development with Scrum progresses through a series […]
In the previous post, we saw there are quite a few similarities between the Patrol method and self-directed Agile teams. It stands to reason that the resistance, doubt and objections faced by each from sponsors, leaders and members alike will be very similar. If that's the case, one can learn from the other.
These excerpts from the 1950s edition of the Scoutmaster's Handbook will sound familiar if you've ever tried to implement a self-directed Agile team:
"Some don't grasp the possibilities of the patrol method, and subsequently don't see the importance of it." If you can't appreciate…
During my career, I've heard many arguments about how long a function should be. This is a proxy for the more important question - when should we enclose code in its own function? Some of these guidelines were based on length, such as functions should be no larger than fit on a screen . Some were based on reuse - any code used more than once should be put in its own function, but code only used once should be left inline. The argument that makes most sense to me, however, is the separation between intention and implementation…
Confira a seguir dois quadros Kanban com seus respectivos CFDs (Diagrama de Fluxo Cumulativo, ou Cummulative Flow Diagram, em Inglês), uma valiosa ferramenta de gestão para (1) acompanhar o progresso de itens de trabalho, e (2) verificar a necessidade de melhorar o fluxo de trabalho. O CFD tem informações valiosas e é simples de entender. […]
Here's the 9 rules:
I also made a pdf for easy printing.
Below are the slides for my talk Digital Transformation & Innovation: how to approach it? Digital Transformation & Innovation: how to approach it? from Paulo Caroli The world is changing faster and faster. With the advent of internet, mobility, social networks and cloud computing, things got really accelerated. When I was younger, the rise of […]
The post [slides] Digital Transformation & Innovation: how to approach it? appeared first on Paulo Caroli.
Sometimes when I work with some data, that data is more precise than I expect. One might think that would be a good thing, after all precision is good, so more is better. But hidden precision can lead to some subtle bugs.
What happened in the above code is that I intended to create an inclusive date range by specifying the start and end dates. However I didn't actually specify dates, but instants in time, so I'm not…
Você conhece a história do vendedor de sapatos? O Jonathan Lameira compartilhou essa excelente historia comigo. Eu gostei dela pois me ajuda a ilustrar a famosa frase do Eric Ries sobre o movimento Lean StaruUp: Vai logo para a rua validar as suas hipóteses. Vai logo para a rua validar as suas hipóteses. […]
The post [inovação e empreendedorismo] A história do vendedor de sapatos appeared first on Paulo Caroli.
As a rule, I don't do book reviews. My main area of activity is software development, and I know too many authors. If I started reviewing books it would be an endless task. So I just don't do it.
But I can't help writing a few lines about The Thrilling Adventures of Lovelace and Babbage, drawn and written by Sydney Padua. The book is mostly graphic novel, but with a sizable dollop of fascinating history thrown in. It opens with a comic book narrative of the collaboration between Countess Lovelace and Charles Babbage, which explains why we refer to…
Can you read the notes on the image below? What about the next image, is it more readable? I thought it was only me, but I realized many people suffer from the same problem: really ugly handwriting. Now imagine many ugly handwriting notes together. Welcome to my world: facilitating retrospectives for amazing geeks that can […]
Gabriel Notari, head of delivery da ThoughtWorks Brazil, fez uma enquete sobre equipes distribuídas. Como resultado, ele compartilha cinco dicas para o sucesso de projetos realizados por equipes distribuídas: 1. Entender a infraestrutura necessária para o projeto, e compará-la com a infraestrutura existente: conexão com internet, câmera decente, fones de ouvido e microfones bons necessários […]
The post 5 dicas para o sucesso de equipes distribuídas por Gabriel Notari appeared first on Paulo Caroli.
When programming, I often find it's useful to represent things as a compound. A 2D coordinate consists of an x value and y value. An amount of money consists of a number and a currency. A date range consists of start and end dates, which themselves can be compounds of year, month, and day.
As I do this, I run into the question of whether two compound objects are the same If I have two point objects that both represent the Cartesian coordinates of (2,3), it makes sense to treat them as equal. Objects that are equal due to the…
Aliasing occurs when the same memory location is accessed through more than one reference. Often this is a good thing, but frequently it occurs in an unexpected way which leads to confusing bugs.
Here's a simple example of the bug.
Date retirementDate = new Date(Date.parse("Tue 1 Nov 2016")); // this means we need a retirement party Date partyDate = retirementDate; // but that date is a Tuesday, let's party on the weekend partyDate.setDate(5); assertEquals(new Date(Date.parse("Sat 5 Nov 2016")), retirementDate); // oops, now I have to work three more days :-(
What's happening here is that when we do the assignment…