Now I’m concerning myself with only the technical side of an agile team but I’ve seen this raised in a number of different agile circles. In those cases there seems to be the impression that swapping a database, physics or audio developer with any other specialization like UI, animation or graphics and an agile team should be able to roll up their sleeves and perform the different roles to the same level with the same level of outcome.
But we have specialist developers for a reason. They are great at what they do, they understand the area in which they work and they know how to get the best results in the shortest amount of time. They have a passion for the area they are focusing in which usually means they’ll go a step further to research their area and keep up with developments which other developers may not have the time or the understanding to do.
By spreading your talent thin and assuming that people can fill each others shoes leads to the following issues
- You are not respecting the knowledge, skill, experience and passion that a specialist can bring to their work and as a result not respecting the developer themselves
- You’re reducing the impact these people can have on a team and it’s often the experienced specialists that inspire younger members of the team into an area they are interested in
- The ability of those specialists to learn more about their area and pass that onto others is drastically reduced.
- The ability for the team to push their development boundaries will be indirectly reduced as everyone on the team aims for the ‘generalist’ role to fit in
A collection of articles and resources of interest to the modern software developer
Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.
-- Steve Jobs
Thursday, November 3, 2011
Agile – Specialisations Still Matter | #AltDevBlogADay
Wednesday, September 21, 2011
How We Scrum | #AltDevBlogADay
We‘re a small indie company of six. Four programmer/designer hybrids, though each of them proficient in other areas too, one artist/designer and one community manager/marketing/designer. Only half of us have ever worked in other game companies and only one of us has ever contributed to a AAA game (though uncredited). We have no strong ego running the business, but a very collaborative atmosphere. That’s why we need a clear methodology for working efficiently. We have a rigid structure for our creative process in order to live the freedom that it gives. The system we’re using is loosely based on scrum but finely tuned to our situation. I don’t believe in off-the-shelf design methods. So we tailored our own. Here’s how we scrum.
Tuesday, September 6, 2011
What I Learned | Rails Test Prescriptions Blog
Here are a dozen or so oversimplified, fortune cookie-esque things that I think I learned in the last four years. Some of these are probably blog posts in their own right, which I may get to one of these days.
Thursday, September 1, 2011
Truck Factor | Agile Advice
Truck Factor (definition): "The number of people on your team who have to be hit with a truck before the project is in serious trouble"
Clearly "hit by a truck" is an extreme thought however you could easily substitute "take vacation at the same time" to get the same idea. If any part of your project has a truck factor of one then you are in a particularly fragile situation. If that one person leaves or is unable to work on the project, you will suffer the consequences.
Over time, anyone can be replaced. Truck factor is an indication of how expensive it will be to replace specific people.
Life After Pair Programming | Jay Fields' Thoughts
When I first joined DRW I noticed that the vast majority of developers were not pair-programming. I was surprised that a company that employed so many smart people would just simply disregard a practice that I considered to be so obviously beneficial.
note: it's so easy to judge people who don't pair-program, isn't it? You can write-off their behavior for so many reasons:
Never once did I consider that their behavior might be correct based on their context. There was no context in which pair-programming wasn't the right choice, right?
- They simply haven't done it enough to see how much value it provides.
- They've used the wrong setup, and turned a positive ROI into a negative ROI situation in the past.
- They must be anti-social or not team players.
- They must guard their code because they are too proud or believe it's job security.
Almost 3 years later, and on a different team, I basically never pair.
The 4 Characteristics of Highly Effective Developers | JW Tech Blog
It seems like everyone is busy these days. Especially when you are in IT. You are constantly being asked to do more and do it more efficiently. But, the important question is, how truly effective are you? In other words, you may work 100 hours a week and perhaps you do a particular task faster than anyone else, but that does not necessarily mean that you are effective.
Wednesday, August 24, 2011
It's Not Just Standing Up: Patterns of Daily Stand-up Meetings | Martin Fowler
The daily stand-up meeting (also known as a "daily scrum", a "daily huddle", a "morning roll-call", etc.) is simple to describe: the whole team meets every day for a quick status update. We stand up to keep the meeting short. That's it. But this short definition does not really tell you the subtle details that distinguish a good stand-up from a bad one.Given the apparent simplicity of stand-ups, I was quite surprised the first time I saw one that wasn't working. It was immediately obvious to me what was wrong but I realized that it was not obvious to the team. I realized that my team was not aware of the underlying principles and details that would allowed them to diagnose and solve problems with stand-ups.People who have experienced good stand-ups will generally know what can be done when things aren't working well. For novice stand-up attendees, when things go wrong, it is much less likely that they'll figure out what to do. One way to approach this issue is to claim that it's all a matter of tacit knowledge and novices just need to attend more well-run stand-ups. I believe, however, that it's much more likely that given no assistance, novices will simply abandon the practice of daily stand-ups. This would be unfortunate since well-run stand-ups add significant value to projects.This is my attempt to communicate some of the previously tacit knowledge on the benefits and consequences of common practices for daily stand-ups. These patterns of daily stand-up meetings are intended to help new practitioners as well as remind experienced practitioners of what they might already know in their gut.
Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility | Google Testing Blog
If your name is Larry Page, stop reading this now.
Let me first admit that as I write this I am sitting in a company lounge reminiscent of a gathering room in a luxury hotel with my belly full of free gourmet food waiting for a meeting with the lighthearted title "Beer and Demos" to start.
Let me secondly admit that none of this matters. It's all very nice, and I hope it continues in perpetuity, but it doesn't matter. Engineers don't need to be spoiled rotten to be happy. The spoiling of engineers has little to do with the essence of a 21st century tech career.
Now, what exactly does matter? What is the essence of a 21st century tech career that keeps employees loyal and engaged with productivity that would shame the most seasoned agile-ist? I don't yet have the complete story, but here are three important ingredients...
The Application of Pareto's Principle to the Adoption of Agile Practices - Part 1 of N | BigJimInDC
If you believe in Pareto's Principle (otherwise known as the 80-20 Rule), then you believe that it can be applied literally everywhere. At its heart, Agile practices are about doing what works and ignoring the rest (at least until the time is right). In a world where people are constantly searching for silver bullets, getting distracted by zealot turf wars, and feeling the crunch of deadlines, novice adopters of Agile practices need to learn what out of"agile" is immediately important for their situation, and what they can safely ignore until a latter point in time.
Monday, August 22, 2011
Solving Symptoms - Esther Derby on Agile Retrospectives | Agile Zone
Esther Derby on Agile Retrospectives:
Too many people teaching Scrum or Agile short-change retrospectives–teaching new ScrumMasters and coaches to make lists, rather than help the team think, learn, and decide together.
Thursday, August 18, 2011
Open Offices for Agile Teams May Be Bad for Workers | DevX
Most agile development teams work in open office environments, which improve communication, collaboration, and teamwork. However, several new studies suggest that theses layouts may actually be harmful for the developers who work in them. One study found that moving to an open office space caused a 32 percent drop in workers' well-being and 15 percent decrease in productivity. Another found that 90 percent of open offices caused higher levels of stress, conflict, high blood pressure and high staff turnover.
Monday, August 8, 2011
The Elusive “Quick Iteration”: Tips for Indie Devs « #AltDevBlogADay
From agile and scrum to extreme programming, everyone’s trying to nail down what it takes to iterate on products quickly and efficiently. There are a lot of methodologies that you can employ to guide you through shipping products. But today, I’ll be talking specifically about video games and how, as a developer, you can use a loose process and follow some basic rules in order to get quality games quickly out the door. You might argue that in today’s day and age, with the Valves and Blizzards of the world, that taking your time speaks volumes for the quality of a game. Well, yes and no. For big AAA companies with a reserve of cash, that might make sense but as an indie developer you live and die off of shipping. The importance of quality and fun has not changed. However, the games industry is much more accessible and now developers utilizing fast iteration can make ridiculously high quality games in very short amounts of time. It’s one of the few things we can do better than big developers.
Tuesday, July 12, 2011
Why every programmer should learn Python or Ruby | ReliScore.com
If you are a student, you probably know C, C++ and Java. A few know VB, or C# / .NET. At some point you’ve probably built some web pages, so you know HTML, CSS and maybe JavaScript. By and large, it is difficult to find students who have any exposure to languages beyond this. And this is a shame because there are a number of programming languages out there which will make you a better programmer. In this article, we give some reasons why you must learn Python or Ruby.
Saturday, July 9, 2011
Tools Journal - Top 15 Kanban Tools In An Agile World
Kanban, also spelled kamban and literally meaning "signboard" or "billboard", is a concept related to lean and just-in-time (JIT) production. According to Taiichi Ohno, the man credited with developing Just-in-time, kanban is one means through which JIT is achieved. Kanban is not an inventory control system. Rather, it is a scheduling system that tells you what to produce, when to produce it, and how much to produce.
In our continuous effort to bring you the most powerful software tools built for all the requirements of global IT Community across various categories we have been listing the best tools in each of the categories across software development life cycle. In this article lets have a look at over 10 of the best "Kanban" tools available in the market. Obviously i may have missed one or two and would appreciate if you could leave your comments with regards to any missed tools or ones listed below.
The new user story backlog is a map
Why the flat user story backlog doesn’t work, and how to build a better backlog that will help you more effectively explain your system, prioritize, and plan your releases.