Archive for January, 2009

Teaching at Seneca

Posted by thedigitalartist under Uncategorized

I’ve begun my teaching at Seneca’s School of Communication Arts.

Many thanks to the students who dragged themselves into a classroom late on a Thursday for the instruction.  It is a very fine group, and participation was good.

The first class was a lot of introduction, in which I attempted to determine the experience that everyone has with development in general and Flash in particular.  The course is entitled “Advanced Actionscript”, but in addition to the scripting itself, I would like to introduce the tools of the coder to everyone, so we’ll be covering some subjects like UML mapping, versioning software, writing automations, and good ‘ole production skills.

The class will follow this format: 1 hour of theory, 1 hour of workshop, 1 hour of production skills

It is my mission to make sure that everyone gets something outstanding out of the class.  To that end, I’ve asked a wide variety of friends from many shops to give me their input on what they would like to see from recent graduates.  These opinions come from people with a great deal of industry experience, who are currently working and successful in their fields.  They consist of designers, copywriters, creative directors, and account managers.

Here are some of the comments:

“Typography. Absolutely, the top priority for anyone who will be working in design or production” – Christian

“I’d say if you’re teaching kids that are about to graduate, one of the things to bring to the top of their minds is the importance of selling their work. Presentation skills. Their designs can’t stand up alone and they need confidence and the right words to sell them through. Never too young to start either. The sooner they’re comfortable speaking in front of people, the easier a time they’ll have progressing internally within a company.” – Norma

“be able to design while still knowing restrictions (ie what different sites allow/don’t allow) …It’s good to come up with great creative ideas, but it’s important to know the sandbox you can play in. ” – Meg

“graduates should be concentrating on is specializing on one area that interests them…Skill-wise, I would say that the combo of Flash and 3D rendering has become really popular based on project last year ” – Craig

“students need to understand the possibilities of a fully integrated model in terms of putting together the whole package… attention to detail…Create a fully immersive experience that is rich and engaging…fresh viral content…big thinking that breaks down barriers and moves people…” – Andre

I’m also including the full text of a particularly insightful comment from Kim, who is a studio manager for a prominent shop;

“- Fundamentals of estimation:  The scope would likely be quite narrow (how long to build a flash video player).  Ask lots of questions, start with realistic numbers, don’t forget to add overhead for project meetings, or things like testing in multiple browsers and implementation support, documentation, cleanup of project assets (file everything so you can find it later), add a bit of time to allow for things not going perfectly (typical story – I asked a jr. person how long it would take to add special effects to 20 video clips (he had all the videos and instructions for the effects for each).  He told me 40hrs.  I asked him if he was sure.  He insisted this was an accurate number.  I sent him an excel doc that listed each of the 20 clips, and asked him to give me a specific amount of time for each.  Big surprise, the total for his new estimate was more than 120 hrs.).  

- Effective project communication:  communicating status effectively, identify risks, understand the dependencies of your tasks, know how and when to escalate.  Know what to do when things start to go wrong.  It might be interesting to run a class assignment like a “project”, complete with project status meetings. 

- Managing project assets:  clean directory structures, get rid of unnecessary files, comment code.  Check stuff back in to source control library / server to protect assets against hardware failure.

- Your career – how to get from entry level to that first promotion:  It’s not necessarily about being the best “flash developer” (whatever) possible — understand the other factors that contribute to career success.” – Kim

Many thanks to all who helped me out in putting together my curriculum.  As more feedback comes in, I’ll put it up in here as well.

-t.

Of Love and Safety

Posted by thedigitalartist under design

Design is such a subjective thing.

It is so fruitless at times to talk about what is good design in a digital medium.  What appeals to one does not appeal to another.  Of course there have been rules created around design and useability, but a stuffy adherence to them can lead to stale and uninteresting design.  What are called “rules” should be considered more “guidelines”.

While it may be controversial to talk about what makes up good design in a digital age, there can be little doubt that people, actual flesh and blood persons, have not changed considerably in their motivations in the last thousand years or so.  (Well, I’m making that assumption based on literature and recorded history – I’m not actually a thousand years old.)  One of the most recognized works of literature in the last century is John Ruskin’s “Of Art and Life”.  In it, he espouses that  “You must either make a tool of the creature, or a man of him.  You cannot make both”.

