Sunday, December 2, 2012

write big and so everyone can see

[caption id="" align="alignright" width="202"]Wisdom Cards - Affirmations - Louise Hay Product principles are like the daily affirmations of projects (and obviously should involve cats)[/caption]

When I'm working on a project I always write a few things on the wall. I write short phrases which represent decisions my team has already made about what is important. When I am evaluating a feature or a design I can always look up and check to see if the work we've already done helps me answer my question. It helps keep me on track, it keeps things simple, and I'm a total believer in this system.

I'm reading a book where they describe these as "product principles." I always used the terms goals and mission, but I think I like principles better.  Mission seems too abstract and goals seem too achievable.

Whatever you want to call 'em -- I always write them on the board/wall/desktop wallpaper--anywhere and everywhere. They help me quickly re-orient myself and make decisions faster. I've done a lot of the mental work up front and so now I can leverage it every day.



For example, think about the Amazon Kindle. One of their goals seem to be: to make a seamless replacement for the paperback book (should be as easy to use, use in the same way, etc etc etc). You can phrase this principle in a lot of ways (and how your phrase can make your principle vastly more or less useful), but for now we can stick with "like a paper back book."

Decisions about features can be really complicated because they come with a lot of pros and cons. For our Kindle example -- perhaps there could be a feature that would allow you to read the local newspaper of wherever you are in your native language. Lots of users have expressed interest in such a feature. It would come at a cost of battery life, and a price increase. But is this feature right for the Kindle?

Having already decided that the Kindle be "like a paper back book" will help us decide about this feature. It will ground our discussions, and keep us from having to do all of the work about why being "like a paperback book" is important.

On the surface location aware newspaper sounds like a fantastic feature that users want -- but does it really fit the product? We can also compare other features that might make more sense for the product (we can only build so much per cycle). Or maybe we should change the feature so it better suits our product and falls in line with our principles.

Products rarely only have one principle, and it is super important to prioritize them. In or Kindle example, another principle might be to "leverage the Amazon store" which might be less important than making the Kindle "like a paper back book."

When talking about a feature if you find yourself saying that a given feature supports more than one principle, especially the highest priority ones, you can feel really confident that it's a great feature without much mental effort at all. If you find yourself trying to shoehorn a feature into a principle and it's not working, maybe the feature isn't right. If you're having trouble with a lot of your features maybe you've strayed from your product. Maybe the reason is because you're features belong to an entirely different product (Kindle Fire for example?) and that can be really exciting.

Leveraging these principles can be great to keep you grounded and productive. They can also help keep your entire team on the same page during feature discussions, and making decisions towards the same ends.

Tips for great principles:

  • Don't have too many
    2-4 seem right. It's best if they are memorable, but at worst they should be glance-at-able

  • Prioritize them
    You'll get more out of this process the more you put into it. Know what's more important.

  • Be specific and concrete enough
    Too specific or too general and they don't help analyze every question

  • Make sure everyone is on board
    Part of the power of this process is that it can ground conversations and get everyone in the same direction. This only works if everyone agrees on the principles. This process allows you to do work up front to save time and energy later, your team must still do the work to come to a consensus.



This isn't a new idea or even specific to (software) product development -- it's seen all over the place: frameworks in design, axioms in mathematics, the Bill of Rights to the US Constitution. Fixing as truths what were complicated decisions (that have been made and agreed upon by all parties after much discussion and thought), allows us to then focus our mental energies on different challenges. It's powerful and allows us to make even more complex decisions built atop these foundational ones.

Tuesday, April 10, 2012

excited about schemer

[caption id="attachment_173" align="alignright" width="263" caption="he lost an antenna in an unfortunate fall"][/caption]

Schemer is my absolute favorite new product, not for what it is but for what it could be. It was created by a team at Google who were “united by a passion to help people discover and share stuff to do in the offline world” (more here). It looks at first blush a lot like a text version of Pinterest for “doing stuff.” You can add things like “Visit the Eiffel Tower in Paris” and you can also look through other schemes and “Find stuff to do” which then you can add to your schemes as well.

Aside about Pinterest: For those who aren’t excited about Pinterest this is going to be a harder sell, but if you’re part of the curation craze, Schemer seems to handle one user case. A while back people started creating Pinterest boards titled  “bucket list,” “Hawaii vacation,” and the like where they would plan trips, adventures, and life goals. Websites cropped up with libraries of images with text on them saying things like “Lose 10 pounds” and “Visit the Eiffel Tower” but that was a user created workaround and not the standard use case for Pinterest. There is room for a dedicated service. Further, there are innumerable features that make sense for offline items that aren’t necessary or useful for online bookmarking.

