Grad School Retrospective (2)

No Comments »

As I mentioned in my last post, I am taking some time to look back on my time in grad school. A list of course titles and descriptions doesn’t really speak to what I got out of the course, or what I put into it.

4. Application of Artificial Intelligence - This was the first elective course I took in my program. Much of the course time was centered on discussion, and there was a major project of our choice. I continued to focus on natural languages, and whether a machine could “learn” language in the same way a child could.
I had initially wanted to perform some first-hand research with children, but I wasn’t sure about my ability to gather, tag and analyze the amount of data that would be required. As well, I would only be able to observe the children’s output, I would have to infer how they arrived at such input. I decided therefore to focus my attention on accepted linguistic concepts like Universal Grammar and Principles and Parameters. As it turns out, the idea of “teaching” a machine in the same ways as a child was not a novel idea, and it has seen some success. This project was intended to serve as a starting point into more detailed research, for at the time I anticipated my capstone project would be related to natural language processing.

5. System Architecture and Engineering - I had been nervous about this course prior to enrolling in it, but it ended up being one of my favorites in the program. This course was the first to introduce us to Martin Fowler’s book “Patterns of Enterprise Application Architecture”, to which we’d end up referring in several more courses through the program. Immediately, I loved the idea of patterns: identifying possible solutions for common problems, without getting into the specific implementation details. The course clearly contrasted functional and non-functional requirements, and spoke to how different requirements complemented and conflicted with each other. It was for this course that I wrote the Critique of ‘the value of a usability-supporting architectural pattern in software architecture design’ paper. At the time I was working in the Design and Usability/User Experience department at LexisNexis, and as was noted in the paper, often usability is not an initial consideration in architectural decisions. In the few months following my taking this course (and enthusiastically talking about it to everyone who would listen), I was selected as the departmental representative on the newly formed “Architectural Advisory Board” at work. We reviewed new project concepts and identified any architectural implications from the standpoint of the department or organization we were representing. I completed this course heartily acknowledging that “I want to be an architect!”.

6. Project Management of Information Systems - This was the second elective in the program. I will admit that I enrolled primarily because of the instructor, Roger Engle. On the first day of class, every student was asked what they hoped to gain from the class. I was blunt when I stated that my perception was that project managers were really baby-sitters, and I wanted to have a better sense of what they really did. Over the next twelve weeks, I gained a much better appreciation of the role of project manager, and I will admit I even toyed with the idea of PMP certification. I believe that this appreciation has made me a better individual contributor and a better team member.

7. Issues in Database Management - I’ll admit, this was one of the courses I was least looking forward to. I’ve taken database courses before, but I don’t have a particularly strong background in them. This was another case, however, where it was an ability to grasp concepts and strategies that proved to be more important than a background in a specific technology. Indeed, many of my classmates often struggled with the theoretical aspects of the class. “but how do we do this in SQL?” they often asked. We were being introduced to general concepts or best practices, and often my classmates were unable or unwilling to look beyond what they had been exposed to. We looked at object-oriented database models unlike any that current exist in the industry. Because of the lack of immediate applicability, some students resisted even learning about such. In contrast, I held no strong convictions about “how things are” (and therefore, how they are meant to be) so I was more open to the suggestion of different conceptual models.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

how you know you love your job: you’re blogging about it on a friday night..

No Comments »

Today was our day off after 9 days of ATG training. Yesterday afternoon, we were all mentally “full” of all we’d been learning. I wasn’t sure how productive I’d be at work today.. and as it turned out, it was one of those great days where you just can’t get enough done!

The morning started somewhat slow, but we had a major meeting scheduled from 11-12:30 for an upcoming project in which we’re to flex our new ATG skillz. The meeting went really well, we went over the strategic and creative briefs before getting into some more technical details.
Because I’m trying to get into an IA role, I was really excited about dissecting the tiny pieces that went into what we saw on the screen. For me, IA isn’t just about sitemaps and wireframes. I come to it from a programmer’s perspective: so what different objects make up the site; what are the properties of each.

After the formal meeting, several developers and our director were chatting about templates, and all of a sudden I got what was described as an overwhelmed look on my face. I was thinking about templates on two levels: templates that referred to data: mapping a template to a particular type of content, and then templates as they related to presentation. The scribbling to the right was my attempt to get some of this stuff out of my head: we could describe an object (say, a press release) as an aggregate of its parts: title, description, accompanying image(s), accompanying link(s). There could be a generic template used for this type of content, with variations based on the existence of different aspects of the element. Still, the underlying template would be of a press release.

