Notes

Frankly, the winter season is bad enough without a host of consecutive disasters and illnesses. Still, slowly getting better, and starting to tip the wall of obligations into the chasm of accomplishments. Busy writing tutorials and developing online surveys.

Blog

How am I Not Myself?

03.11.07

A Vision for a Client Management System

I was thinking, earlier today, that I have at least a few clients whose existence I could not actually prove.

My entire professional relationship with them has been via email, and there's no guarantee that they are not in fact complex botsBots. Nothing is real. with bank accounts. It doesn't bother me, for as far as I know I'm still getting paid, but what if these clients are all part of a larger computer program that decided to build a few random websites to expand its contact with human life, for some nefarious and ineffable silicon plot?

It's not keeping me up at night. But I realized that it goes both ways, and these clients have no actual proof that I'm a real person either. I could just be a program that hunts down jobs, conducts communication over email, runs a web page building program, and collects money through paypal. Without getting into the ontological debate about identity, I thought, wouldn't that be great?

One of my major projects is creating a heavily automated program to build web pages for me. Ultimately, it will be something between a desktop IDE, a content management systemThe Future of the Web: Google is God?, and a bot-like self-installer, so I can someday do one, final round of intense coding, and then spend the rest of my career in photoshop while my little program takes care of everything else. So if that comes to fruition, before the web changes utterly, how hard would it be to tack on a little client management system?

You'll be coded too someday... All things are magic until you figure out the 0011010 or the GACCCTACTAT. Luckily, my girlfriend knows the nuts and bolts of interfacing with email accounts and cell phones and the like, so I've gathered at least the pieces of a plan that would automate my career. Really, it's just a matter of steps. Here's my outline:

  1. Have an automated program browse craigslist and other public job classifieds. Remote, automated site browsing is done everyday, and not that difficult to implement. This program would be seeking short posts, because it will work best for people who want short, to the point emails, fast work, and minimal contact. It could then filter results and look for key words and phrases, such as "PHP", "CSS", "work from home", "offsite", "need this soon", etc, hopefully narrowing the list to people for whom the system would work. The system would have to rely on being able to build the site from scratch, so it would always no what's up, and, obviously, it's not a person, so both "onsite" and "help updating an existing site" would be filtered out.
  2. Once it has a list of possible clients, it would kick out an application to the job. When I'm on the job hunt, I cut and paste the bulk of my email from a standard "Why I Would Be Great For You" file that has various paragraphs relating specifically to design, web experience, client interaction, work environment, and so on. All I would have to do is link these paragraphs to keywords, so it would look through the job posting and concoct a short email with the most relevant paragraphs, randomize the order, select some transition sentences, tack on a thank you and a resume, and bang: application. Honestly, I should be making this program right now. All it would have to do besides this is nab the contact email from the job posting and send it on.
  3. Next, it would check my email. This would probably entail a separate email account, so my friends don't start getting invoices because they asked me a web question. At this point, it would just look through the email for responses, looking especially for large numbers and short deadlines (for which this system would be perfect).
  4. Next it would run through a haggling program to work out a price and pay schedule. Once settled, it directs the client to a form with a contract they can digitally sign. Once they sign, the program sets up a database and a personal correspondence parser just for their emails.
  5. Now it gets tricky. There's a particular order to these things, and standard emails clients send, but the client response program has to be pretty on the ball to conduct the process effectively. The emails would have to ask very specific questions, and it would probably be best to direct the client to an online form asking for job specifications and details. Part of the business of freelance is getting the client to specifically outline their vision and content, so there are many excuses for asking them to streamline their reponses. To be frank, all it really has to do is swap a classic computer response like "I do not understand that request" for standard human professional response "I'm not sure I'm getting a clear picture here." The program would also have to have a couple of features that would, say, store the client info and all their correspondence in a database, constantly re-parse their replies to learn what gets a good reaction and what gets a bad reaction, and send a text message to my phone to let me know how things are going.
  6. Once the program has determined there's a job and an outline, it starts offering some templates and suggestions from a standard database of designs and features. It will ask further questions, perhaps ask the client to go to a form and choose from some basic templates. Also, a common part of the process is for clients to send some examples of websites they like, so this sort of email would trigger a program to follow the links provided and parse the html and css of the suggested sites, then try to match those layouts to one of the basic templates saved in the standard database. It would also extract the images from he suggested site, and save them in the "Design Desires" database, which is what I will eventually have to review to create the images and tweak the css for the final template.
  7. Once things are rolling, the site builder kicks in. It sets up a preview site, and constructs the basic layout. During the actual building process, I see three steps. First the program tries to build a set of design directives from parsing the emails. It would have to request a particular format of "design emails", but this seems acceptable. If this becomes unworkable, it politely directs the client to some preparation and suggestion forms that are composed mostly of drop down lists, or short text entry boxes that get sifted for particular words. They'll have to lay out the structure of their site, their navigation preferences, and other various pieces. There could even be a live previewing area, where the user ould login and attach suggestions or make tweaks to the design themselves, at which point they would actually be operating the site builder on there own. Attached to this process would be a long list of common suggestions and good advice for how a site should be laid out, because a) it makes for good web design, and b) it's already hardwired into how the program is going to build the site anyway.
  8. The whole process is carefully documented, and will trigger text messages to my cell phone if any problems come up, or when it gets to a key point where I have to step in and actually work the program myself. I will, of course, be using the same interface program the client uses on the live preview, but my version will have more access to the bolts. Ideally, I still have not so much as opened Dreamweaver or Textwrangler. In fact, I haven't written an paragraph tag, or a shred of content. The content is Lorem ipsum, but the site builder has built a set of content managers, both selection inputs and rich text editors, and directed the client to their very own content management interface.
  9. Eventually, the site will come together, and be ready for transfer to the client's hosting. Since there are a lot of mechanisms in place to prevent automated systems from setting up websites and registering new domain names, I may just have to bite the bullet and do this step myself. Still, it takes maybe an hour, and the client should be doing it anyway, so this just needs to be an instructional email telling the client how to set up a site, what to look for in their hosting, and to send me (or rather, auto-me) the ftp and administrative information.
  10. Once I've determined that the installer can run on their site, and has all the configuration information, I click "Publish", and the installer renders all the pages, creates the files and directories on the client server, saves all the documentation of the process to a pdf, and kicks out a final invoice.
  11. The best part is that that the invoice program would be hooked into the rest of the system, so if the client stops paying, the program stops working, and no amount of pleading nor number of excuses will melt its silicon heart. This may sound cold, but if you've worked freelance, you know where this comes from.

Computers can probably replace at least my intelligence ...And if all goes well, all I've done during this process is upload a few images and log into the client's site administration panel a couple of times. If I hired a graphic designer and an intern, all I have to do is make a weekly transfer from my paypal account to my bank account. Which I could also automate. In fact, since my bill payments are already automated, all I would have to do is spend money and ponder the philosophical implications of having half my life run by a computer.

How this reflects on professional courtesy is another matter, but since I recently received several generic birthday messages from people who I know, for a fact, do not know when my birthday is, I think the world is ready for this.