But what does it do? What is it for?

Schemer says that it is to help you “Find stuff to do. Big or Small.” “Keep track of what you want to do, pick something, and go!” and “Get ideas from celebrities, experts, and friends.” All of that is true but I it is a lot more powerful than that, and those statements truly capture what the power of social media is. Most importantly, they don’t make it clear how to actually use Schemer.

Schemer has some real potential to replace services I use to make decisions about what I do offline (TripAdvisor, Yelp, CitySearch). I use them mostly for reviews. However, not that many people write online reviews. I am a person who writes reviews (it’s a guilt thing), and I have to admit it’s a lot of work. It’s easy to identify two problems here: not that many people writing reviews, and are they the people whose opinions I care about?

Here’s why I’d rather use Schemer (keeping in mind Schemer is pretty much useless in its current state so I took some liberties):

A few friends and I want to grab dinner in Austin tonight. I grab my phone and go to Schemer and pull up the Austin restaurants my friends have schemed. I look through the comments and see things like “mmmmm fried pickles,” “super expensive, but super worth it,” and “best margarita in Austin” – we have a winner. I click on it to see where it is, and that another friend, George, has “schemed” the restaurant as well. I shoot off a quick text to let them know we’re heading there if he wants to join. One more click and Maps gives me directions.

[caption id="attachment_181" align="aligncenter" width="300" caption="Terrible picture, great friends and great margaritas"][/caption]

Even just thinking about that makes me feel pretty awesome. It’s not radically different from the behavior I currently engage in, but at the same time the process and results are totally different.

It’s truly social – with my friends/family/people I trust

It is helpful to know what my friends think about a place. One of my favorite restaurants is an El Salvadorian place that Yelp doesn’t even know about and yet now all of my friends do because I told them about it. Not to mention nearly every restaurant in Austin has something like a 4 star Yelp rating, it’s not particularly helpful.

The comments I mentioned aren’t heavy “reviews,” they are the same “check-ins” we were seeing with Foursquare and Facebook (I think I’ve seen those exact examples on my feed), but now I am actually using the check-ins. That is exciting.

Giving me an opportunity me to connect with that friend, George, and leveraging the information that he wants to go to that restaurant is really awesome.*** Sometimes I’ll remember, “oh a friend of mine wanted to Six Flags, who was that…” but this is so much more powerful. Also, it gives me a reason to reconnect with someone I haven’t seen in a while.

*** This reminds me of the “soft social cues” which were a motivation behind G+’s hangouts. This idea was that it’s a lot easier to join a conversation that’s going on than it is to invite people to chat. It’s a lot easier to let people know you want to go somewhere than it is to invite yourself along.


Schemer gives me my money’s worth by using every part of this animal. Schemer can leverage what I’ve done, where I am, my device, what I want to do, what my friends want to do, and so much more. This helps me enjoy my friends even more.

A seamless experience

[caption id="attachment_176" align="alignright" width="235" caption="I always have my phone, even while walking through tidepools in Hawaii. My phone met the ocean just moments later, they did not agree."][/caption]

It seems pretty clear that social media needs to be mobile. Users love mobile and it makes sense. The holy grail of user experience is to create tools that fade into the background to allow users to forget about the tool entirely as they become completely absorbed in the experience. It just fits in daily life. I am incredibly excited to see a product, like Schemer, that has the potential to advance social media and allow the online social experience to integrate seamlessly with our offline adventures.

Please Note: I'm imagining up about a bazillion features to make this vision even possible, right now Schemer is very barebones, check it out for yourself.

Tuesday, March 20, 2012

the creep factor

In college I was president of my school’s chapter of Women in Computer Sciences (yeah I know, I was seriously cool). One Halloween we hosted a “creepy talk” where this guy gave a talk to our computer science guys on how not to be creepy. It was often funny and definitely helpful and it really got a great response. Nobody wants to be creepy. The dude who gave the talk was a little creepy himself, but I think that’s part of the charm. He has a website here.

The world is full of creepy people, or perhaps all people are a little creepy. Either way, the Internet seems to bring out the creepy. So whenever there is a product where people meet over the net and need to interact offline with each other, you have to deal with the creep factor. The amount of creepiness varies directly with the level of interaction, exposure, vulnerability, etc.

Tactics to fight the creep factor


