Category Archives: Uncategorized

LUXr – Lean User Experience Residency

My company EnergyScoreCards has been taking part in the LUXr program in the fall of 2011.  LUXr stands for Lean User Experience Residency, and it’s a program that helps companies to think through their user experience and product issues in  semi-structured format.

The program is 10 sessions over 10 weeks.  Ours was on a Friday from 10 to 4.  Each session starts with an external speaker talk for an hour about their area of expertise, whether user testing, or agile product management, metrics, or other topics relevant to lean startups.   The speaker often stays for a few hours or even the whole day, which allows the team to talk to the expert about their specific issues.

After the speaker we do a quick standup meeting about progress made since last week and what the team is planning to do for the day.  After that it’s whatever your team needs to work on.  Josh Seiden, the program director, is around to help you work through blocks, or to help you frame a particular problem you are working on.  He has great experience both on the UX side and product side, so he is very helpful.  Our team has worked on big changes in navigation to our product, new alerting infrastructure, some smaller page redesigns.  Most importantly, the program helps the team build up capacity and gives us confidence to continue doing a better job both managing the product and thinking of way to improve user experience.

LUXr program itself has many branches, including in San Francisco.  Their mission is to help startups become better at producing usable products, and in addition to the residency programs, they have other workshops, and planning things like shorter video classes and other things.

Lastly, I already mentioned that Josh has been amazing as director of the program.  Seems like he intents to stay involved with LUXr, but he just announced a new venture, Proof, a new product development studio, which sounds amazing (his two partners, Giff and Jeff, were speakers at LUXr, so we got to know them a bit – they are awesome).   They have the dream team of New York UX / Product People working with companies to help them design better products and user experience.

I really enjoyed the LUXr program and would recommend it to any company that feels they need to improve their UX and / or product processes, no matter what stage they are in. Of the four companies in this batch, two companies were pretty late stage (we are two and a half years in with a reasonably mature product), and two were just starting up.

How to Add Security to Grails Links / Override Existing Taglib

I wanted to add a parameter to tag so I can have it optionally have it render depending on a user’s security. I wanted to say something like

I thought that since my site is already sprinkled with g:link tags, the easiest way would be to override the original taglib. However, since the TagLibs are defined as closures, I couldn’t just subclass the original ApplicationTagLib.

I have already been able to override existing tags from before by bringing the implementation into the new Tag – grails gives you a message when it sees two tags with the same name defined, but picks the one from your application, correctly assuming that you are overriding the original implementation.

I found from this thread that to get a reference to the original taglib, I had to go through Spring applicationContext. In my initial implementation, I got a reference to the original taglib, and tried to call the closure. However, that caused a StackOverFlowException.

Thanks to the Grails User list, and more precisely Ian Roberts (post here), I got help, so here is my final code (as you can see, I am using Shiro).

import org.codehaus.groovy.grails.plugins.web.taglib.*
import org.apache.shiro.SecurityUtils

class ModifiedLinkTagLib {

static namespace = "g"

def link = { attrs, body ->
   if (attrs.role=="edit" && (!SecurityUtils.subject.hasRole(EDIT_ROLE))) {
     return
   }
   def applicationTagLib = grailsApplication.mainContext.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib')
   applicationTagLib.link.call(attrs, body)
  }
}

Meeting Ticker

This is brilliant – a ticker that shows you how much the meeting costs.

Via Matt Raible’s post on Passionate Programmer book.

New Focus

I am excited to announce that after spending years reading and learning about how to start companies, I am finally doing something about it. I recently left Alfresco and am in the process of starting a new service that will create tools for measuring energy efficiency of buildings.

A bit of a change in focus, but as the technical part of the founding team, I hope that my experience will be useful as I am now building out a prototype version of the service.

I won’t promise that I will blog more, though I certainly intend to, including more about the service itself and what I am working on. One of the things I’ve been thinking about recently is the transition from an employee, which I have been all my professional life, to an entrepreneur and how the two are different.

How To Be a Better Blogger

