Recently we launched our Project Manager service to offer customer alternatives to single payment projects. Many times customers need help planning the product or refining it after its been launched. This service gives us the opportunity to work with you on an almost hourly basis to guide your project just when you need it most.
Stringify
As part of this service, we recently got the opportunity to work with a not for profit organization needing help processing sms messages. Right away, you can see that this is a string manipulation project. Later, we thought it would be a perfect example for our stringify series.
Synopsys
We were luckily pulled into the scenario, at a point where the system was already built and had been through its initial testing. Indeviduals who have built robust products, know that testing is key towards that goal. Testing can prove if you have been mining coal or diamonds. Through testing, this company noticed flaws in their products design. Their parser received nicely formatted sms messages from FrontlineSMS a free service for NGO’s. However, they quickly figured out that the one aspect of their software that they didn’t fully consider, was the customer. As you can imagine, customers don’t always follow the instructions of your software. This can greatly affect the useability of your software and obviously it’s profitability and growth. Their situation was quite simple. They are expecting users to update, query, and register through sms messages. With a product list that’s infinite and userbase grouped by facility, you begin to see the scope of formats that may arise. Furthermore, you can imaging the scope of formats end users will think up. Lets take a look
[html]
Count item_name +phonenumber
item_name (+,-,=)#number +phonenumber
[/html]
Both very sensible and self explanitory patterns. Right away we can see spaces which can be filled by all manner of evil. We also see lots of validation of the seperate parts. Most importantly, we can see a tretcherous road ahead when it comes to expanding this pattern