They're also like Google in that most of the hard work is behind the scenes, which tends to affect users' perception of how much the app is doing. To an inexperienced programmer it might seem like it wouldn't be hard to build a search engine-- and in fact it isn't hard to write a crawler and build an index. What makes it hard to build the actual Google is (a) the scale on which they operate and (b) the refinements they employ beyond merely searching an index. It's basically the same with Bump. They have to operate on a large scale, and to work reliably they have to deal with all sorts of weird edge cases.
What Bump does is mutually authenticate two smartphone users by having them bump their phones together, and correlating the accelerometer readings. On top of authentication you can build all sorts of things, starting with exchanging contact info. The hard/critical part is reliability.
Just a guess. I haven't used it.