Last Wednesday we held the first Dinner Salon. This is an idea that I threw out on NextNY list a month or so ago, and Eric Nehrlich said he’d be interested in helping out. The two of us, with some feedback from Tony Bacigalupo wrote up a little manifesto, and scheduled the first discussion – on the topic we were both interested in – How to become a better blogger. We promoted the event and had five people come to the inaugural Dinner Salon.

We met at Sahara – a quiet Turkish restaurant next to where I used to live. A total of five people came to dinner. We had a good cross-section of people who all blogged for different purposes, so it was very interesting to learn from each other. We had a very nice time, and I want to thank all who came for making the evening so interesting. This post will summarize the conversation and insights shared that night.

Here are the people who came, and a little bit about their blogs:

  • Eric blogs for largely personal reasons, but without a very clear focus. He writes about technology, becoming a technical manager, book he read, and other topics. Since I am interested in this area, I will attend that his blog is very good.
  • Damian is a wine connoisseur. He blogs at redteeth.com. He said he originally started blogging about wine, but over time it evolved about the whole experience around wine.
  • Fred is from a family that owns several Italian restaurants in US and Europe. He blogs at Inabbondanza. He also has a restaurant consulting business. His blog serves to reinforce his business. Fred also has other people working with him – a chef blogger in Rome, and another person who acts as a producer. Because he covers a lot of travel destinations, restaurants, and recipes, his older content is valuable, and he is able to charge a small fee for access to his blog’s archives.
  • Maria Ogneva just started a blog a few weeks ago. She is an entrepreneur who is starting a company focused on helping real estate investors find each other, and is hoping to have her blog establish her as an authority in the plan.
  • I (Jean, a.k.a. NY Web Guy) blog for a combination of personal and professional reasons. It helps me think and clarify ideas. Over time, I am hoping the blog will allow me to contribute to the conversation around technology, entrepreneurship and open source. I feel I have a bit of a focus, although perhaps not strong enough.

Here are some ideas that came up during the discussion:

  • Blog Focus. It’s harder to build up traffic if your blog doesn’t have a focus. Your friends may read it, but for a casual visitor there isn’t as much of a payoff to continue to visit you, unless they happen to be interested in the same several areas that you happen to blog about. Around the table, we had three people who had very focused blogs, and two who didn’t.
  • Stockpiling posts. Posting regularly is important. Depending on your focus, you also want to be careful about posting too frequently – that can dilute your message. If you have 10 posts per day on a topic, then you are crossing over to a media company, not just a blog. So if an inspiration hits and you have two blogging ideas the same day, write them up, but only post one – save one for later. This is especially good to have if you travel often – you can still have consistency even when you don’t have as much time.
  • Publishing Schedule.
    Inabbondanza, the blog focused on Italian culture has different focus area – food, places, culture, sports. They created a publishing schedule so that on a specific day of the week, the readers can expect posts about certain topics. For example – sports on Thursdays. Since they have readers that are really interested in Italian food, but not so much sports, this allows the readers to easily read only the content they care about.
  • Color Coding.
    Inabbondanza also color codes their posts to make it easier for readers to find what they like.
  • Writing Classes. We discussed whether anybody took writing classes as a way to improve their writing. Nobody at the table has, but Fred had a cautionary tale for us. A chef that he co-blogs with took some classes for writing about food. After that, his writing became worse on some level – since he was trying to apply what he learned, his writing style became way too formal, which started turning off some readers. After some time, he went back to his old, more informal, style.
  • Blogging Environment. Some of us shared that they have a special environment they setup for blogging, i.e. have several Firefox tabs open, for translation, reference, etc to have everything on the tips of their fingers.
  • Blogging platform. We went around the table and it turned out four of five used WordPress.
  • Creating a Community. The Wine and Culture-related bloggers both talked about how they created community, and even did a few offline events with their readers. I am not sure if this is as applicable with other types of blogs, but I am sure if you get big enough, it’s possible. From Eric:

    We were talking about Damian’s wine blog, and he observed that it became less about the wine and more about the people and community as time went on. I mentioned Hugh MacLeod and the idea of “Social Objects“, which he summarizes in another post as “The main thesis is that it’s not the wine per se that is interesting, it’s the conversations that happen around the wine that are interesting. And that is true for all social objects. People matter. Objects don’t.” It’s all about the people, and I think Damian’s experiences bear that out.

     

  • Sticking it to the Reader. We discussed how to make writing more gripping. Eric brought up the book “Made to Stick” (Eric’s Review), which talks about how to craft a compelling and memorable messages. One technique mentioned in the book is the inverted pyramid that journalists use. Start with your most important idea you want to convey, and then add details in the rest of the article. This way, if the reader stops reading at any point, they will still get most of what you are trying to convey. The book has a lot of other insights as well.
  • Optimize for Search. Eric shared his observation that a lot of readers may come through search engines. They can also leave very fast – you need to make it easy for them to stay. Make sure your blog layout is such that they can find other posts that might be interesting to them. Include links to your most popular posts, and random posts. Trying to understand who your users are is very valuable, since you can then think of way to target people in the same demographic.
  • Getting Ideas. One of the people suggested that he used free-association brainstorming and mind maps to get ideas about what to write about, and how to cover a topic more completely. This made me think of improvisation classes that I took at UCB. Improv generally can make you more creative, so classes could help improve blogging.