1. Transparency of motive: We derive a lot of trust from transparency of motive. This is easy to see with Craigslist. I really want to get rid of that couch because I got a new one, you really want to buy my couch because it’s cheap and you need a couch. I’m willing to give you my address and meet you at my home rather than haul my couch down the stairs myself. Plus really – who would lie about wanting a couch… right?

Where motive is less clear, I think things get dicier. Take, for example, Chatroulette. Even though I don’t have to meet you in “real life,” it just seems creepier, and part of the reason is that there is no clear reason for us to be on Chatroulette. Even if I have a reason to be on Chatroulette, I have no idea what yours is and I fear it might be to show me your junk… creepy.

[caption id="attachment_84" align="alignright" width="127" caption="Even Emily Post (1872-1960), the authority on etiquette has been updated with etiquette advice on things like social media: emilypost.com/social-life/social-networking"][/caption]

2. Etiquette: There are certain social rules – like wearing, and continuing to wear, appropriate clothing in various situations – which help people to trust strangers. Some of our etiquette rules have been around for hundreds of years, but social rules regarding a lot of these online/offline interactions are developing right now (blogs everywhere are trying to get a handle on it). We’re borrowing from interactions we’ve traditionally had, and filling in the gaps with new stuff. People who break the social rules are weirdos, outcasts, and murderers. If you can’t trust them to shake your hand and introduce themselves, what else can you not trust them about?!

3. Information: A little bit of information goes a long way.  We trust people when we know more about them. The better we can relate to and understand the other person, the more we’re pretty sure they aren’t creepy.

When I was in school, we would always play “ice breaker” games. These games would encourage us to interact with one another and divulge information about one another (and have fun?).
OKCupid has this sort of thing going on. Their question system tempts you to answer the questions knowing that if you do you can see other peoples’ answers. Their quizzes give you fun information about yourself (just How Texan Are You) but also then translate the results to various traits about you and share them with potential matches.

4: Numbers: Finally, things are less creepy in groups. We find safety in numbers. If other people are doing it too, it must not be that creepy. Any time you can make the interactions group activities or at least make it seem like everybody is doing it… it’s less creepy. Meetups are less creepy because its a group of people (hopefully) coming together. I don’t think I’ve ever been to a Craigslist transaction alone. And when I do go on dates… those happen in public places where other people can keep an eye on me. Double dating online?

Recap: Steps to be less creepy


We as a society are getting a little more creep-tolerant. Social media and putting more of your life on the Internet is more mainstream than it used to be. The world is getting smaller, and maybe some people are realizing that other people aren’t that different and are not that scary.
However, the creep factor is still a real thing, and if you want users to feel comfortable with your product/website/whatever, it’s a good idea to try to minimize the creepy however you can.
So to recap, how to make your experience a little less creepy:

  • Make it really clear what users are doing with one another

  • Help users get comfortable with one another (provide initial info, profiles, pics, and facilitate initial interactions)

  • Figure out your etiquette and teach new users; work with the social rules

  • Remember there is safety in numbers; leverage whenever/however you can

Thursday, February 23, 2012

QR codes I actually want to see

I have a love hate relationship with QR codes. These two dimensional bar codes are super duper ugly. Most of the time, if I actually decide to scan one, I discover that it is completely pointless (don’t worry nowhere near as worthless as CueCat). But from time to time, I will be pleasantly surprised and find myself saying… wow, now that was a useful little blemish.

I think I’ve boiled my pleasant surprise down to a few factors:

I want to see a QR code when


  • I want specific information or a specific web location

  • right here, and on my phone

  • right now

  • the site or info is difficult or time consuming to find on a phone


Bonus points if it’s sensitive to the situation I currently find myself in. Do what you can with what you know about where the code is printed.

Here are some great times to use QR codes and people (okay, at least people like me) would love to scan them.



√  More information – Museums, exhibits, displays
 I want to know more about this painting, sculpture, display – but searching for it is hard (this is this particular artist’s Untitled sculpture… one of six hundred… great), and I want the information now.  Bonus points if you give me super awesome content.

 Help yourself – Take a number, check in
If you need me to go online to check-in, fill something out, make sure I paid, or whatever else while I’m waiting… it could be awesome to put up a QR code to link me quickly to whatever page that nonsense can be found. Like the butcher shop, let me “pull a number” then use your app to tell you what I want, and you let me know (via my phone or otherwise) when I’m good to go. Put my name on the list, let me get in line – whatever. There are places where it is important to physically be at the place to queues up but that should be enough.

And you’re awesome for not making me install an app, even more bonus points.

