Habitual

Posted by Skip Tue, 04 Apr 2006 02:21:00 GMT

I’m consumed by guilt.

Often toward the end of a project I realize that more documentation is needed, and I go through the overwhelming process of writing a bunch en masse. Every time this happens, I find myself thinking “Next time I’m doing this as I go”. Yet next time comes around and I’m in project start mode and it seems silly writing docs when everything is changing rapidly. I’ll wait until things stabilize a bit…

And so I sit again trying to document months of work in a couple of days.

The exact same thing happens with unit testing, and here is where I think I’ve finally discovered a solution. I’ve heard from two different people lately about projects where the programmer wasn’t allowed to check in code without unit tests included. No excuses. And I’ve been told it becomes second nature after a while.

Waiting until ‘things stabilize’ is a fallacy. By the time a project stabilizes you have a pile of documentation to write, and unit tests that aren’t written early probably don’t get written. For my next project I’m starting a class definition with documentation first, moving on to the unit test, and only after those are done writing the actual code. Much like learning to touch type, this is going to be excruciatingly painful at first but in the end I’ll have full (and accurate) documentation and tests.

Tags , ,  | no comments | no trackbacks

Starting At Home

Posted by Kristina B Fri, 31 Mar 2006 20:12:00 GMT

the office

As Pablo mentioned, Handwire moved into a new space in September of last year. We love it here on the capitol end of Congress near Little City, but we’ve been missing something.

About a month ago, we set out to freshen things up a bit. New hires? Nah. Inspired by places like Paragraph in NYC, we decided to rent desks in our space. So far this endeavor has worked out well. We’ve met a lot of other interesting techies and creatives in Austin and already have a few takers that we look forward to sharing space with. It’s a perfect start for what we talked about in the first post of this blog. It’s time to share knowledge and be inspired by our peers. Or, you know, just find new and interesting people to go to happy hour with after a long day. And, by the way, as of this writing, space is still available.

Tags ,  | no comments | no trackbacks

When to dismiss programmer guilt

Posted by Michael Lovitt Wed, 29 Mar 2006 20:51:00 GMT

37 Signals recently released their Basecamp API, which provides a handy way for developers to create applications that talk to Basecamp. They built their web services using simple XML over HTTP, which I found interesting, mainly because we did the same thing on a project last year. On that project, even though we had determined that XML over HTTP was the best approach, at the time I felt a little guilty about the decision.

Why did I feel guilty? Why does a programmer ever feel guilty? Generally, programmers feel guilty when they’re not building something in the best possible way—not using the right tools for the job, not adhering to good programming practices, not writing code that is general and elegant.

Usually this kind of guilt is a good thing. It results from an attention to detail and an aesthetic sensibility. It heads off laziness and sloppiness.

So was my guilt misplaced? For these web services, I felt like I ought to be using SOAP and WSDL, the standard technologies for the job. Any instructional article on how to create web services would have concurred. The absence of these technologies in my application seemed to strongly indicate a hack.

But the fact was, the SOAP implementation in the technologies we were using was underdeveloped. It worked well 95% of the time, but in some cases it simply could not accommodate the kinds of web services that we needed to provide (specifically, services that provide nested arrays of certain complex object types). It just didn’t work for us.

Further, in our research on the subject, we found that incompatibility issues inevitably occur when SOAP/WSDL services in one technology were consumed by clients from another—like when a .NET client tries to invoke a Java web service. These issues generally crop up late in a project, after a lot of code has been written that depends on a black box SOAP/WSDL implementation. At that point, spectacular hacks must be employed to work around the incompatibilities. This approach seemed less and less appealing.

So simple XML over HTTP was a sensible, pragmatic solution. It supported our immediate needs, and would likely support any future needs. Any client could use the services, since any client can be made to parse XML. Moreover, by now, most programming languages have XML parsing libraries that would make using these services trivial. In short, XML over HTTP, although neither the standard nor the obvious solution, just worked, and worked well. There was no reason to feel guilty.

Then why did I? In this case, I think my guilt was the result of a misfiring reflex, a gut reaction to something that seemed wrong. Such reactions are the root of hypercorrections—for example, when we use the phrase “You and I” habitually, even when it’s wrong. At some point in English class, we learn that the sentence “You and me are going to the store” is incorrect, which leads to the word “me” triggering a red flag in our brains, which leads to an aversion to using “me” at all, even when “me” is actually appropriate, as in: “Joe gave the book to you and me.”

Rolling my own web service protocol, instead of using a standard approach, threw up a red flag. My brain detected strong indicators of a hack and reacted accordingly—but in this case, mistakenly. Sometimes an idea has many characteristics of a bad idea, without actually being bad.

Tags , ,  | 1 comment | no trackbacks

Office Space

Posted by Pablo Mercado Tue, 28 Mar 2006 17:00:00 GMT

Last year Handwire had a good kind of crisis: We loved our office space (downtown, hardwood floors, big windows in a historic building), but we had simply outgrown it. What to do? We knew that we had to find another space, but we feared that it would be difficult to duplicate the atmosphere that we had come to love, and, in my case, almost require. I recall thinking: if Handwire moves to some office outside of town in a nondescript building with buzzing flourescent lights and a huge parking lot, I’m outta here!

How could I have come to think such a thing? Was I considering quitting a fantastic job just because the office space might not be ideal?

Well, in my defense I probably would not have quit my job if Handwire had moved to some crappy office somewhere—and luckily, as it turned out, I did not have to; but this episode made me realize something: office atmosphere is very important.

This is, of course, obvious. But this little episode helped me understand why. Another obvious observation: we spend more time in our office than we do at home. It follows then that we should be just as concerned with being comfortable at the office as we are about being comfortable at home. It is true that we often do not have control over where we work, or what our office is like. But if you are in a position to have influence over these decisions, then exercise this influence! You will be happier for it!

