In the late 1990's, organisations began moving sales brochure information to the Web. Business processes moved next, then social and collaborative work.
Today the push is for mobile applications. With such technology, your refrigerator can message your cell phone when it's time to buy milk. If the application is location-aware, it could do this while you pass, or are at, the grocery store.
The next frontier for software development may just be geolocation. There are problems, though. While GPS capabilities are standard in smartphones, how applications interact with those GPS features is not.
Companies have to develop separate code bases to deal with GPS functionality for each supported interface, including native Android, iOS and the Web. While applications can ask "Where am I now?" asking for push notifications on arrival, or triggers, are not built directly into the operating system. To simulate them, companies have to re-invent the wheel, or, at least, build their own code libraries.
Getting to Geoloqi: Look for the Lego
The Auditorium building in downtown Portland. Geoloqi is on the third floor.
Most of the companies I visit have a large corporate office in an office park. Geoloqi, on the other hand, is in downtown Portland, on the third floor of the Auditorium Building. Take the elevator to the third floor and enter a different world.
The company is small, with only seven employees at this point. Three core employees-founders Amber Case and Aaron Parecki and first employee Kyle Drake-did most of the development. Case, the CEO, meets me in the small reception area as the rest of the company meets in the large office to perform a design review.
The office is designed as two logical spaces. The outer area includes a small reception area, Case's private office (used for meetings) and a couple other meeting rooms. To get to the real action, we go behind an unobtrusive area and enter the back, which has a row of two large, short cubicles, a kitchen, the door to the server room-and a play space for Legos.
Amber Case describes the layout of GeoLoqi's back office.
Case explains that the single most valuable thing at GeoLoqi is productive programmer time. The company honors this through its office design choices: Programmers get a personal space that's twice the size of what I usually see (and with plenty of space between desks), a bright office environment full of natural light and huge rolling white boards. Most importantly, social spaces are physically separated from work places so programmers won't be interrupted.
After our quick tour, Case takes me to her office to tell me how GeoLoqi got started-and where it is headed.
The how and why of geolocation
Case begins by noting that handheld, Web-enabled devices make up half of new device sales. That percentage is rising, too-and leaving traditional desktops laptops in the dust. Mobile phones are becoming the default way people interface with the internet, Case says, and in an increasingly complex world, filtering by location becomes important.
Most geolocation, she continues, is polling-based. Get on a bus, for example, and you need to be constantly aware of the next stop, or else check your phone every few minutes, to make sure you don't miss the right stop. This interrupts your thinking, which the GeoLoqi staff considerers a sort of evil: Interruptions mean you can't get things done.
Feature: 21 Awesome GPS and Location-Aware Apps for Android
Instant messages present the same problem. If you're late for a meeting, you text the person who's expecting you to let him know you're stuck in traffic. This begins half an hour of back-and-forth IMs.
The alternative is something Case refers to as "calm technology." On the bus, you could set up a trigger to tell you when the bus is approaching your destination; in the car, you could publish your location on a mapping application so your friend can see your location and gauge your progress.
Building a real-life Pac-Man
Case refers to herself as a "cyber anthropologist," meaning she studies how humans use software. Her expertise is in usability and user interaction. It is Aaron Parecki, GeoLoqi's second founder, who built the proof of concept enough to attract investors and customers.
The teamwork is by design. Case says she was looking for a partner who was serious about coding and probably a little shy. She began giving talks and competing in events in order to meet this unknown partner. Once she met Parecki, they built a core software development kit that enables mobile application development and began competing in local hackathons and Startup Weekend events for prize money and notoriety.
One of the earliest tools they developed was a game called Map Attack, a sort of real-life Pac Man. Competing teams run to specific points on a grid. Map Attack overlays both the points and the grid on Google Maps so teams can observe each other's progress. At the end of the time period, the team with the most points wins.
Having heard that story and watching a demo video, it was time to ask how Case and Parecki built the system.
Software development at GeoLoqi: No project managers
Aaron Parecki heads the technical team at GeoLoqi.
Parecki had built all of one iPhone application when he and Case got started-but he had been a working programmer with system administrator skills for about 10 years. Parecki explains that GeoLoqi is small, light, fast and aims to keep it that way.
"We don't follow a formal process. It's a little more relaxed than that. Instead, everyone owns a piece of the system, be it Android, iPhone, servers or the Web," he says, adding that the company has different products-the SDKs for each platform, the Web API and so on-each with their own release cycle. "We have enough overlap to share ideas, but each person owns something."
The company's own website is the largest consumer of its API, Parecki says. When programmers want to add a feature to the website, they need to add the feature to the API. This creates a virtuous cycle of features that the company itself will actually use, not marketing-ware. It also forces the company to "drink its own champagne," as Parecki put it.
Analysis: 10 ways your smartphone knows where you are
With half a dozen highly motivated people in the technical staff, Parecki manages mostly through high-level goals and a weekly team status meeting that feels more like a long standup meeting. The team manages handoffs through IMs on an Internet Relay Chat (IRC) channel and uses an IRC bot that notifies team members when a commit is added to version control. Individual contributors, not project managers, take a project, define the scope and coordinate with the rest of the team to get things done.
This leaves one question: With so many moving parts, how does GeoLoqi handle regression testing?
To answer that, Parecki introduces me to Kyle Drake, the company's first hire and lead tester and automator.
Testing geolocation: Part software tests, part smartphones in a backpack
Kyle Drake looks out for the integration quality and release cadence of Geoloqi systems.
Drake is what you might call a GeoLoqi "classic hire." He met Case and Parecki at a "cyborg camp," where they spent a weekend "building something cool" with Geoloqi technology. This had the benefit of being both a great technical interview, addressing whether Drake could, in fact, build things, but also a culture-fit interview.
After the meet-up, Case invited Drake to come hack on the system, first over a weekend and then at night for pay, and eventually to quit his day job to join the company. At every stage in the hiring process, things ended well for both parties. They get to walk away friends.
Geolocation in the real world
Drake explains that, while you can simulate plenty of things about geolocation, some things are just impossible. "Say you switch cell towers, or go from inside a building to outside, with a sudden change of bandwidth and location quality, or you start to run low on battery power. We needed a way to test our SDK in the real world on real phones," he says.
Analysis: As navigation looks indoors, new uses appear
Eventually, the team set up a bicycle route that starts at the office, goes down the waterfront, crosses the Sellwood Bridge and returns. It's about six miles in all. The final acceptance test of a new release involves throwing eight cellphones in a backpack, all running the software, and logging differences in behavior since the previous release.
Of course, that's the final customer level check. The team also does exploratory tests, and Drake has his own automated tests. "I focus a lot on the infrastructure things," he says. "I write tests to make sure our phones give us accurate location information, to make sure the servers are working correctly and not losing data, to optimize performance of an algorithm."
To accomplish that, Drake tests at many levels, from API down to unit tests. His current testing mostly involves validating the code at the API level. "I came from the Ruby community, where testing is given heavy priority, but writing automated tests does not intrinsically save you time," he says.
When automated tests aren't valuable, Drake conducts what he calls mini-tests. "I might not write automated tests for website code when I know that code is changing rapidly and the test will become obsolete quickly," he says. "If you make too many tests that are too rigid, they tend to be brittle."
Drake explains that he strives to write just enough tests-ones that make sure the software is not broken at a major level, while focusing on catching errors quickly and making it easy to fix a problem in production before it escalates. Automated tests, he says, make the software more like the scientific method-with hypothesis, experiment and conclusion-and less like guesswork.
Tomorrow: GeoLoqi part of Esri SDK
After Drake and I finish our conversation, the business day is almost over, and it's getting time for me to leave. That is, until Case tells me she has one more thing to share: The company has just finalized its acquisition by Esri, the leading provider of GIS mapping software.
In the short term, that means growing the Portland office while supporting GeoLoqi's existing product. Those Geoloqi features will soon be bundled directly with Esri's applications. Esri will also release a new SDK with that functionality, matching Apple iOS Map Kit SDK functionality and creating real choice in the developer market.
In the long term? I'm not so sure. But I can't wait to find out.