√  Get real time updates – Bus stops
Again, something that can be pretty annoying to search for on a phone – typing in all of this information when you’re literally standing at the spot which represents all of it… this seems like a great place for a QR code.

An anecdote about implementation and reminder that a little testing goes a long way: Here in Austin, some stops only show you a QR code and a phone number. That’s right – no phone, no luck. A lot of the people who ride buses in Austin don’t have smart phones – they get an automated phone system and can attempt to press-7 their way to something resembling route information. The rest of us can scan – except when the system fails and returns a “not found” error.

Another thing to mention is that GPS might be enough for bus stops. If your app/site is location aware, then where I am be enough to allow me to easily find my stop without typing in a whole bunch of stuff. There are other situations where real-time info might be more helpful - scan the QRC on my boarding pass to find my baggage claim/connecting gate. Scan the code on my table at a restaurant to see if my order was put in/my food is on its way (okay maybe that one is neurotic).

You could call it a pet peeve

[caption id="attachment_97" align="alignright" width="201" caption="Wearing a QR code instead of handing out cards seems a bit … forward thinking, but it makes more sense: saves trees, and multiple people can scan you at the same time."][/caption]

Χ  Business Cards
Yeah it’s sort of snazzy – but I already have this card with your name on it. I (hopefully) am not going to stop talking to you right now to check out your site (if that’s even where your code sends me, because I have no idea until I scan). Instead I’ll probably wait until I have some time later. At which time I might be at my computer. Now I’m typing in your website and have completely bypassed that mysterious ugly mark on the card which has each and every time proven worthless to me.

Best-case scenario the QR Code downloads a vcard to my phone, and you have at least kept me from having to get your info from the site into my address book.

The right time to use ‘em

The examples I’ve given all treat QR codes as a supplement to what’s being offered.

In the museum example it’s the “more information” link on a physical sign/exhibit. In the take a ticket/queue example it allows a customer to help himself rather than wait for an attendant (think airport ticket counters vs kiosks…everywhere).  And finally the bus stop example (well in a perfect world) it supplements a general guide for route and schedule information by providing real-time updates.

When QR codes simply provide information that’s already been offered (a business card with a QR code simply to that information again), or an ad with a QR code directly to the product’s home page… they lose a large amount of their usefulness – and just irritate me that I went through the trouble to get very little in return.

Also: just for fun.

Friday, January 6, 2012

my little crush

Okay, I said it’s a little crush, but really – it’s a big crush. A big crush on a little startup called Codecademy.com. They don’t know I have this crush—I’m just a stalker.

Codecademy is teaching people to code via a highly interactive website (check them out if you haven’t). I could babble for hours about how the concept is brilliant, and how everything going on at the site is fantastic. But I do not just love the concept, I love the way they are developing their product. I want to talk about two things the Codecademy guys added to the site that I’m excited about.

The scratch pad (and labs)

I have a huge passion for education. I love teaching people about computers and how to program. Codecademy cleared away a big bottleneck I encounter every time I try to teach someone to code—getting started.

Normally you have to install development environments, set up environment variables, download APIs… I have a degree in computer science and it overwhelms me. Codecademy gets rid of all of that and just gets you started. It allows a student to feel successful right away, and to see that programming is approachable and a lot of fun.

But I started to worry –people make it through the lessons this way… but how do they practice? What happens when they get excited and want to try something on their own? All of those things that were barriers to entry might crop back up as barriers again. Enter scratch pad and labs. These two features of the site allow you to program just like you do in the lessons – no installation, no upkeep, no barriers.

Scratch pad allows you to switch from learning mode to practice mode. It shows a text editor and a console. Scratchpad solves the concerns about the new user being able to practice. It works particularly well with scripting languages, but I think with templates and guides new users will be able to practice languages that require a little more groundwork too. It provides the springboard for more features than the Codecademy team could build (saving/loading scratches, case studies/samples, templates…). And best of all, any of these features are perfectly in line with natural growth within the vision for social, online, self-paced learning of software development.

But this functionality is more versatile than just removing barriers to entry. I imagine myself, a programmer, using it when I want to try a new language and don’t want to figure out the crap associated with getting it up and running. Or when I’m on a computer I haven’t set up and want to quickly write or edit something. I can imagine plenty of uses for online development environments – but the users are not beginner programmers. I love that Labs is a separate part of the site from ScratchPad, arguably a different product, because the users are very different. Labs FAQ.

Code year

This one made me giddy. It is so clever some people might think it’s not clever at all.

