Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

DevTeach presentations explained

I’m preparing my presentations for DevTeach and have come to realize that there is a price to pay for creativity. Here are the abstracts for three of my presentations.

Guerrilla Refactoring

Greetings, comrades. Welcome to the resistance! Our quarry today is a shamefully designed application that grows fat with duplication and crusty with hard-codedness. It feeds on itself behind a shield of corporate deadlines, each one stricter than the last. The cowardly code mocks us with cries of “We don’t have time! We don’t have time!” while features are grafted onto the application haphazardly with no thought to future reform!

But fear not! We have studied our enemy and have altered our attack plan accordingly. No more frontal assaults. We must liberate the code in focused skirmishes from its bourgeois oppressors! Patiently, we shall advance, tightening our grip in an ever-widening net of unit tests as we hunt down bugs like the dogs they are!

So join me, brethren and sistren! With our allies, the Design Pattern Legionnaires and the Dependency Liberation Front, we will train you to take your rightful place in the movement toward a better world, where features are not divided into tasks that are meted out to the “database gal” and the “guy that does the UI because he has PhotoShop installed”. Rather, they will be fully and utterly DEMOLISHED by fully armed, multi-functional, and domain-inspired programmers full of KNOWLEDGE AND FURY!!!1!!!

Viva La Revolucion!

(adapted, of course, from my original post on the subject)

Implementing a Brownfield Ecosystem: A Cultural Extravaganza

So you missed Folklorama again, eh? Of course, you did. It’s in Winnipeg. Well, fear not, coders! In this session, we’ll throw so much culture at you, you’ll think you’re back in high school biology.

A very important aspect of Brownfield applications is shifting the culture of your team. This starts with your project’s ecosystem. Many developers in Brownfield applications don’t even realize how many hoops they jump through during the course of a day to do simple things like checking in code and building the application. image

In this session, we’ll implement a full-fledged ecosystem for a Brownfield application. Working from the perspective of a single developer in a team, we’ll cover topics such as the structure of your version control system, your check-in process, automated builds, and continuous integration. In the process, we’ll talk about common pain points and common areas of friction that we can overcome with a few simple tool choices and a couple of mindset tweaks.

I’ll be getting by with a little help from my friends as we simulate a team environment using well-placed and impeccably groomed plants in the audience who will act as other developers in the team, some working with me, others not so much.

Adding automated tests to an existing codebase

It may seem like heresy but there are actual real-live applications out there inimage the world that don’t have unit tests! No, really! And I know it sounds crazy, but you could be brought on to one of these applications and be tasked with adding automated testing to them. 

Rare as these circumstances may be, it’ll help to be prepared for them. Because it won’t be as fun as you are probably imagining right now. For example, how do you automate a test for a web form that connects to a database, displays a form, then posts that data back to the database?

In this session, we’ll look at techniques for integrating tests into an existing codebase that has never had them before. When do you write tests for existing code? How do you test a mammoth method/class? How do you know if you aren’t breaking anything else? For answers to all these questions and more, read Michael Feathers’ Working Effectively with Legacy Code attend this session.


You see my dilemma. I wrote these in a fit of imagination without stopping to wonder how I would differentiate one from the other. For example, how do I talk about refactoring without mentioning automated tests? How do I implement a brownfield ecosystem without doing same?


In the end, I believe there will be overlap among the presentations. Indeed, I will probably use the same sample application for all three. I’ve justified it in my head by saying that the overlap is probably a good thing to help people see the interaction ‘twixt the various concepts. Plus, it means I can focus on a single element in, say, the refactoring presentation and leave some of the details to the automated tests presentation.

In any case, here is some clarification on the goal of each presentation:

Guerrilla Refactoring: How can you refactor an application for maintainability when there is no explicit buy-in from the PM and/or the business (and/or the rest of the development team)?

Implementing a Brownfield Ecosystem: A walk-through on adding source control, CI, and automated testing to an existing application. I’m planning to use plants in the audience to simulate a team environment to demonstrate what happens to you personally when others don’t play by the rules. The “cultural” part comes because this is very much an exercise in changing your team’s development culture. It was originally intended as a practical follow-up to Donald’s Parachuting into a Brownfield Application presentation but I notice he’s not doing it this time around.

Adding automated tests to an existing codebase: Here, we’ll dive deeper into automated testing for an existing app. It will be sort of a continuation of the brownfield presentation which will add the testing framework but not go any further. Admittedly, it will borrow heavily from Feathers’ book but I see that as a good thing.

For completeness, the fourth session I’m doing is on TDD for MVC applications. This one is more disparate than the others and should be a fun one as well, even if the abstract for it is the most boring of the four.

Kyle the Synergistic

This entry was posted in ASP.NET MVC, Brownfield, Community, Presenting, Refactoring, TDD. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://creedcultcode.blogspot.com Dale Smith

    Well, I am in Texas.

  • Kyle Baley

    Dale: I’m pretty sure if you show up to work with a machine gun, you won’t be called out on it.

    Wait…you have a machine gun?

  • http://creedcultcode.blogspot.com Dale Smith

    Hi Kyle,

    I’ve already got my own beret, but I’m not crazy about carrying a machine gun to the office, what with our current HR policies and so forth. Could the Dependency Liberation Front use a cook or a mechanic?

  • http://www.bzlab.ru Alexander Byndyu


    It is very funny and interesting post!
    Make refactoring, tests with not-Agile team is like play in chess =)

  • http://graysmatter.codivation.com Justice~!

    I think it all depends on the context – I know some people have very vitriolic reactions to Che while others in the country hail him as a hero. He’s very polarizing.

  • Mike Suarez

    Sorry kyle, didn’t mean to annoy you … i’m sort of a fun … i met you last year at South Florida Code Camp …

    I don’t engage in political discussions because i’ve wasted too much life on that … but i can’t help reacting to this kind of things … if that infamous picture shows in a room i am in, i will react by impulse … think of an animal that’s been beating through 25 years while watching that picture … like Alex in the ‘clockwork orange’ but for real …

    once again sorry to bug you

  • Kyle Baley

    Point taken and thanks for letting me off easy. In any case, I’m braver with the written word than I am in person. The actual presentation will almost certainly be played straight.

  • Mike Suarez

    Yeah its great not to take thing seriously (i’m a big fun of monty python an i have everything that netflix offers from them, including faulty towers).

    However … Cuba is not a remote fictional place … n’ things are real there n’ have been real for over 60 years …

    So brake a leg … but really, that material touches some people beyond abstract entertainment …

  • Kyle Baley


    Let’s not take things too seriously. It’s just an abstract meant to entertain, not a political platform to hang ideas off of. Think John Cleese’s “Don’t mention the war” episode of Fawlty Towers. Being of Ukrainian descent, I’m not exactly a stranger to the idea of revolution and ancestral oppression.

    As for the Nazi reference, I’ve covered that off too: http://codebetter.com/blogs/kyle.baley/archive/2008/01/04/monitoring-code-coverage-or-quot-how-to-descend-into-madness-quot.aspx

  • Mike Suarez

    sorry kyle .. can’t let this one slide … please steer away from politics … in particular … Viva la Revolucion is quite offensive to your southern neighbors from Cuba …

    I still don’t know why people can’t understand that ‘Viva la Revolucion’ is equivalent to ‘Sieg Heil’ … and ‘El Che’ was an international mass murderer …

    Ohhh by the way ‘Viva la Revolution’ is a phrase from Fidel Castro … Do u really need that in your slides?