Post Length.

We discussed the issue of a length of posts. I referenced the post by Steve Yegge, who writes essay-like posts. He says that a longer post takes longer for people to digest, and some will be turned off. But over time, a long substantial post will have more influence than several shorter ones. However, without having a lot of traffic already, it’s hard to build up readers this way – most people just won’t bother. I know I started to break up some of my posts into series format, the way Paul Mark Andresen does. You also don’t want your posts to be too short. Eric later sent out some good links to Jakob Nielsen’s post on content strategy, where he examines the issue of content length. Here is another great post by Nielsen where he suggests that if you are a world-class expert, you should write articles.

From Eric’s email:

He suggests that different lengths are appropriate for different readers – “On the Web, you can offer both short and long treatments within a single hyperspace. Start with overviews and short, simplified pages. Then link to long, in-depth coverage on other pages.”

 

Personally, I don’t seem to write short posts – most of them are on the longer side. I think that would definitely be a good strategy if I was more famous. This is an issue I am very interested in when it comes to my blog, so I’ll be thinking and reading more about it.

How to Increase Traffic:

Great focus on a specific topic will attract people interested in that area.

  • In blogosphere, linking and comments are a form of social currency. People see where their traffic comes from, so the more you link to others, the more they will link to you. Providing a link to a relevant blog post you did when you comment is also a good way to get some readers.
  • Monitor the current memes in your area (i.e. Techmeme.com), and write posts on the current memes. Since a lot of people are talking about this topic, you are likely to be a beneficiary of some of the traffic.
  • Find blogs related to your focus that syndicate content, and sing up. For example, I syndicate my blog on NextNY blog, and my company’s blog. When I write relevant posts, I tag them appropriately and they show up on there. This increases the reach of your ideas. Over time, if you have good and relevant content, people will want to subscribe to you directly.
  • InAbondanza contacted local meetups in the related area – meetups of Italian expatriates or ones focuses on Italian Culture. Since the meetups didn’t have a voice, the blog became a good spot for the community to frequent, and many people from the groups subscribed.
  • Syndicate your blog. Adding your blog to other, more popular sites, is one way to increase the reach of your ideas. Also, as time goes on, people will notice that you (hopefully) have something interesting to say, and will subscribe to your blog directly.
  • Pre-writing and timing posts to be posted when a certain events occur. For example, Hank Williams wrote an post about the Chandler project since he knows that space very well. He posted it around the time that there was some news related to the project, which meant that people were looking for information about it. Another popular blogger found it, linked to it, and thus he got pretty good traffic from it.
  • You need to make it easy for people to stay with your blog – i.e. introduce who you are, etc.

Somebody asked a question about if there are any good books on blogging. Nobody really knew, except for a short book on blogging etiquette called Blogging (Quamut) – it was suggested as a good short primer (online version here).

