I'm a programmer. Not just for my job, but in my heart. Programming is one of the things I think about when I have nothing better to do. The other night I dreamed that I was multi-threaded (seriously - from now on I will blame all my problems on race conditions).
But this means I identify problems with programming tools quite frequently. Because these problems annoy me on a day to day basis, and I believe there is always a better Way to do things. But I have lots of ideas in this space, and they overlap quite a bit. So I'm going to try to break them down into a number of posts, each getting across a salient point.
Start up time is everything:
I have, several times in my life, started at a new company. The first day tends to involve getting your computer working the way you like. The second day involves learning how to build their code. Then the next year involves gradually picking up the accumulated knowledge of the test environments they have built, the build system, all that jazz.
IDEs make things so much easier. But are also so limited and constraining. I've never worked for a company where the IDE is the way we actually develop things.
But what I want is a quick start way to do development. Don't make me do it on my own PC. Give me a web page I can point at: a local intranet web page which I can edit code on (we have ajax now: why do I need to install a dev system on my personal PC... sure make it a possibility, but don't make it a requirement). Now let my press a button and get my code to compile (Or don't. Maybe the code compiles in the background while I'm working. That's even more useful). Let me press another button to run a test from the test suite (with a GUI app, this might be a problem... but int he future all GUI apps are web pages too, no?)... and let me edit the code for the test suite in place too.
I should be able to get going straight away. Get into the system straight away.
And while I might be able to work in a more powerful manner on my own PC (and it should be a possibility - make sure I can check out a local version of the code, and give me some way I can try to build it - or schedule a build of it) from my local box - these are power features which I can worry about later, when I need them. Not on day one, when I ought to be getting to know the new territory.