A lot of people think Agile is about working faster, but that really isn’t right. It would be more accurate – and perhaps alleviate many of the arguments against agile practices – if we thought of agile as being about working slower because we’re being more deliberate. BUT, at the same time getting rid of […]
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 […]
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? […]
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 […]
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 […]
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) […]
This is the 5th post on SOLID Code with Emergent Design. Interface Segregation Principle “Separate interfaces so callers are only dependent on what they actually use” Or, more simply… Avoid “fat” interfaces This principle is about breaking down our interfaces to be highly cohesive. You might have a server that provides methods to a number […]
This is the 4th post on SOLID Code with Emergent Design. Liskov Substitution Principle "Derived classes must be usable through the base class interface without the need for the user to know the difference" This principle is about following good techniques for inheritance. It says code that uses the base class should not need to […]
This is the 3rd post on SOLID Code with Emergent Design. Open/Closed Principle "Modules should be open for extension, but closed for modification" The idea here is that adding new features should always be able to be handled by simply adding new code. It should never require modifying existing code. The benefit is that if […]
See Part 1 of this series on how the SOLID principles can help us follow emergent design without the Big Up Front Design and without the code rot. Single Responsibility Principle "A class should have one, and only one, reason to change" In software, we tend to enjoy grouping things together, but really what we […]
Emergent design can quickly degrade into un-maintainable hack & slash yuckness without a set of guiding principles to keep you in check. Fortunately, Robert Martin’s SOLID Principles are just what the doctor ordered for saving your app from an early demise. By making sure your code continues to conform to these principles with each new […]
Abby Fichtner is The Hacker Chick. She helps people build amazing technology and push the edge on what's possible.
She's taught classes for MIT and Harvard on innovation and entrepreneurship, worked with hundreds of entrepreneurs, and been named an Innovation Amplifier by the Boston Globe, one of the Top 25 Women in Boston Tech, and Boston's Startup Gaurdian Angel.
After 3 years at Harvard Innovation Lab, Abby now helps individuals to create their own products and businesses so they can bring in additional money, become their own boss, gain financial freedom, and do work they feel proud of.