Be an Expert in a Year – Growing the Agile Way
The guys over at Expert Table Tennis had a great idea. What would it take to become an expert? Dedication? Heart? Perseverance? The Expert in a Year Challenge took part during 2014 and followed the...
View ArticleIs Aiming For Potentially Shippable Good Enough? [Agile Safari]
What if we used accidentally shippable instead of potentially shippable? Would that help us aim higher? Tweet the Agile Safari Cartoon! I was working with some new agile teams and Read More The post...
View ArticleFrequently Asked Questions about Agile Technical Skills
What are the Agile Engineering Skills, Scrum Developer Practices, or Software Craftsmanship practices? These are three (of many) common names for a set of practices assembled in the mid-1990s to...
View ArticleHow TDD is More Than Simply Unit Testing
I was recently asked about the difference between unit-testing and Test-Driven Development (TDD). Specifically, why—if the end results are the same—would I recommend TDD over writing unit tests after...
View ArticleGood Design
I’ve learned not to assume a team has experienced a variety of software design skills. Some are writing elegant functional-paradigm code in archaic, challenging languages. Others are writing...
View ArticleGood Design, Part II: Code Smells
Last month we talked about good software design and introduced the notion of code smells. Code smells are names given to those instinctual thoughts you have whenever you look at a chunk of...
View ArticleGood Design, Part III: Refactoring
Remember this? public static ProductBean installProduct(String p) { ProductBean pi = new ProductBean(p); Connection c = new Connection("$Updates"); for (Record x : c.getAllForKey("PLUG_INS",...
View ArticleGood Design, part IV: The Role of Tests
We’ve seen how refactoring becomes the primary design activity on an Agile team. Diligent, confident refactoring is possible to the degree that the code is tested through an automated test suite. If...
View ArticleSharpen Your Knives
You’ve heard the old adage about the lumberjack who—in order to cut a tree in an hour—will take 45 minutes to sharpen the saw? This old analogy really needs updating: Not many of us are all that...
View ArticleObject Oriented Programming in a Nutshell
Next year I’ll likely be teaching Essential Test-Driven Development to a team that includes about 50% COBOL programmers. I told the client I’d look for a good object-oriented (OO) primer for those...
View ArticleBe an Expert in a Year – Growing the Agile Way
The guys over at Expert Table Tennis had a great idea. What would it take to become an expert? Dedication? Heart? Perseverance? The Expert in a Year Challenge took part during 2014 and followed the...
View ArticleIs Aiming For Potentially Shippable Good Enough? [Agile Safari]
What if we used accidentally shippable instead of potentially shippable? Would that help us aim higher? Tweet the Agile Safari Cartoon! I was working with some new agile Read More The post Is Aiming...
View ArticleFrequently Asked Questions about Agile Technical Skills
What are the Agile Engineering Skills, Scrum Developer Practices, or Software Craftsmanship practices? These are three (of many) common names for a set of practices assembled in the mid-1990s to...
View ArticleHow TDD is More Than Simply Unit Testing
I was recently asked about the difference between unit-testing and Test-Driven Development (TDD). Specifically, why—if the end results are the same—would I recommend TDD over writing unit tests after...
View ArticleGood Design
I’ve learned not to assume a team has experienced a variety of software design skills. Some are writing elegant functional-paradigm code in archaic, challenging languages. Others are writing...
View ArticleGood Design, Part II: Code Smells
Last month we talked about good software design and introduced the notion of code smells. Code smells are names given to those instinctual thoughts you have whenever you look at a chunk of...
View ArticleGood Design, Part III: Refactoring
Remember this? public static ProductBean installProduct(String p) { ProductBean pi = new ProductBean(p); Connection c = new Connection("$Updates"); for (Record x : c.getAllForKey("PLUG_INS",...
View ArticleGood Design, part IV: The Role of Tests
We’ve seen how refactoring becomes the primary design activity on an Agile team. Diligent, confident refactoring is possible to the degree that the code is tested through an automated test suite. If...
View ArticleSharpen Your Knives
You’ve heard the old adage about the lumberjack who—in order to cut a tree in an hour—will take 45 minutes to sharpen the saw? This old analogy really needs updating: Not many of us are all that...
View ArticleObject Oriented Programming in a Nutshell
Next year I’ll likely be teaching Essential Test-Driven Development to a team that includes about 50% COBOL programmers. I told the client I’d look for a good object-oriented (OO) primer for those...
View Article