It’s easy to see that an education site should and will let you “enroll” in a class. Users (including me) were probably asking for this. I’d go to the site, do a ton of lessons then walk away and stay away just because there was nothing bringing me back. Spam is an easy fix, and enrollment in a class is an easy metaphor.

Here is where the brilliance begins though. Enrollment implies commitment; it’s heavy and certainly hard to associate with fun. CodeAcademy is trying (at this stage) to grab a bunch of people on the Internet who want to learn to code and shoehorn a social aspect to it.  Fun and learning have to be the incentive and so words like “enrollment” and “commitment” are dangerous. So don’t enroll, make a New Year's resolution at CodeYear.com

The New Year's resolution has such a strong place in our culture and it’s the perfect thing to leverage here. It’s something we choose to do because we want it and because it will make us better people. It’s something that’s a little bit difficult/outside our comfort zone but that we feel is probably attainable.

The New Year's resolution allows people to “enroll” while feeling like they are in control of their learning (not something generally associated with enrollment), a serious goal of self-paced learning. A resolution captures that this is something done over time but that is completely possible, and therefore what might be “spam” is actually Codecademy supporting you in reaching your goals. Sharing your resolution with your friends helps with accountability and is a natural thing to do. Plus there is strength in numbers; friends that resolve together are more successful. Finally, just like a New Year's resolution, don’t feel like this is anything too formal, all you gave was your email address.

I could go on and on about how fantastic it was for them to choose this metaphor. It was simply brilliant.

Ideas for next CodeYear

The CodeYear.com site bothers me a bit. I think it might hinder the actual goals of the program. Part of what makes this resolution so great is knowing how great the CodeAcademy program is. Knowing that it is fun, low impact, high-reward is really important. Users that encountered CodeYear without knowing CodeAcademy have missed that, and might be more wary of the commitment, or feel less like they will be successful, etc… It might be helpful to tie CodeYear more closely to Codecademy.

Also, the overall design just seems a little text heavy to me, and a little less fun than a New Year's resolution should be. However, code is text heavy, so I’m not sure how much could be done (its easy to criticize). I understand that this was put together rather quickly.

Falling back to the resolution metaphor I’d be interested to think about how to use their rewards system and leverage the social networking to get people excited about keeping up with their resolutions. Coming from the “lose 10 pounds” resolution, staying excited is definitely the hardest part!

Going forward

I think Codecademy have a great concept and are making great decisions. I think as their product grows there are some things I would focus on because they are really exciting. That being said, I ever meet these guys I won’t be able to eat around them and will say dumb things. That’s how it is.

[caption id="attachment_62" align="alignright" width="300" caption="Screenshot of the Hitchhiker's Game"][/caption]

Self-paced learning
Having taken quite a few “self-paced” courses myself, I don’t think anyone does it right. Codecademy is definitely getting closer because of its high level of interactivity (its awesome, it’s the hitchhikers game for learning to code). I think their ability to leverage the social aspect of their product (which is currently not as developed) is going to be key. Sometimes we need help from other people.

Self-paced can’t be totally self-paced, as I gushed before in my CodeYear discussion, users need a little push. Keeping CA “enrollment” fresh and fun is going to be a challenge going forward but I think they’ve tapped into some really great ideas for solving this problem (rethinking traditional enrollment, social, competition, etc).

Codecademy sets itself apart from other online courses by leveraging “learning by doing” really very well. I would focus on doing because it keeps things fun and engaging. Programming projects are a great way to practice and get beyond the lessons and really write code. After that I think focusing on supporting students get to work on building “real” things will be key.

Social
I touched on some of this above, but I think the social experience is one of the most confusing parts of the site. The social aspects feel forced, and tacked on. Sure I can let everyone know what I’m doing but how am I interacting with other students. Code development has a long and established history of being social on the web (the entire open source community). Learning has always been a social activity. The social aspects of Codecademy becoming a more integrated part of the experience could take it to the next level.

In college one of our assignments was to work together to program “critters” which “fought” each other. There was no hardware, and battles projected on a screen during a pizza party. Something like this could be a way to actually bring your friends into the Codecademy experience. Have your friends help you write code, pit your code against theirs, and shared timelines and incentives. The experience has goals beyond simply learning.


[caption id="attachment_60" align="aligncenter" width="428" caption="My first semester programming class."][/caption]


I could keep going but at some point I'm in danger of a restraining order.

XOXO Codecademy, Love you.

Tuesday, January 3, 2012

process process process

[caption id="attachment_44" align="alignleft" width="176" caption="Me and a rig, small town TX"][/caption]