So what happened with Handwire? Well, one of the reasons I love working at Handwire is that we all seem to share certain lifestyle values, and to Handwire’s credit, those values are of paramount importance in almost all decisions. So we searched and searched and searched until we finally found our current location, a beautifully renovated space right downtown overlooking Congress avenue. It really is a nice office, and being in a nice office really helps—especially at 2 a.m. on a Wednesday night when crunch-time is on.

Atmosphere is important. This obvious point was proven once again by Handwire when we moved into our new space. But we learned another lesson from this episode, a lesson that Joel (of joelonsoftware.com) applies over at FogCreek. He writes:

our goal was simply to build the kind of software company where we would want to work, one in which programmers and software developers are the stars and everything else serves only to make them productive and happy

Simply put: after working until 2 a.m on a Wednesday, I am happy to come into work the next day because I like my office and because my company cares enough to provide an office that I like.

Tags  | no comments | no trackbacks

Saturation or Sense?

Posted by Kristina B Thu, 16 Mar 2006 15:47:00 GMT

I just read a good summary of the general message at SXSW Interactive (which echoed my own summary):

If there was one overarching message at this year’s conference, I think it was this: Businesses or services have customers, clients and/or users. And those are people. Human beings. The way of speaking to and otherwise communicating with those people is changing. The press release is boring. People would much rather read a blog. Corporate-speak is a thing of the past. There are ways to stay professional and better engage customers. Because no one is passionate or really excited about a company that they don’t relate to. The key is passionate users. With so many options for consuming services, it is key to incite passion in customers, clients and users. They should be proud to “buy your t-shirt”—believe in your culture, message and persona. It is the experience that sells. It is the experience that differentiates.

It’s that last sentence along with a question that we heard during the Fried / Coudal keynote that’s got me thinking.

Read more...

Tags , , , , ,  | no comments | no trackbacks

Handwire At The Conference

Posted by Kristina B Wed, 15 Mar 2006 02:57:00 GMT

We’ve all been going to panels and parties, and though we are very close to achieving “plum tuckered” status, we’re keeping it alive for the rest of Interactive and then (gasp)... music. And when I say “it” I mean “us”. I, for one, both look forward to this time of year and dread it. Being an Austinite takes endurance sometimes.

Anyway, a bit about the panels we’ve seen. The general consensus in the office is that the Creating Passionate Users panel on Saturday was one of the best panels that any of us have seen so far. It scored not only on content but delivery. Kathy Sierra really did a bang-up job at conveying useful, intelligent perspectives in an engaging way.

Read more...

Tags , , , , , , , , ,  | no comments | no trackbacks

Big News At SXSWi

Posted by Kristina B Sat, 11 Mar 2006 22:08:00 GMT

Handwire will be making an appearance at SXSWi with an exciting announcement. We’re finally going to follow the advice of numerous friends and partners and launch Bugwire as a product.

A while back, Handwire was casting about for bug tracking software that met our needs. We wanted something that didn’t include a thousand other features to crowd the interface and increase the bill. We wanted something simple, low cost and with minimal setup time/effort. We looked and looked and found… nothing quite right.

Around the same time, Rails was gaining momentum and respect in the development community. We were interested, but understandably wary of using a nascent platform on client projects. We decided to apply our curiosity about Rails to the bug tracking problem, and Bugwire was born.

In designing the UI, we treated ourselves the way we would treat a client. It was probably the easiest requirements gathering experience we’ve ever had! Quite simply, our software PMs, testers, tech leads and programmers needed a system to queue up tasks and bugs. It needed to be available to all parties in realtime. We wanted each bug or task to allow file uploads. It needed to be capable of handling a back and forth discussion about each task or bug. Finally, it needed to allow clients to use it without showing them information about all the projects in the system. Visually, we wanted a clear, uncrowded interface.

Within about a month, we had exactly what we needed. Because we’re good like that, and because Rails really is a “rapid development platform”. We’ve been using it, tweaking it and sharing it with our partners and contractors ever since. The response has been resoundingly positive. It’s funny because Bugwire was truly meant to be an internal tool and experiment in Rails, but it’s turned into something so useful for us that we might as well share it and find out if others like it as much as we do.

We still have some work to do to make it available online as a subscription service. Keep an eye on this blog, as we’ll post updates, screenshots and other information here in the coming weeks. In the meantime, you can sign up for an invitation to be an early tester at www.bugwire.com. Sign up in the next 2 weeks for a special SXSW gift!

Tags , , , ,  | no comments | no trackbacks

An Opening

Posted by Kristina B Thu, 09 Mar 2006 21:26:00 GMT

A friend and Handwire alumnus recently sat us down and told us that he’d been tasked with creating a list of the “leading thinkers” that will be at the upcoming SXSWi conference. He did, and surprisingly few people on that list were based in Austin. This got us thinking: why do we wait for March to roll around to put our heads together with others who, like ourselves, are leading and innovating in the interactive space every other month of the year right here in Austin?

It’s an exciting time to be working in the interactive industry as the collective attention of computer users everywhere has shifted focus from what they can do on the web (features! features! features!) to how things are done. The consensus seems to have come around to user-centric simplicity and elegance – two things that smart, innovative designers and developers have been yearning to focus on for years.

Handwire is certainly welcoming the shift in focus with open arms. We’ve been holed up in our modest digs downtown on Congress, working with our clients to distill their complex problems into those simple, elegant solutions everyone in the industry’s been talking so much about lately.

We’re constantly asking ourselves how we can do better. An easy answer is to pry some of our attention away from our projects and open up to the interactive community right here in our ‘hood. We hope you enjoy Handwriting!

no comments | no trackbacks

Older posts: 1 2