Ruskin’s point was that it is not desirable to separate the worker from the work, to have a person produce who has no investment in the product.  He compared Gothic with Romanesque, and favored Gothic for the irregularity, the sometime nonsensical architecture that reflected at each moment the attention of the individuals working on the project.  The same can be said for the “Arts and Crafts” movement, or even Art Deco.  In fact, through most of time it can be noticed that societies have swung wildly between the efficiencies of minimalism and the expressiveness of ornament.

It comes down to an issue of love and safety.  Minimalism represents safety, ornamentation…love.

In modern times, these motivations still apply.  Consider this;  At one time, the PC represented the computer user who needed a simple safe box to work from.  The Apple Macintosh (yes, it was a “Macintosh”) originally came in a box of parts that had to be assembled.  It was the choice of the fringe-user.  Not so much anymore.  Apple bills their computer as the ‘one that just works’ for everyone.  Consider the design of a Mac product – minimal to the extreme.  Most of the physical design of a Mac can be summed up by the phrase “a single monolithic form, glistening, devoid of discernable edge or surface texture”.  It is a safe design, like a black sweater.  No one can ever critisize the choice of a Macbook in terms of aesthetics.  It is, in a word, safe.  How many people do you know of who cut into their G5 or Macbook, or modify it in any way physically?

Ironically, it is the PC market that has become the domain of people who like to hack up the physical form of their machines.  Sometimes what they create is trully hideous.  But it is ornament, and ornament is not meant to be safe, it is meant to be loved.  Think of the crayon drawing given to you by a five-year-old.  This is pure ornament, devoid of discernable pattern often.  The scribbled characters are representative of “Mommy” and “Daddy”, bound to those people only in the mind of the creator.  And we love the drawing for it.

So I propose that while all people, at a basic level, strive for both love and safety, the best designs speak to both of these needs.  It is the combination, at the right level, of these two elements, minimalism and ornament, that leads us to a trully enjoyable aesthetic.  People are instinctively drawn to find such balance. Mac users place that glistening box in a protective cover that gives it surface texture.  These are often made to simulate a natural material such as wood or leather, for there is nothing more ornamental than such natural materials, once living things.  We further decorate our items with personalities and names.  We put labels to them, both metaphorically and literally.

But enough poetics.  In practical terms, how does one find the right mix of safety and love, cleanliness and ornament, in design?  This is a complex subject, probably beyond a simple blog post, but I have seen a few techniques, and one can be illustrated nicely.

Recently I looked at upcoming designs for an online advertising campaign, prepared by a seasoned designer.  The ads were white, combined with nicely spaced text given lots of “breathing room”.  The text was made in cool, non-threatening colors.  It was very clean, very polished…and perhaps save the final element would have been unremarkable.  But the addition of ornament, the tasteful use of imagination, leant the ad perfect balance of safety and love.  A single brilliant green leaf was added to the center of the ad, transforming it to a work of art.  Honestly, it was brilliant.  To the point, it was almost impossible to picture the ad without the natural material featuring prominently in it.

This returns us to our discussion or safety and love.  Why is it we love old books?  When they are new, they are shiny and clean.  But as we use them, we leave our mark upon them.  Pages become dog-eared, the cover work, the spine cracked.  And they become a valued posession, for we have invested love into them and they in turn reflect that we have left a footprint upon our planet.  In a digital age, this is more difficult to achieve.  Like all things digital, we can only simulate this “wearing” action.  And so we find social networks and user-generated content becomes popular.  As an example, many studies have shown that user-reviews are the most popular feature on Amazon.  People go straight to them, and in fact they will consult these reviews even if they intend to buy elsewhere.

The funny thing is that no one was ever paid to write a review on Amazon.  And if you do a bit of digging it becomes clear that many reviews were conducted by people who do not actually have the product in question.  Have you ever written one, or perhaps a blog post or comment?  Did you find yourself drawn back there to see if your input has sparked discussion?