But a template could also be used to vary presentation: a template could use the same attributes of a press release, but vary in terms of its orientation (image on the right versus the left). Where does the specification of this lie? Is it on the level of an individual instance (press release 1 could have the left-hand images, press release 2 could have the right-hand images), or should there be consistency across item types. (My personal thought is that for optimal user experience, items of similar types should be displayed in a similar fashion).
It’s like the post I had not long ago about areas of variation, or all the common UI building blocks discussions we had at LexisNexis. It’s about building a web application, not a web site.

After our group pow-wow, I still had all these questions on my mind, and I cheerily sat down to go through the wireframes. I tried to identify major item types, trying to consider all the information I’d taken in over the last few weeks. One major consideration is content updates, and I think sitting in training on the managerial track next week will help me understand what tools we need to provide for people to achieve their goals. (granted, we’re talking about my colleagues, who work at an interactive agency. We all have an abnormally high familiarity with the web, so we’re not indicative of a typical client)

I’m not the architect on the project, but I can’t help but see how the various pieces will fit together. I have a strong opinion on tying together semantically related content: an individual page describes a particular item, it is not simply a group of “stuff”. The challenge is looking across items to figure out how the compare and contrast. In training I asked about the possibility for a slot to be populated with different types of media — an image, a video. The response was that a slot can only contain a single item type: but the solution is to make a generic enough “type” that all media can be supported. I want us to see these patterns from the outset, rather than pigeon-holing ourselves into having unique, un-extensible content scattered throughout.

I’m really looking forward to this process…

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Flagship sites - identifying areas of consistency and possible variation

No Comments »

Lately at work I’ve been helping out with some light Scotts work. The Scotts Miracle-Gro Company is a huge client, with several different microsites and campaigns. The recent redesign of scotts.com (disclaimer: I only performed perfunctory copy changes for the redesign) reminded me of much of the work I did at LexisNexis: scotts.com was the equivalent of a flagship product like lexis.com or nexis.com. The challenge from a branding perspective is how to maintain a consistent look and feel for subsidiaries, while still allowing them to maintain their own identity. I’ve donned both a developer’s and a business analyst’s hat in looking at these projects, and it’s a good exercise to identify the opportunities for consistency as well as for variation. This was truly where we were going with our common UX initiatives at LexisNexis before I left. How do we enhance the usability of all the sites by introducing consistent functionality, while ensuring each site meets its specific target audience’s needs?

Before I left LexisNexis, I was the UX representative on the architectural advisory board and I sat on the brand spirit (branding and identity) committee. There, we had three flagships and literally hundreds of projects a year that had some level of association with at least one of the three. It was absolutely imperative that design or development decisions were not made in isolation. The User Experience department I was a part of held design reviews every week to push for consistent user interaction and design across our products.

Coming to Resource late last June, I was thrown into agency life. It’s quite different dealing with different clients, who are paying for the development of their own unique brand and user experience. While there are always benefits in developing code libraries of common components that can be reused, the nature of the challenges we dealt with in a huge beast of an application like lexis or nexis simply don’t compare.

It’s actually fun for me to look at Scotts and see those patterns and consistent elements. In developing one microsite, I’m stretching my “build for the future” muscles again in anticipating potential future additions. It’s interesting how I can build this into my work both as a developer (coding in anticipation of reuse), and as a business analyst (explicitly identifying requirements that have shown up elsewhere or may be of significance moving forward). At LexisNexis, some of these considerations (as well as others) would be made by the system architect or a portfolio manager, but those are roles we don’t particularly have at Resource, due to the nature of most of our client engagements.

It’s interesting that considerations into the creation of a robust, usable, expandable site occur throughout the design and development process. I guess I consider it the difference between creating a web site, or developing the architecture for a web application. You can make a web site to achieve a specific purpose, or you can create a framework that supports as-yet-unknown functionality.

This is why I once felt I wanted to get into architecture: rather than putting square pegs in square holes, I want to consider the fact that I may not know what pegs I’ll be given down the road. I hope that in the movement to BA or IA, I will also be able to anticipate these unknowns and ensure we continue to deliver engaging user experiences that are also robust, usable and extensible.

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

