YARMO – Yet Another RESTFul Messaging Option

I’ve been spending a lot of time in a past few month doing research around a “RESTful” messaging solution. The idea is to have a web service that can support queue and topic notations and provide more less simple REST based API. What I found so far is that there is no good “out of the box” implementation. There is a specification REST-*, that looks very promising in my opinion… So, I’ve decided it would be fun to try implementing this spec. Since I am still a big fan of Erlang, I will be using it for the project. So far it is shaping up to be a MochiWeb application with CouchDB used for storage. It is still very much work in progress, but for now it is my new Erlang playground ūüôā

Software as an engineering discipline

When we think of software, software product¬†definition¬†or a software development process for some reason everyone is trying to invent something new. New methodologies, new¬†analogies¬†… Why do we think it is OK to have an engineering degree when it comes to software, but it is not OK to treat it as an engineering discipline? Why software has to be so different from car manufacturing, hardware manufacturing, etc? A most common argument is that software changes too fast.. Well, it is true, but for a duration of a given release, for a¬†life-cycle¬†of a given software product it doesn’t look like it is changes any more then anything else: car design is changing from year to year, houses get new design ideas…. Why can’t we apply same logic to software design/requirements changes as we do to same sort of changes in car manufacturing? I think¬†good software product goes thru same¬†life-cycle¬†as a good car: High level design, performance criteria¬†definition, quality metrics… and all this gets applied to the product as a whole, each module or sub-system, each component and each class… There also should be a set of industry accepted criteria, which will classify software product as “market legal”, same way as cars and motorcycles get classified as “street legal” only when they implement and comply with industry standards. Well… I am wondering, and that’s what I do :), wouldn’t that make¬†everybody’s¬†life: developers, PMs, managers, customers, consumers , etc much easier?