Private Blogs. We talked about entrepreneurs using blogs to promote their companies, to announce their plans, and generally to make their companies more approachable. This is what Maria is trying to do at meetmojo.com. It was interesting to find out that two of the guys who are also starting companies keep internal blogs. This allows them to communicate with their employees and investors. Sort of like status report for investors.

More Resources:

Guy Kawasaki’s Article on Blogging.

The Microsoft Community Ecosystem – Introduction

Prior to my current job, I spent the two years working for a consulting company, Infusion Development, here in New York.   We did business both with Java and .NET, focusing on large Financial Services companies and State and Local Government.  The company is a Gold partner for Microsoft, and did a lot of services work around Microsoft technologies.  

I learned a lot of Microsoft technologies while there, and got an inside glimpse into how Microsoft ecosystem works.  Another thing I discovered and took part in was the Microsoft community – the grassroots-run organizations that foster developer education, networking, and are thus a great asset to the software giant.

What really impressed me is just how large of a community exists around Microsoft and its technologies.    This series of blog posts will describe some of the community efforts that Microsoft has, and how they fit together.  I will then try to take some lessons from Microsoft and apply it to the Open Source Community.

Note:  This series of posts is a precursor to a talk I will be giving at Open Source Business Conference in March.

Blogged with Flock

Tags: ,

Life-Changing Technologies and Services – Part 1 – Usability

I was thinking about some products and services that changed the way I live my life significantly. Not the ones that affected everybody – i.e. cell phone, or internet in general – these are part of a much larger socio-technological change (I think I just invented a word :-) ).

The four that came to mind can be subdivided into two categories. The first set of products makes something that was possible before MUCH easier:

  1. Tivo = TV + Social Life. I remember having a conversation in 2000 with a co-worker about a Tivo – he had one, I didn’t. I was telling him that what it does is the same to what most VCRs could do at the time- record TV. I don’t remember how that conversation turned out, but I ended up getting one.

    The big change that Tivo brought into my life is time-shifting. I watch quite a lot of TV, and now I can keep up with my favorite shows without having to sacrifice my social life. At no point in the last few years did I stay at home to watch my favorite shows instead of going out and seeing people. Also, this means I can watch TV more efficiently, since I can skip commercials. One thing I haven’t figured out is whether as a result I watch more or less TV because of Tivo J.

  2. Meetup.com – I remember the first meetup I went to – it was the NY Tech Meetup about a year and a half ago, organized by the Meetup founder, Scott Heiferman. I remember how exciting it was – people interested in the same things as I was talking about their startups. It practically forced me to write a blog about it (unfortunately, on an old blog server which I can’t quite recover). I am now a “member of” about 30 different meetup groups, of which about half I’ve actually been to, and others keep meaning to go to. Now, I regularly go to several meetups per week, ranging from technology topics, to entrepreneurship, to salsa dancing. This service actually changed the way I live my life.

The lesson here is how by making certain things easier, technology can make a huge difference. Both of these capabilities existed before – I could record shows with my VCR, and many offline groups existed around special interests. However, making it just a bit easier to record TV or to find like-minded people increases the likelihood you will do it EXPONENTIALLY.

This is something to keep in mind in many areas. Simple, more usable interfaces win. Here are some examples:

  1. Google search page vs. Yahoo’s busy front page.
  2. Seamlessweb – ordering food as simple as possible.
  3. Drop.io, a New York-based startup that allows anybody to create a simple collaboration space in seconds.
  4. Tripit.com – you don’t need an account to start using it – just forward your confirmation emails for airline, hotel and rental and it automatically parses and puts together an itinerary.

The simpler you make your service, the less hurdles between users and you – the better the user experience, and ultimately, more users.

Talk Follow-up – Agile Experience Report – Scrum in Training @ APLN-NYC

 

Earlier this week I spoke to the New York chapter of Agile Process Leadership Network . I spoke about my experiences adopting agile techniques, more specifically Scrum, for the training boot camp I ran with my previous company. The title of my talk It was fun sharing the experiences. They will post the slides as well as a video of the talks at their website.

Thanks to Jochen Krebs, and the International Academic Alliance for making me feel welcome.

Lessons for New Technologists

