Rethorical questions from a developer
Can someone show me a successful TDD project? Can someone tell me how writing code is improved by writing the very same tests that the developer has in mind when developing the code of a function? Can someone tell me what are tests good for if for every refactoring you need to create a consistent separate tasks for fixing the unit tests? Can someone tell me why is it better to write functions that are four lines long and redirect the functionality in other functions? Why does everyone think that a function call is zero effort?
Can someone tell me when was the last time they actually felt that by applying a design pattern ‘by the book’ they improved the original code they wrote, they made it more efficient while they didn’t realize that they are complete idiots for not using that solution in the first place? Is there some bad coding practice that design patterns improve? Is there any moment where someone felt that by saying “a singleton object” instead of “single/unique instance” they improved anything whatsoever? Can someone tell me how is anything improved when someone says “I implemented a half-sync-half-async pattern for a TCP client” instead of saying “I implemented a TCP client stack”?
Can someone show me how pair programming can make your team develop two times faster when in fact you divide your workforce by two and every product of a pair of programmers is less than what a developer would write on his own in the same amount of time?
Can someone show me what SCRUM team does not transform brilliant developers into mediocre engineers? Can someone tell me why everybody thinks that SCRUM makes you develop faster when, in fact, it makes you develop slower? Can someone show me how stopping several times during the development of a product and delivering partial products that will NEVER be used improves anything? Can someone show me SCRUM projects that haven’t fully delivered in an obscene amount of time? Can you show me someone doing SCRUM by the book and not bankrupt yet?
And can someone explain me why brilliant developers who ask themselves these questions are considered an issue and mediocre developers embracing bullshit and always reading the next crappy-agile-extreme methodology book, mystically embracing the mediocrity of it will make them very well seen?
I suppose all these are rethorical. If you have a good answer to any of these, let me know.
PS: Two insightful links for reference: Agile is a sham (via Radu) and Good Agile Bad Agile (via previous link). The first one talks about how Agile started to become a ball and chain for developers – and an incredible business for the ones that evangelize it. The second one tells the same story 5 years earlier, and gives examples of good and bad agile – also suggests that truly agile methodologies should not be named agile (to clear any confusions) and should not be named ‘methodology’ (because anything named methodology is bad).