Back in the summer of 1994 I wrote my first piece of software. Not one to shy away from a challenge, it was a tiny password cracker written in Turbo Pascal that a person would put on a bootable floppy disk, insert into a computer at high school, and run after rebooting the machines. Because computers were seemingly so crashy back then, none of the teachers would look twice if a computer suddenly beeped and went through a boot cycle during the lunch hour or even mid-class. This little program, called
ritz.exe, would take a look at a file located in a specific directory and reverse-out the administrator password that was used by the school board to restrict network access. With this access, we could do things like play network games and send messages through a rudimentary chat application that looked an awful lot like IRC, but lacked channels and modes. A couple of weeks after creating the little tool, I was approached by one of the teachers and asked to put an end to the silliness. There was no disciplinary action, nor was I forbidden from using the tool myself from time to time. What the teachers really wanted was for me to stop sharing it with anyone who had a spare floppy disk … which weren't that many people in '94.
24 years later, I'm still writing all sorts of little tools to accomplish tasks, and I share a lot of them with the world. The ones that aren't shared are especially problematic, and I'm unwilling to commit the time necessary to polish the software to such a state where people who are not me would be able to use them without getting frustrated. That said, I do enjoy creating things that can be used by a wide audience of people. The sense of pride one can have when others enjoy the thing we created is a wonderful feeling. In the current online environment, however, this can be rather difficult at times. Criticism can come in much sooner than expected, and it can be worded in such a way as to completely decimate any happiness we got from sharing that creation. But this is to be expected when we make something available for the world, be it software or spongecake. So how we respond to that criticism is important.
This is something I'm incredibly poor at, so I hope the people reading this are not looking for advice. What I can say, however, is that the trick to writing really good software, making that perfectly fluffy spongecake, or creating the next billion-dollar industry is sweating the details. When we are always looking for ways to improve, we leave ourselves open for success. When we shut the world out, when we stagnate. This doesn't mean that we should open up everything we do to criticism from the global community, of course. We just need to know which people to listen to and how to listen to them. The people who want us to succeed will help us out … though the language can be a little rough at times.
This is something I try to remember when criticism for my creations begin to pile up. Perfection is impossible. Getting it right, however, is very much within our power.