Perhaps it is not so much the user-review that is of interest to us, but rather the attempt to leave a footprint in the vast sands of the internet.  Why?  Because this lasting impression validates us, our time spent here.  So while we crave the safety of the minimal, we need to ornament, to decorate and tell a story.

And so I put it to you, dear reader: where can you identify both safety and love in the products and services you use most?

-t.

Timetracking – Right and Wrong

Posted by thedigitalartist under Uncategorized

Tracking time on a project is a sensitive issue.  It seems there are a thousand systems in place for doing so, and more appearing all of the time.

Recording time spent on a project is a responsibility that is shared across the various departments involved, and it can become dicey because each department has their own take on what exactly time tracking means to them.  I feel I can speak for the programmers – it’s a pain in the ass.  Yep, it is a big ole pain in the buttocks to me as a programmer, because it really doesn’t seem to add anything to my value.  I suppose it might show that I was faster than another programmer…but so what?  It certainly doesn’t prove that the other programmer writes better code than me or I than him.  So when someone asks for the hours spent for the week, it is really a big hassle for me.

I can also speak as a manager.  But the message is the same; time tracking is a pain in the butt for the manager as well.

You might think that the account manager likes time tracking – they spend a lot of time monitoring the hours spent and calculating.  It is they who make the manager responsible for getting hours out of the team.  But guess what..it’s a pain for them as well.  Yes, they need those hours to report against, but getting people to participate is a horrendous task for them, and one they feel is in addition to their real job of creating strategy for the deliverables.

It gets worse than that, particularly in large organizations.  When the front-line soldiers can not see the results of their reporting, it can get slack and lose meaning.  In some places, the agency generates income against hours billed to the client, and so the employees are mandated to report hours against projects no matter what they worked on.  They begin to practice a “shotgun blast” approach to time reporting, scattering small bits of hours across multiple projects in the hopes that they will be able to cruise under the radar.  In this environment, the time reporting winds up serving no purpose whatsoever and can actually agravate people to the point of leaving.

There are many tools devised to help alleviate this problem.  They can range from simple desktop utilities to online applications.  Some companies have tried to utterly regulate this process and remove the “human factor” by installing software that monitors all activities of the employees, counting their keystrokes and clicks, and allowing big brother to peer in on their system whenever they feel like.  Obviously these companies do not have time to sit and watch everyone all the time, but they hope that the mere possibility of being monitored will keep people focussed.  In 1785, the social theorist  Jeremy Bentham designed a prison he called the Panopticon, with the expressed goal of creating “a new mode of obtaining power of mind over mind, in a quantity hitherto without example”.  If all prisoners assumed they could be seen at any time, it was assumed they would become docile and submissive, to the point that a single guard could control them, or perhaps none at all.  Scary stuff, but not unlike what these desktop monitoring efforts attempt.

The problem is that docile, submissive, closely-monitored people don’t make particularly good creative code or designs.  What works for prisons is probably not the ideal environment for a creative shop (duh).

So how can time tracking be done well?  The answer is not that difficult.  All of the approaches mentioned above hinge on one critical flaw – they all use lazy-instantiation.  They are pull models.  What does that mean?  Well in programming terms, lazy instantiation refers to putting off an expensive computer process until it is needed.  In Flash, for example, you might not load an asset upfront with the site, but rather when the user clicks on something that needs the asset.  Handling things this way makes sense where there is a distinct possibility that the user might not access that area of the site.  Why load something that might never be seen?  The downside of this approach is that if the user does access this area, they are likely to be delayed by a “progress bar” as the application now loads the assets.  In terms of tracking time, that progress bar is the period between when the employee was asked to report and when they produce an answer.  It interrupts them.  In programming the answer is to cache the loaded asset and thus avoid having to load it again the next time it is requested.  Unfortunately, the employee may reach the same conclusion with their reporting, simply repeating last week’s report, assuming they did ‘about the same thing’ this week.  In actual fact, chances are very small they had identical weeks.

