[Cross-posted on ThoughtWorks Insights: http://www.thoughtworks.com/insights/blog/how-to-grow-effective-teams]
The advent of the computer era is a major breakthrough in history. Mankind created amazing machines to handle the tasks our brains struggle with. Telling computers how to solve our problems has become a practice called Software Development. Over time, higher level languages have made programming less daunting. We realized the difference between a program and a product [1]. We built frameworks to avoid repetitive tasks. We discovered how important it is to automate tests and deploy as often as possible. In essence, we've made development more efficient, enabling it to tackle heavier, more intricate problems.
Moreover, we've turned software into a US$400bi industry. Software is ubiquitous and demand is increasing faster than almost all other industries. Development firms have grown to the level of tens of thousands of employees. Back in the day, programming was a one-person hobby, almost a form of...
-
-
[Cross-posted on ThoughtWorks Insights: http://www.thoughtworks.com/insights/blog/feeling-slow-use-lead-time-find-out-why] You know the feeling: stories seem to be taking just too long to be completed, velocity seems to be always just below what you expected, and you're not sure what to do about it. Pressure starts to build up, and the team starts to get uncomfortable with all the questions you keep asking about when they expect to deliver their tasks. What is actually wrong? Do you have problems in your process? Are people taking too long to develop code and test it? Or maybe the bottleneck is analysis? Are your stories too big, or too small, or just underestimated? Wish you had answers to these questions? Well, we can't promise that. But, just like in science, we're confident that by gathering some meaningful data and looking at it with analytical eyes you can get some insight into what may be causing your issues. And we're not talking only about bread-and-butter, velocity, and scope. We need to go de...
-
[Cross-posted on ThoughtWorks Insights: http://www.thoughtworks.com/insights/blog/taking-care-what-matters-your-team] People are social beings, and their interactions form the core of agile software development. In order to build software, we tend to organize ourselves in groups we callteams. It's a nice name that evokes a feeling of collaboration and motivation, but are all groups of individuals actually teams? We tend to think that what sets groups apart from teams is the presence of a common goal that guides people's actions. If several people get together to pursue a single goal, that's a team. This is true, but not the whole truth. What ultimately turns a group of people into a team is interdependency. A group of sales representatives working for the same company shares the goal of selling the products from their catalog, but each individual is seeking to sell more than the other, to obtain a bonus. That's not a team. A group of baseball players, on the other hand, is a team not only because they sh...