Over the past few years as I gain more and more experience in not only building software and products but also in leading teams and projects…
This blog post titled "Agile is a Sham" offends me a little bit. The post screams hey, I am a cowboy programmer, and it almost implies that if you employ processes then you are stupid.
In this day and age, I would have thought finding the right tool for the right job is common sense. Apparently not.
Agile, among many other things, is not a silver bullet - it never was and it never will be. The key thing is to experiment and find what works for you, your team and your company. Most software projects are done in a team environment - putting a bunch of talented developers and designers together actually isn’t as simple as many seem to think. One example is right out of that original blog post:
Given that I am not a fan of prescribed process as the solution to our problems, you can infer my opinion of the general quality and effectiveness of those programmers who teach these courses.
From that attitude, I can already see that he is an interesting developer to manage.
A team needs to function efficiently as a team. Having one or two ace developers aren’t going to help a lot if they can’t get along with the others.
Not to mention that people have spent time and effort proving that techniques such as TDD work for certain projects.
As many things in life, there are always people who try to take advantage of others. No doubt there are questionable ‘agile consultants’ who try to make a fortune out of uninformed clients. Just because some people aren’t using agile effectively or even correctly, doesn’t mean agile itself is a sham. Developers constantly make mistakes and write shitty code - should we say all the programming languages out there are a sham?
Keep an open mind is important, and a lot of times even necessary. To dismiss agile all together is in my opinion childish, and offensive to others who try to improve things and create more value.