When we ask the employee to look backwards and assess what they have worked on, we are using a form of lazy instantiation.  We are reflecting.  We have deferred the responsibility until the work was already complete.  And that is what makes it a pain in my ass.  It is also somewhat a waste of efforts.  Consider how much time is put into doing a detailed estimation for a project, to figure out in advance how long a task should take to complete.  Why not use that up-front effort?

Rather than asking people to turn in hours upon completion of a task, it is better to go to them each day and let them know how much time they have and what task they are expected to accomplish.  Now they no longer have to turn in any hours…unless they happen to go over their estimated limit.  That’s right, the pain in the ass of keeping track of hours only kicks in when the estimates are skewed, which is perhaps when we should be feeling a little pain, as a reminder.  When things are going just fine, the employee has no hassle whatsoever in tracking hours.  Spend the effort upfront, and be done with it.  In cases where someone is regularly needing to track overtime, chances are the estimation process is off and needs to be reworked.  But at that time, people are willing to do so because they would prefer to avoid the pain of time-tracking when they would rather be programming or designing.

This system is only possible in teams where a lot of effort and planning goes into breaking a project down into manageable chunks.  And I’m not sure it works at all for time+materials arrangements, but frankly we hardly ever do such an arrangement at my work.

A personal time-tracking tool is very helpful, and perhaps essential for those who work entirely on their own.  But again, these tools are best when selected and used as a personal choice by those who like to get better at what they do.  Trying to mandate them is a big waste of effort because they are so easy to mess with, or simply forget about.  And they can’t track what is going on between the employees ears.  Most programmers, for instance, spend only about half their time writing code.  The rest is spent thinking, planning, scratching on a notepad, reporting, consulting, etc.  A programmer can have their most productive day ever with one breakthrough thought that resulted in three or four lines of code.  This value can not be estimated by traditional time-gathering programs.  And frankly, it is wise to not even try to cultivate an acceptance of clock-watching.

From what I have seen, the best system for tracking time is simply letting people know each day how much time they have alotted to get something done, then check with them when that time is up.  That’s it, that’s all folks, no big mystery.  If they miss their estimate several times, make a tool available to them that they can use voluntarily to figure out where the time is going.  Such tools are like calorie-counters, useful once in a while to do a personal checkup but not practical for long-term use.  This system is not perfect, because a perfect system does not exist.  It is more or less designed to keep everyone happy over the long-term.  And it works pretty well.

Nicest of all, it bears no resemblance to a prison designed in 1785!

Trouble with Flash Video?

Posted by thedigitalartist under Uncategorized

Some time ago, I started noticing a problem with Flash video on my laptop.  It then started to become a problem on my desktop machine as well (though not as frequently).  Essentially, if my browser was open for a while, as is often the case if I leave the box rendering something overnight, Flash video would start to really chug.

It was annoying, and I’d reboot to fix the problem.  But try as I might, I could not find anyone else having this difficulty in particular.  It became especially troublesome on a recent client project, and made me scramble around checking if my video was working on other people’s systems, which it was.

But something ocurred to me recently, and I checked the addons I had running in Firefox.  One of them is called “Downloadhelper”, and it is used to snag flv files off the net and save them to your local drive.  Sure enough, when I uninstalled the plugin, the problem immediately stopped.  It was happening on both computers because I liked the plugin and had installed it in both places.  Perhaps it has a memory leak, but who knows?  I do know the problem went away when the addon was removed.

That made me think – we come across debugging and QA issues all the time.  Is it part of our standard checklist to not only ask questions about the browser being used, but also the extensions installed?  There is not much in the way of quality control for these extensions out there?  Do your contracts reflect language that defines what efforts you will make to accomodate extensions to the browser?

Interesting things to think about yes?

EDIT:::

Turns out removing the addon did NOT fix the problem.  Which means the problem is firefox itself.  As a matter of fact, I’ve been having nothing but issues with Firefox 3.  They are intermittent, on again off again.  They happen on the web and on my localhost and are totally random.  One time things work, then after a while stop.  Video is particularly troublesome.  I never have any of these problems with my other browser.  IE has been rock solid.  As of now, I’m officially off the fox, and looking at other browsers.

Subscribe to OddlyStudios