in all my spare time…

No Comments »

With only a few months remaining in my college career (this time), I realized I had better take advantage of student discounts. My bookshelf will soon include the following:



Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Influence Hollywood at People’s Choice!

No Comments »

I am VERY excited to announce that the redesign of www.pcavote.com went live! This is the project I’ve been working on since starting at Resource at the end of June. I’ve learned so much through working on it, but I wanted to reserve comment until it went live. So here it is–

I really enjoyed working on this project, although there was a bit of a learning curve in some cases. I am a front-end developer but I don’t have the flash skills we needed to pull the site off, so we enlisted some fantastic flash designers/developers. It was interesting to see how we were able to put a stylish skin on a very data intensive site. Although I don’t ever see myself becoming a good flash-motion designer, I would really be interested to learn more about the development site of it.
We are using a CDN to serve up our images/flash/css and so I got to learn all about cross domain limitations. We actually had some really interesting flash bugs that cropped out purely as a side effect of how we were serving up our data, and I was in there mucking about the code to figure them out. Sure, I couldn’t FIX the problem once I found it, but it gave me a better idea of some of the intricacies of actionscript.

We also included a variety of different javascript libraries and snippets, and it was interesting to see how the played (or didn’t play) together. I had never actually worked with mootools before, but I dipped my feet in a little. A graphic designer suggested the use of curvy corners, and one of our developers improved modified it to integrate with mootools. Throw in swfobject, and we just had a ton going on! I learned about the difference of domready vs load (which safari doesn’t respect), and I think it all came together pretty well…

Before we start working on the next release, I have a few other smaller projects on my plate. I’m working on a microsite with a few other developers, which is great because I have the opportunity to see how they approach projects. I will admit, TM’s crazy chaining javascript was intimidating at first, but it was great to do some ‘peer programming’ with TM and BV, and find out their opinions and best practices.
I believe I’ve also already mentioned hackfight, which is a non-project flex prototype project a few of us are working on. The final presentations are next Wednesday. We have a pretty neat idea, I’ll be excited to see how the presentation/demo works out, and how the other teams fared. It’s a really neat concept: we dream it up and build it ourselves, outside the scope of actual client work.

If work weren’t keeping me occupied enough, I am also entrenched in my classwork. Both classes seem incredibly timely: “verification and testing” as we just went through a release cycle for PCA, and “distributed systems” as that’s really what we build :) As we went through testing for PCA, it was painfully apparent that there are challenges associated with testing for UI and RIA that haven’t really been fully met. Just this morning I stumbled upon some documentation on testing flex, that I am thinking about exploring for a project for my testing class.

I know that our affinity for a certain subject area can ebb and flow, and I am definitely in a space where I am open and engaged in all this technology/systems architecture mumbo-jumbo. There is so much to think about, so many connections between all these concepts and ideas - it is just about refining them all into a cohesive system..

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl
  • Ma.gnolia
  • NewsVine
  • Pownce
  • Reddit
  • Sk-rt
  • StumbleUpon
  • Technorati

Architecting for the User Experience

No Comments »

Today I attended a three hour session at Microsoft on “Architecting for the User Experience“. It was geared towards architects and senior developers, so I thought I would check it out.

The first half of the session was a generic “What is UX” spiel. The take-home? “UX is a bloodbath and you need to fight for it, but it’s worth fighting for”.

There was a slide about how generally people felt UX = UI, and that the GUI was like icing on the cake; it could make it look good, but it couldn’t change any underlying problems. Having just attended a birthday party with three year olds last week, I wasn’t so sure this was a great analogy - put on enough icing and kids won’t even get to the cake!

A few links were tossed around:

“Questions about whether design is necessary or affordable are quite beside the point: design is inevitable.

The alternative to good design is bad design, not no design at all.”

– Douglas Martin (designer)

  1. Functionality: “works great”
  2. Aesthetic: “looks great”
  3. Interaction: “relates to you” (example was espresso machine that makes two cups)
  4. Process: emotional experience. Every moment you spend with something you dislike, you could be spending time better

I was bothered by the fact that the next slide said “business principals”. I will admit I was so caught up in the grammatical error that the point the speaker was making was lost on me… Hey, attention to detail….

