BUTUNCLEBOB.COM
MOVED |
MOVED |
MOVED |
MOVED |
MOVED |
MOVED |
The new site can be viewed here.
The OLD Object Mentor blog site.
Powered by FitNesse
Uncle Bob |
James Grenning |
Bob Koss |
Michael Feathers |
||||
David Chelimsky |
Tim Ottinger |
Dean Wampler |
20 Dec 2006 | Uncle Bob | New Blog Site | We have a new blog site. http://blog.objectmentor.com |
20 Dec 2006 | Uncle Bob | Java Dates | The horrible state of Dates in the Java standard library. |
5 Dec 2006 | Uncle Bob | Sketch Fighter | If you own a Mac, you need to get this game. |
26 Oct 2006 | Uncle Bob | Abstract Factory by Daniel T | Another "story" about Abstract Factory. |
20 Oct 2006 | Uncle Bob | The Hungarian Abhorrence Principle | Denoting data type in variable names implies a design flaw. |
18 Oct 2006 | Uncle Bob | Rubarian Notation | Egad! I am tempted to denote type in my ruby variable names! |
18 Oct 2006 | Uncle Bob | Craftsman 49 | Abstract Factory |
15 Oct 2006 | Uncle Bob | P2M2: Pair Programming Maturity Model | Pairing is useful, but... |
09 Oct 2006 | Michael Feathers | The Morality of Error Checking | Can there be a one-size-fits all policy for error recovery? |
07 Oct 2006 | Tim Ottinger | Estimating Patterns | Tom D's wisdom for estimators is recommended |
29 Sep 2006 | Uncle Bob | Craftsman Column | All the "Crafstman" columns, including some that never made it to print. |
28 Sep 2006 | Dean Wampler | Which Takes More Discipline, XP or Waterfall? | Is XP an excuse for undiscplined hacking or is does it require more discipline than waterfall methods? |
27 Sep 2006 | Tim Ottinger | Collateral Effort | Dealing with the sense of waste |
27 Sep 2006 | Tim Ottinger | Don't refactor everything | Refactor all your code? Not so! |
26 Sep 2006 | Tim Ottinger | Sooner, not Faster | Is agile development about going faster? I don't think so. |
25 Sep 2006 | James Grenning | Over a Half Million Embedded Developers Behind On Their Learning | Well not all of them |
22 Sep 2006 | Tim Ottinger | Optimizing Away Estimates | Goals, Estimates, Commitments |
21 Sep 2006 | Dean Wampler | Contract4J5 v0.6.0 Released | A new release of my open-source Design by Contract tool for Java that is implemented using AspectJ |
15 Sep 2006 | David Chelimsky | Quality Ensurance | Thought for the day |
13 Sep 2006 | Tim Ottinger | More work or Less Work | Doing less early means doing more later |
09 Sep 2006 | Tim Ottinger | Agile is More Work | Is agile development more work for the programmer? |
7 Sep 2006 | Dean Wampler | Should You Ever Override Concrete Methods? | There are several anti-patterns associated with overriding concrete methods, so don't do it! |
6 Sep 2006 | Uncle Bob | Safe Computations | Math in a computer is not the same as math on paper. |
6 Sep 2006 | Michael Feathers | Designing Away Preconditions | Preconditions aren't a given, sometimes they can be eliminated. |
6 Sep 2006 | Tim Ottinger | Frameworks | Frameworks are for the impatient |
5 Sep 2006 | Uncle Bob | Convex Hull Timing | More on the preformance of computational geometry." |
4 Sep 2006 | Uncle Bob | Joel on Ruby | Joel says: "No! Don't do it!" |
2 Sep 2006 | Uncle Bob | The Yes and No Game | A fun game to play with preschoolers, with a twist. |
1 Sep 2006 | Uncle Bob | Untested Code is the Dark Matter of Software | Another response to Cedric |
1 Sep 2006 | Uncle Bob | The Danger of Mock Objects | A response to Cedric |
31 Aug 2006 | Uncle Bob | Making Messes in Ruby | It's easy! |
30 Aug 2006 | Uncle Bob | Refactoring Paralysis | I wish I had a refactoring tool in Ruby! |
29 Aug 2006 | Tim Ottinger | How Many Feathers? | How many feathers can you carry? |
28 Aug 2006 | Uncle Bob | Comparing the Speed of Java, C++, and Ruby | A simple benchmark with some surprises |
26 Aug 2006 | Uncle Bob | Stardust | An astronomy lecture, and a best man's toast. |
25 Aug 2006 | Uncle Bob | The Perverse Nature of Performance Tuning | It never works exactly the way you think. |
25 Aug 2006 | Tim Ottinger | Addicted to Expensive Tools? | Do we drown in cool tools? |
25 Aug 2006 | Tim Ottinger | Vertical Space Revisited | Increase your density for clarity's sake |
22 Aug 2006 | Michael Feathers | Liskov Substitution in Dynamic Languages | What is the analog of LSP in Ruby, Python, and Smalltalk? |
18 Aug 2006 | Uncle Bob | SRP in Ruby | The Single Responsibility Principle in Ruby |
18 Aug 2006 | Tim Ottinger | What is it with vertical space | Save a mouse, delete a blank line |
17 Aug 2006 | Uncle Bob | Ruby Combinations | An issue with making Ruby code clean. |
16 Aug 2006 | Tim Ottinger | Refactor It Ugly | Choose to be ugly for a little while |
15 Aug 2006 | Tim Ottinger | Start Tight | Avoid regrets with a harsh start |
14 Aug 2006 | Uncle Bob | Common Decency | Washroom Etiquette |
14 Aug 2006 | Dean Wampler | More on Rails and Ruby vs. Java and .NET | More Thoughts on Why Rails is Important |
13 Aug 2006 | Uncle Bob | Rails | I've just started reading the (beta) Agile Web Development in Railsß |
04 Aug 2006 | Dean Wampler | Extracting Usage Documentation From Tests | Our tests document how to use our code. Why don't our documentation tools extract this information? |
04 Aug 2006 | Tim Ottinger | You are so not alone | Really not so different after all |
2 Aug 2006 | Uncle Bob | Green Wrist Band | Get your own! |
31 Jul 2006 | David Chelimsky | Development Time Dependency | What do you call that other kind of dependency? |
20 Jul 2006 | David Chelimsky | Spec Organization | The effects of thinking of specs as, well... specs |
20 Jul 2006 | Dean Wampler | Model-Driven Development: One Curmudgeon's View | In which our intrepid mentor bloviates on the role, if any, of MDD |
14 Jul 2006 | Tim Ottinger | Arguing with myself | What goes around comes around |
14 Jul 2006 | David Chelimsky | The Occasional Reminder | Do you remember why you started practicing TDD and refactoring? |
09 Jul 2006 | David Chelimsky | It Takes Two | Exposing data is one offense, but the real violation is grabbing it |
29 Jun 2006 | Tim Ottinger | Class Is Not A BASIC Program | What's wrong with these classes? |
29 Jun 2006 | Tim Ottinger | Classes Don't Encapsulate | Classes don't encapsulate like they used to |
27 Jun 2006 | Tim Ottinger | Tests are a language | Could we build a trellis for growing our language? |
27 Jun 2006 | Tim Ottinger | Apologizing for Code | A comment is really an apology |
24 Jun 2006 | Tim Ottinger | The Quiet Bullpen | Listen for the sound of software |
14 Jun 2006 | Michael Feathers | Vise | A tool which aids refactoring in Java |
12 Jun 2006 | Uncle Bob | Agile People Still Don't Get It | Response to Cedric's rant. |
10 Jun 2006 | Uncle Bob | Taking Care | An attitude of development. |
10 Jun 2006 | Michael Feathers | The Reluctant Global Variable | An example of "Just Create One" with an interface. |
8 Jun 2006 | Uncle Bob | Mac Book Pro Comic | More on a sweet machine. |
4 June 2006 | David Chelimsky | Single Responsibility Principle Applied to Methods | |
3 June 2006 | David Chelimsky | Single Responsibility Principle is about Implementation | |
30 May 2006 | Michael Feathers | Refactoring Needs More Than Tests | The other precondition for refactoring |
27 May 2006 | Michael Feathers | The Golden Rule of API Design | Do unto others as.. |
24 May 2006 | Paul Pagel | Over Mocking | mock me once shame on you, mock me twice... |
20 May 2006 | Uncle Bob | Mac Book Pro | A sweet machine. |
20 May 2006 | Michael Feathers | Concepts That Don't Like To Be Named | How clear does a concept need to be to warrant a function? |
18 May, 2006 | David Chelimsky | Singular Responsibility | |
16 May 2006 | Michael Feathers | It's Time To Deprecate Final | It's the bane of testing. |
11 May 2006 | Michael Feathers | Changing Notions of Design | Toward a new norm. |
7 May 2006 | Michael Feathers | Dealing with the Lame Duck Code Base | What makes code worth your care? |
3 May 2006 | Micah Martin | Smalltalk Bowling | My first Smalltalk program... the Bowling game. |
17 Apr 2006 | Micah Martin | Paper Bullet | Some development teams have more fun than others |
11 Apr 2006 | Tim Ottinger | The Cheesiest Thing That Might Work | Elegance can wait for the green bar. |
11 Apr 2006 | Tim Ottinger | Where do Your Tests Come From | What are you going to do next, and why? |
10 Apr 2006 | Tim Ottinger | Removing Redundancy Badly | How not to refactor your code (TDD pathology #3) |
8 Apr 2006 | Uncle Bob | Wading through Code | Get your hip-boots on. |
27 Mar 2006 | Michael Feathers | Technologists Drive | Who drives technology change? |
26 Mar 2006 | David Chelimsky | Using multiple fixtures | Using test fixtures as they were inititially intended |
24 Mar 2006 | David Chelimsky | Bowling without prefactoring | Avoiding the temptation of up front design when you're not really up front |
23 Mar 2006 | Uncle Bob | New Java Enums are Cool | I have found the new Java Enums to be more than just curiosities. |
20 Mar 2006 | Uncle Bob | Architecture is a secondary effect. | Architecture is important to keeping a system flexible, changeable, malleable. But it's a secondary effect. |
17 Mar 2006 | Paul Pagel | Prefactoring | ...going off the rails on the pattern train |
16 Mar 2006 | Tim Ottinger | Testing Hypothetically | Testing as if it were possible |
3 Mar 2006 | David Chelimsky | Bowling with rSpec | The classic bowling game exercise with a twist |
25 Feb 2006 | Tim Ottinger | Harder than it sounds | It all sounds so simple |
22 Feb 2006 | Tim Ottinger | Maintain an Even Strain | Spreading the pain like it was peanut butter |
15 Feb 2006 | Uncle Bob | Clean Code: Args. | An article about professionalism, craftsmanship, and refactoring. |
15 Feb 2006 | Micah Martin | Beware The Freebie | Watch out for stories that developers give you for free |
14 Feb, 2006 | David Chelimsky | We've Got Stories Bigger Than Your Iteration | How do you measure points across teams? |
10 Feb 2006 | Tim Ottinger | Everything In Its Place | Test Contaminated? |
10 Feb, 2006 | David Chelimsky | Keeping Infection in Check | In every other context besides software, infection is bad. Why is test-infection any different? |
5 Feb, 2006 | David Chelimsky | Testing Abstract Classes | Comparing strategies to test common behavior |
2 Feb, 2006 | David Chelimsky | Discovering Reuse | Reuse is best discovered, not planned |
1 Feb, 2006 | David Chelimsky | Fostering Credibility in Customer Tests | Make sure your customer tests tell the truth |
31 Jan 2006 | Tim Ottinger | Reckless Refactoring | Recklessly refactoring considered harmful |
30 Jan, 2006 | David Chelimsky | Mock Observations | Observations re: Hand Mocks vs Tool-Generated Mocks |
25 Jan 2006 | Michael Feathers | Component-based Fixtures for FIT | Attempting a new fixture structuring mechanism |
24 Jan 2006 | Michael Feathers | Programming On Your Own | Is collective code ownership bad for beginners? |
20 Jan 2006 | Paul Pagel | Sentential Testing | where do we bind our language? |
19 Jan 2006 | Tim Ottinger | TDD Bumper Shots | Testing the hard way - TDD Pathology 2 |
14 Jan 2006 | Michael Feathers | Library Code versus Application Code | Do we treat these types of code differently? Should we? |
13 Jan 2006 | Tim Ottinger | Software Super Powers | Would you like a cape with that? |
11 Jan 2006 | Bob Koss | Deja Vu - Inheritance Bytes | The Adapter Pattern saves the day again |
9 Jan 2006 | Tim Ottinger | Mother May I? | If we are playing this game, we are doing this backward - TDD Pathology 1 |
7 Jan 2006 | Uncle Bob | Agile means you never have so meet your deadlines. | A common myth |
6 Jan 2006 | Tim Ottinger | Naive Tests Don't Help | You've got to know the territory |
5 Jan 2006 | Paul Pagel | Fresh Testing | Keeping tests honest |
5 Jan 2006 | Tim Ottinger | Closing In on Test-Driven | Getting Closer to TDD |
4 Jan 2006 | Tim Ottinger | Stable API | Is the API stable like the native type list? |
02 Jan 2006 | Michael Feathers | An Object Is A Choice | ..and a chance to choose wisely. |
30 Dec 2005 | Michael Feathers | My Recent Reads | The limit as reading list approaches infinity... |
30 Dec 2005 | Uncle Bob | On Documentation | Documenation is not evil, and is not anathema to Agile. |
29 Dec 2005 | Tim Ottinger | Reasons to Stay Wrong | Do tests create stability you don't want? |
28 Dec 2005 | Tim Ottinger | Debuggers? Yes | A debugger is a handy tool after all |
28 Dec 2005 | Tim Ottinger | Learn Dynamically | Dynamic languages are more learnable than static languages. |
28 Dec, 2005 | David Chelimsky | Dependency Injection Is Only Mostly Good | Injecting dependency on factories is just Service Locator in disguise |
December 27, 2005 | Tim Ottinger | Not Yet Test-Driven | Maybe I don't get it. |
11 Dec, 2005 | David Chelimsky | Boundaries of Coding for Testability | Are tests and code under test the same? Do the same principles apply? |
4 Dec, 2005 | Michael Feathers | Moving Toward Another Design Principle | Layers layers layers. |
2 Dec, 2005 | David Chelimsky | Why Limit Fit | FIT is for customers and xUnit for programmers, right? Well, why limit ourselves? |
1 Dec 2005 | Uncle Bob | John Vlissides | Obituary |
17 Nov 2005 | Uncle Bob | MSTDD | Microsoft's notion of TDD. |
10 Nov 2005 | Michael Feathers | Is Programming Too Easy? | Heresy? You decide. |
8 Nov 2005 | Uncle Bob | Bounded Wildcards | More on the wonderfully twisted subtype relationships of generics. |
5 Nov 2005 | Uncle Bob | Is a list of circles a list of shapes? | Of the wonderfully twisted subtype relationships of lists. |
31 Oct 2005 | Micah Martin | PreludeToTheMockOff | Pre-Mockoff ramble |
30 Oct, 2005 | David Chelimsky | Stop Mocking Me | an experiment in hand coding mocks vs mock tools like NMock and Rhino |
26 Oct 2005 | Uncle Bob | Does Visual Studio Rot the Mind? | A truly wonderful article (talk) by Charles Petzold |
25 Oct 2005 | Uncle Bob | Extract Class | A pleasant combination of refactorings using IntelliJ[?] (and Eclipse?) |
23 Oct 2005 | Bob Koss | Refrigerator Code | Be proud of your code |
19 Oct 2005 | Uncle Bob | Analysis vs. Design | The difference between "what" and "how". |
17 Oct 2005 | Michael Feathers | Things Happening At OOPSLA | Day 1 of the three ring circus |
10 Oct 2005 | Uncle Bob | Frackin' Variable Naming Contest | Please help me figure out what the name of this variable should be. |
7 Oct 2005 | Uncle Bob | The Bastard Child | Are unit tests the bastard child? How well do we treat them? |
6 Oct 2005 | Uncle Bob | The Three Rules of TDD | Test Driven Development is driven by three simple rules. |
5 Oct 2005 | Michael Feathers | Honest Code | Think code can't lie? Think again. |
5 Oct 2005 | Uncle Bob | The Sensitivity Problem | Software is very sensitive to error. Others have solved this problem. |
28 Sept, 2005 | David Chelimsky | Improvised Software - Version II - Iteration II | stories are to the coder as the song is to the improvisor |
20 Sept, 2005 | Michael Feathers | Reviving Beauty | It's okay to love good code. |
16 Sept, 2005 | David Chelimsky | Manage dependencies, not aesthetics | Our sense of smell is an important tool, but it sometimes can lead us down the wrong path |
7 Sept, 2005 | David Chelimsky | Improvised Software - Version II - Iteration I | Agile development is still like improvised music |
5 Sep 2005 | Uncle Bob | Palm Life Drive Premature? | Elegant, cute, not ready for prime time. |
31 Aug 2005 | Michael Feathers | Working Clean | Every craft has it's obsessions. Let's borrow some. |
30 Aug 2005 | Uncle Bob | Pronouncing Binary | How to pronounce binary numbers. |
29 Aug 2005 | Micah Martin | ICarumba | On the .NET interface naming convention. |
27 Aug 2005 | Uncle Bob | Joel on XP (Again) | Oh, Joel! |
26 August 2005 | Bob Koss | Using the Adapter Pattern to Decouple Legacy VB Code | Adding tests to existing VB code |
23 August 2005 | Michael Feathers | Do You Have Iteration Slop? | So, how long is your iteration, really? |
25 July 2005 | Uncle Bob | The Agile Test | A set of questions I asked during my Agile 2005 Keynote. |
29 Jun 2005 | Michael Feathers | Refactoring Against the Red Bar | Red bar bad? Not so fast. |
24 Jun 2005 | Uncle Bob | The Prime Factors Kata | Another Kata exploring a simple algorithm with rich implications. |
23 Jun 2005 | Uncle Bob | The Bowling Game Kata | A complete Kata worked out in tiny little steps. |
20 Jun 2005 | Uncle Bob | The Coding Dojo | A programming metaphor from the domain of martial arts. |
15 June 2005 | Micah Martin | Software Apprenticeship | A few comments on the topic |
15 June 2005 | Micah Martin | Jack and Jill | A silly fictional story relating to software craftsmanship |
15 Jun 2005 | James Grenning | My 2 cents on C++ Coding Standards | A simple C++ coding standard |
11 May 2005 | Uncle Bob | Principles of OOD | Eleven principles of object oriented design. |
10 May 2005 | Uncle Bob | Empirical vs. Analytical Analysis | A simple example showing the interplay between empirical and analytical analysis |
30 Apr 2005 | Uncle Bob | Visitor vs. instanceof | When should you use Visitor, Acyclic Visitor, and instanceof |
27 Apr 2005 | James Grenning | CppTestTools Memory Leak Detector | Example of the memory leak detector built into CppTestTools |
24 Apr 2005 | James Grenning | Success is an Option Too | Software development problems are not new. Agile addresses critical success factors identified by Standish Group Chaos Report |
18 Apr 2005 | James Grenning | The Problem of Managing Variations In C | How a mess is created in C |
11 April, 2005 | David Chelimsky | Improvised Software - Iteration One | Agile development is like improvised music |
8 April, 2005 | David Chelimsky | Fair Housing for Business Rules | Business rules are implemented in the code, but they are expressed in the tests. |
06 Apr, 2005 | Michael Feathers | Inside the Design Mind | Learning about how the industry views design |
31 Mar, 2005 | Michael Feathers | Before Clarity | Good code is clear and understandable, so we should always attempt to keep code as clear as possible. Or should we? |
29 Mar, 2005 | David Chelimsky | Object Views | Interfaces are to implementation classes like database views are to database tables |
26 Mar 2005 | Uncle Bob | Conformance To Plan | Why is conformance to plan such a big deal? Especially since we almost never do. |
18 Mar 2005 | Uncle Bob | Joel and Eckel On XP | How can two such credible people come away with two such different views? |
14 Mar 2005 | James Grenning | The Advantage of Not Having Hardware Yet | Anticipated hardware is replaced by abstractions, creating a design that can stand the test of time |
25 Feb 2005 | James Grenning | TDD and Memory Leaks | Prevent leaks with TDD |
24 Feb 2005 | James Grenning | They Are All Priority 1 | How can a product manager deliver Ten Priority 1 Features |
14 Mar, 2005 | Micah Martin | Building a City | Building software is like ... |
11 Mar, 2005 | David Chelimsky | Duplication in tests | Why it's OK to test the same code in customer tests and unit tests. |
13 Mar 2005 | Uncle Bob | Brain Surgery Guides | A Metaphor for Acceptance Tests. |
3 Mar 2005 | Uncle Bob | Just 10 Minutes without a Test | I lapsed for ten minutes. I paid the price. |
24 Feb 2005 | Uncle Bob | Vehement Mediocrity | Why do junior developers always argue that quality takes time? |
22 Feb 2005 | James Grenning | Transforming Idea | Ah! Ha! Experience of how objects can save embedded developers from reinventing the wheel |
21 Feb 2005 | Uncle Bob | The Next Big Thing | The next big thing that will capture the industry's attention |
7 Feb 2005 | Uncle Bob | Incremental Architecture | Making long term sweeping changes to architecture incrementally. |
8 Jan 2005 | Uncle Bob | Stable Dependencies Fixture | Yet another fixture to complement the JDepend suite of FitNesse fixtures. |
5 Jan 2005 | Micah Martin | Buffer To The Rescue | An adventure enabling large file uploads in FitNesse |
5 Jan 2005 | Uncle Bob | Module Metrics Fixture | A new fixture to complement the Module Dependencies Fixture in my previous blog |
31 Dec, 2004 | David Chelimsky | FitNesse And Hibernate | How to test a Hibernate driven app using FitNesse |
23 Dec 2004 | Uncle Bob | JDepend Fixture | A free Christmas gift for Java programmers. |
16 Dec 2004 | Young Bob | Continuous Integration | The more often you do it, the easier it gets. |
7 Dec 2004 | Uncle Bob | Outlook. Ugh. | Who ARE these people? |
3 Dec 2004 | Micah Martin | Wiki Vandalism | butunclebob.com gets vandalized |
29 Nov 2004 | Micah Martin | Delegates vs Command Pattern | An exploration of .NET's delegates |
26 Nov 2004 | Michael Feathers | Mulling Null | Sally and Ramon compare notes before meeting Aiden for the first time as Development Manager |
24 Nov 2004 | Michael Feathers | Sally's Exploration | Sally looks at some cases for 'Pass Null' |
23 Nov 2004 | Michael Feathers | Ramon Walks home | Ramon thinks about his day and politics at work |
22 Nov 2004 | Michael Feathers | The New Guy | Sally and Ramon test some code and discover something new about the new guy |
22 Nov 2004 | Uncle Bob | Home Computer of the Future | Is this a fraud? |
17 Nov 2004 | Micah Martin | Apples and Tigers | Comments on Apple's Tiger Tech Talk |
9 Nov 2004 | Uncle Bob | Singleton vs. Just Create One | The case against rampant use of the Singleton pattern |
23 Sep 2004 | Uncle Bob | The Web: Welcome to the 70's | Feeling sorry for myself. |
31 Aug 2004 | Uncle Bob | A Wonderful Race Condition | A cool discussion about an obscure technical detail. |
31 Aug 2004 | Uncle Bob | Speed Kills | Another Tortoise and Hare rant. |
21 Aug 2004 | Uncle Bob | Skepticism Leads to Understanding | A rant about something or other. |
5 Aug 2004 | Uncle Bob | I use Visitor all the time | A defense of the poor Visitor pattern. |
Add Child Page to FrontPage