Archive for the ‘Startup’ Category
Reviving a Project
When that happens, the only real solution is to throw out the code and start over. While it may seem like a lot of wasted effort, building the first version was necessary to get a proper understanding of how the app should be built. It is immediately clear what pages are needed, and its possible to do some stuff with jquery that wouldn’t have fit into the initial prototype.
I’ve been doing most of the work myself so far – partly because the rest of the team is busy with other projects, and partly because much of the detail gets designed as I build it – writing full specs would probably take just as long as the initial build. I should be able to delegate more as the work progresses – it’s quite easy to have someone make specific changes to a component, but describing an overall vision is pretty hard.
I’m also noticing that a lot of the work is on the less interesting stuff. In order to build the interesting features, we have to build a lot of stuff that has been done before in a way that supports the new stuff that will be added later.
Google API – A Moving Target
The latest issue I’ve run into is with creating documents. Because Google Docs does not support creating new documents offline, GDNote creates a folder full of blank documents that can be moved and renamed while offline. Yesterday this worked, but today the call gets the error 400 Bad Request – Document content required.
We have very good error logging set up, so I should be able to fix it quickly and not too many users will be affected, but these unexpected issues are still pretty frustrating.
Dealing with Google API Bugs
The most recent case involves a user getting errors doing anything that creates a folder. Everything works fine with my own heavy usage and all of the test accounts, but for one particular user it doesn’t work. Fortunately GDNote logs all errors in as much detail as possible without causing security issues, so I can see the request that failed. It’s exactly the same api call that works for everyone else, but for this particular user Google returns 404 not found.
A bit of searching reveals that this is a known Google bug that has shown up in the last week or so, with a fix due later this month. Best I can do is wait for the fix and tell the affected user to create the folders manually. For similar issues in the past I’ve been able to create workarounds in the code, for example checking if a call really failed or just returned an error code for no apparent reason. What I can’t do is find a way to prevent these problems from occurring for real users in the future. Normally when an issue comes up and you fix it you would add a test that reproduces the original error, preferably before a real user has problems. But with these api problems the issue only occurs for some accounts, and setting up a test account with the same configuration doesn’t trigger the error.
Is it actually possible to do anything better than “Works on My Machine” when working with cloud APIs?
Online Notebooks
However, from a non-technical perspective there are still some challenges – namely, getting users. I haven’t really done anything to market it yet due to taking time to catch up on other projects, but now that I have time to think about it more I realise that finding the right approach may be difficult.
The main problem we have is describing the product in the same way that people looking for it would describe it. So far the best we have is “online notebook”, which unfortunately means different things to different people.
GDNote is a fairly structured product, organised into notebooks, sections and pages in much the same way as OneNote. Smaller projects get a section in the projects notebook, while larger projects have their own notebook with multiple sections. Bringing in content from the web is possiblie in theory, but not something I use – most of my usage is writing down thoughts that have come from nowhere in particular. This is the structure that works for me, so it’s what I think of as an online notebook.
However, the same term can be used to describe quite different products – there are apps based on clipping web content (Google Reader does most of what I need in that space), there are quite a few that do short notes designed for searching later, and there are those like evernote that are relatively similar in concept but have enough differences to not fit with the way I expect a notebook to work.
GDNote is different from all of these, but the difference is hard to describe in a searchable way for users who have never heard of the product. Being based on Google Docs so that everything is stored in your existing account is a selling point, but nobody is going to be looking for that – it only becomes an advantage after someone makes it to the GDNote website. The way notes are organised is something that people will be looking for but is not easy to clearly describe for a search engine.
Short of trying every online notebook available there doesn’t seem to be an easy way to find the one that fits how you think – Obviously something that is going to require a bit more thought.
Working in the Cloud More Literally than Usual
I’m writing this somewhere over Indonesia on a flight from Bangkok to Sydney. I find that I am always particularly productive on long flights – I guess it’s something to do with knowing I’m sitting here for nine hours whatever I do.
So far I’ve replied to all my emails (really liking offline gmail), written a reference for a former colleague and written some text for the Fixed Price SharePoint website (I got the rest of the copy done on the Sydney to Bangkok flight and haven’t gotten around to working on it since).
In the past I’ve gotten a lot of code written on planes – mostly when that was the only thing my job required. I find it works best for stuff that has been getting delayed for a while – the stuff you would otherwise have to force yourself to sit down and do.
In terms of tools, I find that the Mac I’m using now is much better than the Windows machines I’ve used in the past – mainly due to how quickly it starts up. A seat with a power outlet is definitely worth paying a bit extra for – I have in the past used spare batteries to keep my computer running the whole flight, but it only works when the batteries are new, and not having to worry about running out of power makes a big difference.