First and foremost I’d like to take a moment to give a shout out to software development in the oil industry. Having worked there for a good chunk of my career I can tell you from experience it gets a bad wrap. I did some awesome work there with awesome people. Plus, these guys know how to do process, methodologies, and chain of command. I cannot be thankful enough for learning enterprise development in that environment because loosening up on the process is easy but learning and appreciating it can be hard.

So I wanted to take a moment to do some appreciating. When I talk about “process” what I mean is just about anything project management related—really the software/project development methodologies: waterfall, agile, modified waterfall, scrum, RUP, and many more. But process has a place beyond project management and there are things that are not overarching methodologies that I want to give a little appreciation to as well– code management practices, issue tracking schemes, and even meeting requests.

Many people are afraid that formal processes for software development (or really anything) lead to inefficiencies and are too often more trouble then they’re worth. You spend a whole bunch of time writing documents, sitting in meetings, filling out forms, doing things that aren’t accomplishing your job, wasting time. I hear you, and sometimes that's true, but you get things in return.

Respect

I mention earlier about meeting requests. This "process" seems small and silly, but I worked in places with meeting requests as the standard for scheduling and at a place where it was not the standard. There is something about letting someone “accept” a "request" and having to look at their calendar before dragging them into something that conveys a higher level of respect for their time than just shooting them an email or interrupting everyone with a “let’s all meet in the conference room.”

Just about any process can have this effect. When methodologies formalize interaction they can keep people from getting too focused on what they want out of a given situation and forgetting to respect the other people’s time, contribution, perspectives etc. This can be especially problematic if you have some dominant personalities. Having a formalized reminder of the importance and value of the other roles/teams/people is awesome.

Keep the train moving

When you work with really smart people, who have different goals: developers, project managers, sales guys, testing, etc… you’ll run into conflict. Not petty bickering, but really important discussions where smart people have differences of opinion. Good process can provide both a formalized way to “pick your battles” and a safety net for when you hit a good old fashion Mexican standoff. Sometimes you just have to keep moving because there isn’t always a best solution, but as long as you can find a great solution, things will be okay. Back to respect, process can be the enemy instead of the enemy being each other and that can be priceless for coworker harmony.

Communication

A good set of methods can help everyone stay on the same page. Whether it’s a bug report, a business requirement, a feature, an incentive… it helps to formally define the language we use to speak, and break up things into manageable bite size pieces.

This means that you can minimize the different lingo that various teams use to discuss the same things – which will improve and increase communication among teams/people –always a good thing.

It’s easier to bring problems and concerns to each other when when everyone knows what you're talking about. People have more meaningful, useful and satisfying discussions when you can get right down to it. You’re more likely to ask “a quick question,” of your business team, or run this feature by your usability guru, if you have don’t have to say… uhh so I’m uh working on this part of this thing, oh wait let me explain. Hrm.

But process is inefficient?!

[caption id="attachment_46" align="alignleft" width="198" caption="Famous tire swing cartoons..."][/caption]

I think the best response to that argument is that no process is inefficient too – no bug formal bug tracking system can lead to a bug slipping through the cracks and costing more later, possibly more than the entire cost of the tracking system. I use that particular example because I think most developers buy into the need for a bug tracking system – but the same holds true for a lot of other processes as well, including the heavier software methodologies. If you miss a business critical requirement, or overlook a development risk, these oversights can easily cost more than an entire development process worth of meetings, documents, etc.

It works if you work it … and if it works for you

These practices work because people commit to them, use them, and derive value from them. If any of that falls apart, then they aren’t working anymore.

If there are some people who aren’t participating or have a bad attitude, find out why. If the approach isn’t perceived as valuable by the team using it then something has to change. If it’s too heavy for a particular group – make it lighter. If there is something people are doing that isn’t useful to anyone, stop doing it. If you keep running into the same problems, arguments, pitfalls, then take a minute and try to design a process solution to prevent it. Get the group involved and make a change.

I think that the development and mutation of the process has to be a group democratic effort because it only works if everyone works with it—but when starting it’s a great idea to pick up a book or an article and work from a formal method. It’s easier to adjust it later, to make things more lightweight. Sometimes it can be hard to see what you need even but its often easy to see what you don’t.

The most important thing I’ve learned about working a bunch of different places with a bunch of different people is that there is no right process for everyone and the best processes are the ones everyone agrees to follow. The respect I was talking about earlier doesn’t just come magically from the process it comes from people respecting each other enough to use the process, whatever it may be.