Ambient Orb

A long-time friend of mine started playing with his Ambient Orb a year or so ago. At the time, he explained all sorts of details of how he’d setup a Windows service and .NET providers. I remember thinking, “wow, their API must be pretty complex”.

While in Salt Lake City on vacation, I picked up an orb on sale for $50 and decided to investigate this on my own. Today, I finally got around to looking into the API, and implementing a client. After looking at the ‘API’ I decided on BASH to implement my client.

Spoiler: It’s 2 lines of bash to retrieve our current daily customer count and post it to the ambient orb API. And, before you waste your time both my Orb ID and the database password have been changed.

After combining my ‘service’ with the ever powerful CRON, my Orb now updates every 15 minutes.
[tags]ambient orb, bash, intellicontact[/tags]

launching a beta

A beta usually sounds like a great idea, but with the difficulties of software development–hitting deadlines, feature drift, and push to release biding time can be challenging. Both agile development and patience paid off in this case. In the preparations for our 4.0 beta, we spent an entire sprint (28 days) dealing with our internal feedback of things that were ‘non-optional’ to fix before our ultimate release. Now, we’re “waiting” a sprint for feedback to roll in.

The challenge comes in distilling the feedback and determining the value of what has been said and suggested, and what hasn’t been said. For example, if everyone talks about the size of the new icons (which are intentionally quite large) does it mean that they thought most everything else was great? Or does it mean they stopped looking after they were scared away by the large icons?

The triage process as will begin next week where we decide what of the feedback gets rolled into the software now, what goes into the product backlog for later, and what gets ‘held’ for further input, suggestion, or interest.

Meanwhile, the development teams have been hard at work playing with buzzwords like RSS and REST.

[tags]intellicontact, beta, rss, rest, scrum[/tags]

return of branching

We’ve ultimately decided to bring ‘branching’ back into our development cycle. The best part is that we’ve managed to improve the quality of commits from about a 5/10 to about a 8/10 in my opinion. We’ve been dealing with very few production defects. On the flip side, it’s tied our hands when we need to deploy fixes to things like these and we know about problems in the trunk of our software.

We will be ressurecting branches in a very limited capacity. When we do a release (about once per week) we’ll create a branch in our code. This will allow emergency bug fixes to be done without forcing deployment of code that hasn’t been reviewed. It’s not that the code can’t be deployed when in fact we’ve had litte/no issues deploying untested code. However, with the inclusion of QA in our process, we now have resources to eliminate regression by better verifying our releases.

By coordinating the official releases with the end of our sprints we’ll gain the insight of the Sprint Review process to approve the work done during the sprint.

Getting Closer to the Zend Framework

I’ve subscribed to the mailing list for the new Zend Framework. It’s been quite enlightening to be thrown into a community of the highest-caliber PHP developers (aside from my team of course).

I look forward to contributing more and more to the discussion and ultimately contribute patches and code going forward.

For example, in the preview release, I’ve been working with the Zend_Controller and found a number of things that it lacks. This in and of itself is no problem. The framework is supposed to include some of the best solutions for the most common problems. The aspect I’d like to improve is to allow the framework to be a bit more extensible. For example, there’s no easy way to change the parsing of the actual URL. Even by overloading the functions I still have to pass the URL in via a global variable.

It’s very lucky that we just finished rewriting our front-controller. We learned lots of lessons in the process, but ours solves a specific problem and wouldn’t be for everyone.

[tags]zend, php, framework, front controller, design[/tags]