Browse by Tags

Tagged Content List
  • Blog Post: You suck at TDD #4 – External dependencies

    When I started doing TDD, I thought it was pretty clear what to do with external dependencies. If your code writes to a file system – for example – you just write a file system layer (what would typically be called a façade, though I didn’t know the name of the pattern back then), and then you can mock...
  • Blog Post: Response to comments : You suck at TDD #3–Design sensitivity and improvement

    I got some great comments on the post, and I answered a few in comments but one started to get very long-winded so I decided to convert my response into a post. Integration tests before refactoring The first question is around whether it would be a good idea to write an integration test around code before...
  • Blog Post: You suck at TDD #2–Mocking libraries

    Note: I am focusing only on the design impact of TDD. To better understand the overall impact, see this series of posts by Jay Bazuzi. My first experience with TDD was back in 2002 or so, and it was in C++, so there weren't any mocking libraries available. That meant that I had to use hand-written mocking...
  • Blog Post: You suck at TDD #1: Rewrite the steps

    I've been paying attention to TDD for the past few years – doing it myself, watching others doing it, reading about it, etc. - and I've been seeing a lot of variation in the level of success people are having with it. As is my usual approach, I wrote a long and tedious post about it, which I have mercifully...
  • Blog Post: Agile Transitions Aren't

    A while back I was talking with a team about agile. Rather than give them a typical introduction, I decided to talk about techniques that differentiated more successful agile teams from less successful ones. Near the end of the talk, I got a very interesting question: "What is the set of techniques...
  • Blog Post: Resharper tip #1: Push code into a method / Pull code out of a method

    Resharper is a great tool, but many times that operation that I want to perform isn’t possible with a single refactoring; you need multiple refactorings to get the result that you want. I did a search and could find these anywhere, so I thought I’d share them with you. If you know where more of these...
  • Blog Post: Port/Adapter/Simulator and error conditions

    An excellent question on an internal alias came up today, and I wanted to share my response more widely. The question is around simulating error conditions when doing Port/Adapter/Simulator . For example, if my production adapter is talking to a database, the database might be unreachable and the real...
  • Blog Post: Agile team evaluation

    I’ve been thinking a bit about team evaluation. In the agile world, this is often done by looking at practices – is the team doing pairing, are they doing story mapping, how long is their iteration length? This is definitely a useful thing to do, but it can sometimes be too prescriptive; a specific practice...
  • Blog Post: Agile management

    A friend at work posted a link to the following article: I’m Sorry, But Agile Won’t Fix Your Products and I started to write a quick note but thought it deserved a bigger response +++++++++++++ Okay, so, I agree with pretty much all of the article. As is often the case, I went...
  • Blog Post: Port/Adapter/Simulator and UI

    I’ve been working on a little utility project, and I’ve been using port/adapter/simulator on both the server-side parts and on the UI parts. It has been working nicely, though it took me a while to get there. Initially, I started with a single UI class. After a bit of extension, it looked a bit ugly...
  • Blog Post: No bugs journey episode 2: It’s a matter of values…

    Read episode 1 first. Here we are at episode 2, and time for another question. Of the three, which one do you value the most? Shipping on schedule Shipping with a given set of features Shipping with high quality Write down your answer. Ha ha! It was a trick question. Pretty much everybody is going to...
  • Blog Post: No Bugs Journey Episode 1: Inventory

    Over the past few years I had the opportunity to work in an environment in which we achieved a significant reduction in bugs and an associated increase in quality and developer satisfaction. This series will be about how to start the journey from wherever you currently are to a place with fewer bugs...
  • Blog Post: Unit test success using Ports, Adapters, & Simulators–kata walkthrough

    You will probably want to read my conceptual post on this topic before this one. The kata that I’m using can be found at github here . My walkthrough is in the EricGuSolution branch, and I checked in whenever I hit a good stopping point. When you see something like: Commit: Added RecipeManager class...
  • Blog Post: Unit Test Success using Ports, Adapters, and Simulators

    There is a very cool pattern called Port/Adapter/Simulator that has changed my perspective about unit testing classes with external dependencies significantly and improved the code that I’ve written quite a bit. I’ve talked obliquely about it and even wrote a kata about it, but I’ve never sat down and...
  • Blog Post: Simulators or not?

    I’ve been spending some time playing with Cockburn’s hexagonal architecture (aka “ports and adapters”), and the extension I learned from Arlo, simulators . I’ve found it to be quite useful. I was writing some code, and I ended up at a place I didn’t expect. Here’s the situation. I have the following...
  • Blog Post: Identifying your vertical story skeleton

    I’ve been leading an agile team for a while now, and I thought I would share some of the things we’ve learned. This one is about vertical slices, and learning how to do this has made the team more efficient and happier. To make this work you need a team that is cross-functional and has the skills to...
  • Blog Post: Individual Empowerment and agile...

    (Interestingly, I find myself writing more about agile and team stuff now that I'm not on a development team....) This is in response to a question about how you balance individual empowerment with the collaborative approach on a agile tem... *** Agile is all about the team, and being...
  • Blog Post: Project managers for agile teams...

    A recent question about skill requirements for project managers of agile teams led me to write this: In traditional project management, “project manager” means “person who is in charge”. In other words, that person makes the decisions, with varying degrees of depth (sometimes it’s high-level, sometimes...
  • Blog Post: Moving from "write no tests" to TDD

    There was a post on an internal alias about moving a team that has not been creating any developer-written tests to one that does TDD. I wrote a reply that I think may be of more general interest... Developers are fluent in code. I think any time you are talking to developers about engineering practices...
  • Blog Post: Unit testing through the UI

    One of my readers asked whether there were any UI unit testing tools. While I have seen some ASP.net tools like this, in general I'd expect that you would unit test a UI by making the UI a very thin layer (one that doesn't really need testing), and writing the unit tests to talk to the layer underneath...
  • Blog Post: xUnit.net...

    From Jim Newkirk, one of the original NUnit authors... xunit.net
Page 1 of 1 (21 items)