The speaker (Josh Holmes) used some great examples of products that had great and poor user experiences. I had never seen the innovative pill bottles used at target, but I’ll admit they are of great design. He shared with us many interesting tidbits - did you know Harley davidson forecasts their next year’s sales based on the number of Harley Davidson tattoos being {what do you do with tattoos? create them? make them? commissioned, perhaps…} in a given year. Naturally I started thinking about brand and marketing, but I know that wasn’t on the formal agenda for the day…

Three questions to ask (and answer!):

  • What is desirable to users
  • What is viable
  • What is possible
  • The second half of the session was the sales demo. Josh mentioned the continuum of experience, from the web (ubiquitous) through to platform-optimized, with an intermediary of “richness” between them. In MS terms, it was “asp.net/ajax” to “silverlight” to “wpf”. I had heard of silverlight, but didn’t know much about it.

    I’m generally a bit skeptical of MS offerings, but I’ll admit, this stuff was slick. Earlier in the session we had talked about travel applications, and he brought up a silverlight demo of one. Now this thing is slick! An entirely different experience than that we’ve become used to when booking flights. Heck, it was fun. Is that the technology, or simply the vision? I’m not sure: flash/flex may be able to handle the same thing.
    I would link to a working demo, but I just tried installing silverlight, to no avail.. so here’s a blog post with some screenshots. *sigh… no comment*

    Josh pulled everything up on vista without any real explicit mention of it… and my initial impression was “wow, that looks like a mac!”

    Some general notes: MS is looking at 3 - 9 month release cycles, rather than years and years between releases. They released the 1.0 beta the same day as the 1.1 alpha.

    • Silverlight 1.0: this summer
    • Silverlight 1.1: (with or after orcas – dependent on CLR, late fall, early spring)
    • All apps run in the sandbox

      • Conceptually similar to HTML DOM sandbox
    • Apps run like HTML pages – click a URL
      • No elevation of privileges request
      • No way to get out of sandbox
    • Includes some additional functionality
      • Safe isolated storage
      • Client based file upload controls
      • Cross domain support in-work

    So what was the big sell? “So as .NET developers, what can this do for you?” (whoops, I’m not a .NET dev)
    The resounding answer was “No HTML!” Evidently “HTML is the COBOL of the web”

    Currently, designers design, and developers add business logic. XAML enables them to speak the same language.

    We got to see the entire suite:

    • Expression web: xhtml, css, xml, xslt “arguably one of the best css editors available”
    • Expression design: pro graphic designer tool (photoshop).
    • Expression blend: Visual studio for designers. Integration of art, images, text, video, 3d content
    • Expression media: supports over 100 file formats, version control, folder watching..

    No special hosting requirements (*.dll, *.xaml, *.js, *.html), cross platform client side functionality you can host anywhere.
    The speaker mentioned that he foresees a “technical director” role coming into the field in future years.

    Overall, I was pretty impressed with what I saw. I’m not generally a huge MS fan, but I’d be interested to see where this all goes…

    Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
    • bodytext
    • del.icio.us
    • Facebook
    • E-mail this story to a friend!
    • Print this article!
    • Mixx
    • Google
    • TwitThis
    • BlogMemes
    • Furl
    • Ma.gnolia
    • NewsVine
    • Pownce
    • Reddit
    • Sk-rt
    • StumbleUpon
    • Technorati

Architecting the User Experience

No Comments »

Just came across some information on some MS ‘informational session’ on Architecting the User Experience. Sure, it may be just some blatant advertising for the latest MS product, but it’s free, and it’s three hours. What the heck.

It is targeted towards “Senior developers who are responsible for architecting the solutions they develop or who are interested in becoming an architect in their organization. Software design and creative decision makers that need to know what the next generation of user experience focused technology will enable them to create.” and mentions “we will discuss how architects can work with software design professionals in new and innovative ways to create the next generation of ‘experiences’ and products that will be demanded by consumers and the enterprise.” That is really the role I want to take on: being the liason between what the user needs/wants/expects/deserves and what the organization can/will provide.

Somehow, I anticipate I will get more out of what I interpret their discussion to be than what they will actually present. But that’s ok with me..

Like it? Share it! These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Facebook
  • E-mail this story to a friend!
  • Print this article!
  • Mixx
  • Google
  • TwitThis
  • BlogMemes
  • Furl