I am now finishing up a boot camp-style training program for recent college graduates. It’s an experience I enjoyed tremendously. The students were a very fun bunch, and did a great job on the assigned project. One of the things this really showed me is just how much I myself learned since graduating from college – something I really got to see in this situation.

The biggest difference does not have to do with knowledge of certain technologies – that comes with experience – it is in how you approach tasks. The following are the three most important things that might distinguish an experienced engineer from an inexperienced one:

  1. Breaking big tasks down into manageable tasks. The first and the foremost is that when faced with a new task, you have to take baby-steps. You need to know how to break down a hard problem to something simpler, and evolve it to a solution.
    First you want to get a good mental conceptualization of the problem – if you don’t understand what’s going on from a 10000 feet view, it’s going to be impossible to know where to start. When faced with a new unknown task, I try to read up on the basics, get a good introductory understanding. I also look for resources available. After that, I start experimenting with the technology. This is why “hello, world” is such a powerful concept – it says that you have mastered enough of a language / technology to write the simplest program possible.

    For example, say you are tasked with writing an ecommerce website that needs to be process PayPal payments. You have to write it in php, but you don’t know php. How do you approach this? Let’s try to break this down a bit.

    1. Write a “Hello, world” in php
    2. Write a “hello, world” web page in php
    3. Write a “hello, world” web page in php that also gets user’s name and writes it out.

    If you can do this, this means you can start evolving closer to your requirements now.

    For PayPal, same thing applies – break things down.

    1. Start with trying to find an overview of how to integrate with PayPal – it’s very likely that many people have done this before you.
    2. Once you have a good basic understanding, try to write some code to connect to PayPal, just to prove you know how to do that.
    3. After you have your initial connection experiment done, go on to more advanced tasks, like actually sending payment information over to PayPal.
    4. Only after you have all these experiments complete can you think about designing a good solution to your problem – by now you understand enough about the problem itself.

    Throughout the task, you need to identify if there is something missing for you and come up with ways to get through the roadblock.

  2. Perseverance and resourcefulness. There were times during the project where some of the students would simply get stuck. This is perfectly normal, happens to everybody. However, what distinguishes an experienced engineer from an inexperienced one is what happens next. Fresh-out-of-school engineers still have the expectation that there will be somebody to help out – so they go to their instructor, or to their manager, for help. They send out an email, and then wait for response, possibly for hours or even days. This may work in the academic environment, but you are not in school anymore – it’s nobody’s job to make sure you get unstuck. You are getting paid a good salary to solve problems, and if the person in the best position to help you is unavailable, this should not mean your task will not be done. You must figure out how to move forward.
    You need to think creatively of where the potential solutions to your problems may lie. Can you think of somebody who is likely to know about this problem and help you out? If your email is not being returned immediately, can you try to pick up the phone and call, or even go to the person’s desk? This is one of the things that distinguishes star performers from average ones. With time, you will form a network of people you can go for help, and it will be easier and easier to solve these problems, but being junior is not a good excuse if you want your career to go somewhere. If you are really stuck even after you did everything you could think of, you can then escalate to your manager – hopefully he / she will be able to help –
    but
    at least this way you can tell them that you have tried many potential solutions – making you look like a competent employee, not as a cry-baby.
  3. Finishing things, and getting things done better than expected by your manager. This is also very important. Chances are, your manager has too many things to do to actively manage you and follow up with you. Therefore, you need to think about a task given, and make sure you really understand not just what the manager said, but what they really meant, the context of the task. This will help you to formulate a good idea of what it will take to finish the task to the highest expectations of your manager. Then go for it – perform the task in a way that it’s better than if your manager would have done it himself. This doesn’t mean you can’t ask for help, but it does mean that you need to self-manage as much as possible.
    Also, make sure you see it to the final completion. The better your ability to self-manage and perform tasks to highest levels of quality, the more likely your manager to have confidence in you so that he / she can give you more sophisticated tasks.

I highly recommend the book “How To Be a Star At Work” by Robert E Kelley. Here is also a review / recap of the book in Fast Company – http://www.fastcompany.com/magazine/15/star.html.