Blog

Is Hadoop the right solution?

By: Agile Velocity | Mar 06, 2013 |  Agile Technical Practices,  Agile Tools,  Article,  Technical Practices

I noticed some interesting announcements recently concerning the open-source Apache project Hadoop. Firstly, in the last week, both Intel and EMC have announced their own distributions (link). It seems that the big iron hardware vendors are finally coming around to seeing Hadoop as the standard for big data processing. It makes sense for these vendors to optimize and integrate it into their platforms, but in reading these articles, I have to wonder if these vendors are focused too much on Hadoop as the single solution for all data processing needs.

I stumbled across an article some time ago by Mike Miller at Cloudant that made the case that Hadoop’s days are numbered. Mike makes the point that while Google MapReduce and it’s open-source cousin Hadoop were great innovations when first introduced, even Google has moved on to other technologies that have fewer limitations and are better performing. I have personally struggled with determining the best approach to handling streaming data sets. In fact, it seems that something like Storm might have been more appropriate.

Part of the job of a good software architect is knowing what tools to recommend to the team that are available and best fit the job. This means that you need to know about a range of tools with different strengths and weaknesses. So, the next time someone mentions Hadoop as the solution for a large-scale processing need, take a step back and make sure the problem maps well to it. If there are ad-hoc analytics, dynamic data sets, or other features that it has trouble supporting, look for other alternatives that might perform much better.

Blog

Podcast Recommendation: The Ruby Rogues

By: Agile Velocity | Mar 05, 2013 |  Agile Technical Practices,  Article,  Technical Practices

WAIT! Stop Right There!!! I know some of you saw Ruby in the title and are about to move on, but I encourage you to read on. This could be beneficial to you even if you don’t know or don’t care about the Ruby programming language.

Podcast Description

For those of you who listen to podcasts while driving, mowing the lawn, running, cleaning the garage, or lounging at home, here is a recommendation of something I like and listen to. Like many, there aren’t always enough hours in the day to keep up with various topics and I like to listen to podcasts when I can to keep up.

Our reading audience are technology folks, usually involved with delivering software using an Agile or Lean approach. This podcast recommendation isn’t explicitly Agile or Lean focused, but those elements can be found here in there along with healthy doses of pragmatism. While there is a focus on a specific language I have found a wealth of good knowledge and discussion often applicable to general software practitioners of any technology set.

Agile Velocity has a lot of experience working with Ruby on many projects over the years, which led me to the Ruby Rogues Podcast. This is a group of Ruby practitioners who lead a weekly panel discussion of Ruby and Software Development topics with frequent guests from the community. Many of the regular hosts are well known in the Ruby community and are also authors and conference speakers. Each episode also ends with fun technology (and sometimes non-technology) picks by the panelists.

This is an easy recommendation for anyone who works with (or is considering) Ruby. But there are many episodes that focus highly on general software issues around development, delivery, agile, technical practices, craftsmanship, etc.

Recommended Episodes

Here are some episodes that general agile software practitioners may find interesting:

It was difficult for me to pick just this list because there are so many more great episodes. While this is probably nothing new to people in the Ruby community, I hope I have pointed the rest of you to one of the best software development related podcasts around that most software practitioners can benefit from.

Blog

Should a Tester Be Afraid to Hear the Word Refactor?

By: Agile Velocity | Oct 10, 2012 |  Agile Technical Practices,  Article,  Technical Practices

multimeter tester - software testing refactor softwareI used to cringe when I heard developers say they were going to refactor some code.  To me, as a tester, that meant they were going to change working code and possibly introduce bugs into the software.  If it ain’t broke, don’t fix it, right?  Why are we refactoring it?  Truly, the answer lies in basic Agile practices.  Agile teams implement lean code that meets the user’s needs, then we put the code in front of the user, get feedback, and continually evolve the code based on that feedback.  We also implement code knowing we need to learn about our design decisions. Sometimes what we learn is that there is a better way to design the solution.  All of these practices require code to be refactored.  It is not a bad thing.

However, what can be bad, is when a developer cannot make changes to some code because the code is too complex, or it is unclear what the code does.  If there are no unit or integration tests automated, then it becomes risky to make changes and ensure there are no regressions in functionality.  The best Agile teams understand this and ensure there is automated test coverage as features are being written.  They rely on these automated tests for rapid feedback.  They can refactor their code (or code other’s have written) with confidence.  The code remains testable, simple, and maintainable; all of which save time and heartache later on.

So, testers should not fear code refactoring.  We should work with developers to put unit and integration test frameworks in place on our projects.  We should help our teams increase unit test coverage.  We should encourage a team culture that embraces refactoring.  We should only fear brittle, untestable code that must be retested manually after major code changes to existing functionality.  I’ve tested code like this and I don’t want to do it anymore.  I’m smarter than that.  And so are you.

Blog

You! Might Be an Agile Tester

By: Agile Velocity | Aug 13, 2012 |  Agile Technical Practices,  Article,  Technical Practices

Man handcuffed to his keyboard - Agile TesterYou! Might Be an Agile Tester…

Here’s my list of 12 reasons you migh be an Agile Tester:

  • If you work in close proximity to Developers, you might be an Agile Tester.
  • If you are test-infected.
  • If you think automated testing is key in software development.
  • If you invite yourself to meetings that you weren’t invited to by someone else.
  • If you are learning new skills and practicing continuous improvement along with your team.
  • If you keep your team focused on delivering core functionality that has the highest business value.
  • If you stay in touch with the big picture.
  • If you and the Product Owner develop Acceptance Criteria for User Stories together.
  • If you push automated tests to the lowest possible level to encourage fast feedback.
  • If you are part of the “Power of Three” in functionality discussions.
  • If you are a skilled exploratory tester discovering issues that could not be detected by automated tests.
  • If you define non-functional requirements as User Stories, you might be an Agile Tester.

Inspired by Jeff Foxworthy and “Agile Testing” by Lisa Crispin and Janet Gregory

More on Agile Testing