programming

Creativity, innovation, and pushing the edge on what's possible

My Mom & I

Advice to a 14yo on Being a Girl in Tech

From Ask Me Anything — What would you tell 14 year old Abby about being a girl/future woman working in Tech?

Fun Ways to Teach Kids to Code

Following up on my Why We Need to Teach Kid to Code, here are some fun ways to help them learn. So cool – wish some of these were around when I was an 8 year old learning to code on my Atari 800! (this is an excerpt from my article for SheKnows) Games that teach computational […]

Why We Need to Teach Kids to Code

Obviously, don’t even get me started on the ridiculous skills gap we’ve got in technology and the fact that, in most schools, kids still aren’t being offered any options for learning programming. I can’t even understand it. So, when SheKnows asked me to write a couple of pieces on teaching kids to code, I jumped at […]

Pair Programming Games

Pair Programming Games

Last week, Moss Colum and Laura Dean gave the Boston Software Craftsmanship group a sneak peak of their Agile 2010 Pairing Games as Intentional Practice session. And, as a bonus, we got to try the games out during our code kata. I know what you’re thinking, Abby, you’re a freakin’ geek. And I’m okay with […]

More LINQ Goodness: Now With WPF

More LINQ Goodness: Now with WPF!

Apologies for the slow down in posts, I’ve been head’s down in code bringing you more tutorials on LINQ to SQL and how to use it with my current obsession, Windows Presentation Foundation. It has now been expanded into 3 parts – aka, everything you ever-never wanted to know about LINQ to SQL: Mapping Tables […]

Code

A LINQ Tutorial

For the source code inclined in each of you, I just posted an application and tutorial on LINQ, .NET’s Language Integrated Query, on The Code Project. It shows how to map database tables to classes with LINQ and then retrieve the data in the very cool LINQ-manner that makes me ooh and ahh for doing […]

Poka-Yoke Your Code

Poka-Yoke Your Code

Mary Poppendieck tells this great story about when the manufacturing plant she worked for transitioned to Lean. When they started, she says, they had this separate QA group whose job it was to find defects in the products after they were already made (sound familiar?). But then they took these QA folks and moved them […]

Where Does Developer Testing End and Tester Testing Begin?

Where Does Developer Testing End and Tester Testing Begin?

Thanks so much to all of the awesome people who attended Nate Oster & I’s workshop at Agile 2009. We used games and ideas to look at how testers and programmers can really work together on agile projects in ways that makes sense on our teams. [Click Read More….. to view the slides]

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

This is priceless: » A Brief, Incomplete, and Mostly Wrong History of Programming Languages by James Iry on the One Div Zero blog.

Craftsmanship and Ethics

Craftsmanship and Ethics

Bob Martin’s Craftsmanship and Ethics presentation is now freely available. Think of it as a 45 minute video on the key principles of agile programming. Or, if you’d prefer, a tutorial on how to become a professional developer. As developers, our main product is our code. And, so, to be considered professionals, we must craft […]

Religious War #48,293: Single Vs. Multiple Returns

Religious War #48,293: Single Vs. Multiple Returns

A few months ago, a reader emailed me for my views on single versus multiple return statements in a method… "What’s your take on single-vs-multiple returns in a method? Personally, I don’t mind multiple returns. It often makes code more readable, less if-nesting, etc. But it has almost become a war here at my workplace, […]

Just Say No to Nulls (or Refactoring Your Way to Programmer Bliss)

Just Say No to Nulls (or Refactoring Your Way to Programmer Bliss)

I can’t help but feel my code is getting harder and harder to read as I wade through an ever increasing number of if != null checks before finding my way to the real logic that I actually care about… God, doesn’t your brain just want to shut down even trying to look at it? […]

How would you like your code? Refining our Definition of Done

How would you like your code? Refining our Definition of Done

Agile has a notion of defining “done.” This might sound funny – how could we not know when something is done? But, as with any creative endeavor – there is “done” and then there’s Done. Just try it – ask 5 different people on your project how they determine when a development task is “done” […]

The Future is Now!

The Future is Now!

If you want to build the kind of science fiction, futuristic GUIs that only exist in TV and movies (think: Minority Report) then you want to be looking at Windows Presentation Foundation (WPF). WPF is Microsoft’s next generation API for developing applications and it’s possibilities really start to shine through when you look at Microsoft […]

Clean Code

Clean Code

Bob Martin’s Clean Code: A Handbook of Agile Software Craftsmanship is finally out and the UPS man just dropped a shiny new copy on my doorstep. It kicks off with these fine words of wisdom: The only valid measurement of code quality: WTFs/minute Thought I’d take you with me on my quick skim in case […]

Your Unit Tests Should Mind Their Own Business

Your Unit Tests Should Mind Their Own Business

As the unit testing debates continue on my project, I can’t help but noticing that people are spending all sorts of time pontificating over the right way to unit test, without stepping back to consider what they’re trying to achieve with unit testing. And because they don’t know where they’re going, they’re not able to […]

My Unit Tests Are Purer Than Yours

My Unit Tests Are Purer Than Yours

There is a hot debate on my project about whether or not our JUnit tests are pure unit tests. What the heck does that mean, pure unit tests? Our tests are JUnit tests. Doesn’t that, by definition, make them unit tests? Actually, no. Unit testing does actually refer to a very specific type of test […]

SOLID Code with Emergent Design - The Final Chapter

SOLID Code with Emergent Design – The Final Chapter

This wraps up the series of posts on SOLID Code with Emergent Design. Dependency Inversion Principle “Separate interfaces so callers are only dependent on what they actually use” The SOLID principles really boil down to managing your dependencies between classes. And, by “manage”, we really mean “get rid of those suckers.” Removing dependencies (aka, de-coupling) […]

Waiting for the Internets