We're Hiring!

Projects Jobs About

Focus on the User

July 10th, 2008 by Dusty

I frequently comb through our archives of documents on Google Docs, and recently stumbled upon this mind-dump that I did about two years ago. It’s describing a product idea that I had for a web app, and how it could be made SO MUCH better than the existing sites out there.

It’s not about the technology - its about experience.

Funny thing is, here we are two years later, and we’re finally building the product... Interestingly, this is still exactly the vision and direction that we’re taking things. I encourage you to do the same… Though this was initially for our webapp, I truly believe that this stuff transfers. Reader’s Digest version:

Be 100 percent about the user. Provide value. Be awesome.

  • Happy users = returning users = more traffic
  • Happy users tell their friends
  • Happy users don’t get frustrated, and spend more time on site
  • How to make happy user?
    • Site easy on the eyes
      • No BLINKING ADS!
    • Don’t FORCE ADS DOWN THEIR THROATS
      • Google taught us that RELEVANT, unobtrusive ads can be VERY PROFITABLE
      • Annoying ads are not good for the advertiser OR the user
    • Actually RELEVANT, USEFUL CONTENT will drive the MOST TRAFFIC
      • Make a site that people actually WANT TO USE
    • Provide them with the information that they WANT
      • Provide value, and the people will come
      • Provide value, and the people will tell other people.
    • Provide them with USEFUL INFORMATION
      • Don’t just put information “just because”
      • Give serious thought to providing VALUE to the user in every area of the site.
        • Why is the user visiting the ??? section? Am I solving his/her needs?
    • Make it EASY
      • On the internet, it’s EASY for a user to go somewhere else.
      • Make the site EASY TO USE, or they will leave, and go to a competitor whose site IS easy to use
        • Don’t assume that they will stay because of your BRAND, or because of your MONOPOLY.
1 comments »

Making a Great Place for Developers to Work

December 19th, 2007 by Dusty

Kevin and I are frequently asked why we started our own company, and it’s often assumed that we did it to become rich and famous, to have total freedom, to be the boss, or to (insert some other selfish reason). While these benefits were, no doubt, motivational factors, one of our greater reasons involves developer treatment. That is to say, we started BrightMix because we were tired of working for companies that did not treat developers like total rockstars. Period.

You see, we’re deeply committed to many of the ideas that Joel Spolsky has set forth. I guess you could say we drank the Koolaid – and liked it.

For the last five years I’ve been testing that theory in the real world. The formula for the company I started with Michael Pryor in September, 2000 can be summarized in four steps:

Best Working Conditions Best Programmers Best Software Profit!

It’s a pretty convenient formula, especially since our real goal in starting Fog Creek was to create a software company where we would want to work. I made the claim, in those days, that good working conditions (or, awkwardly, “building the company where the best software developers in the world would want to work”) would lead to profits as naturally as chocolate leads to chubbiness or cartoon sex in video games leads to gangland-style shooting sprees.

It’s one thing to pay lip service to providing this kind of environment, and as such I think lots of companies would say that they are “developer oriented.” I mean, everyone wants to hire the best-of-the-best, but how many companies actually do what it takes? Kevin and I think that in Omaha, this concept is truly unique. We believe that the top developers can choose to work where they want, and we want them to choose to work here.

So, What Do Developers Want?

Different folks have different desires, but, as developers and previous employees ourselves, we’re pretty clued in on what it takes to keep developers happy… and how far most companies are willing to go to see that happen. Here are some example developer requests we’ve witnessed or made, followed by a typical response from ol’ Corporation XYZ and then BrightMix’s response.

Developer: I’d like a comfy chair since I’m sitting for numerous hours every day!

Corporation XYZ: No. Then your chair wouldn’t match the rest of the chairs in the office.
BrightMix: Let’s go shopping!

Developer: I’d like dual monitors.

Corporation XYZ: Those are only given to managers and people of higher importance.
BrightMix: Dual 24” LCD’s are standard issue here. Actually, we can probably get you a 3rd.

Developer: Will you buy me this programming book off Amazon?

Corporation XYZ: Maybe, and only if it relates to what you’re currently doing. We can put in an order and have it here in 6 months.
BrightMix: Go for it. Here’s the company card.

Developer: Free Lunch, Soda, and Snacks?

Corporation XYZ: Egregious!
BrightMix: Have all the snacks and soda you want. We’ll even buy you the types that you like. Also, the company will buy you lunch frequently.

See where I’m going here? And really, it’s not just about money or other tangible things, it’s about providing things that the top 1% of developers want and deserve. This will keep them feeling challenged, important, satisfied, and happy. Some examples:

  • Want challenging problems to solve? You got it.
  • Want to create a whiz-bang ajaxy spell-checking thing-a-ma-jig? Go for it.
  • Want to use the latest and greatest technologies? How ‘bout Ruby on Rails, or ASP.NET MVC, or The Next Big Thing?

Office Environment

On top of all of these things, we’re also trying to foster an environment that’s – gaspFUN. We believe its possible to have fun at work; it shouldn’t be a place you dread going, but, rather, work should be a place that you want to go. Sure we’ll work hard, but we’ll play hard just the same, and nobody’s working 100 hour weeks (40 hour weeks are the norm). Again, Joel says it best:

The office should be a hang out: a pleasant place to spend time. If you’re meeting your friends for dinner after work you should want to meet at the office. As Philip Greenspun bluntly puts it: “Your business success will depend on the extent to which programmers essentially live at your office. For this to be a common choice, your office had better be nicer than the average programmer’s home. There are two ways to achieve this result. One is to hire programmers who live in extremely shabby apartments. The other is to create a nice office.”

In this regard, we’re already well on our way. We’ve acquired an office space that doesn’t look anything like the typical cubicle farm office building. We like to think it has a warm and cozy feel to it, and we want to outfit it with various fun amenities. There’s already a pool table/ping-pong table, and we’ve got plans for a dartboard and a Nintendo Wii. Of course, we’re also open to suggestions :-)

Great place to work = Great developers

Simply put, as we look forward at our company’s future success, we realize that greatly relies on us hiring the right people. Thus, we want to have the very best developers around working for us, and in order to find, hire and retain these developers, we’re creating the type of environment that they’re going to love.

In the coming days, as we prepare to hire our first official employee(s), we’ll be posting quite a bit more on our philosophies regarding hiring, benefits, work environments, and all things related.

More to come…

2 comments »

Ruby on Rails hosting - Slicehost

November 19th, 2007 by Kevin

When we established BrightMix, a few months back, we got this blog/website up and running by throwing a Mephisto install onto Dusty’s already existing Dreamhost account. While working on our blog/website was kind of slow and sluggish, it worked, and It was bootstrapping at its finest…

However, we’re to the point where we need to able to host Ajaxy Ruby on Rails applications. Unfortunately, we discovered that while Dreamhost is sufficient at serving up static files, it’s less than ideal at hosting web applications (especially Rails) where responsiveness and performance are paramount. Arg! a troubling issue.

What’s a software shop to do?

In our search for an alternate hosting service, Slicehost.com was recommended to us. This company specializes in hosting for developers, Ruby on Rails developers in particular. It all sounded good, so we sign up for 1 year of service.

Service that Rocks the Casba

The sign-up process was completely automated and painless. After signing up, I was told that we would have to wait a month for a slice to become available. (They had a shortage of available slices due to demand.) No worries.

A month later, I received an Email indicating that our slice was available and ready for use! At this point, all I had to do was log into their slick dashboard interface, select which linux distro I wanted to use, and click “go.” Minutes later, our slice was up and running with a full Ubuntu install!

Awesome Documentation

Setting up things in linux can be a little tricky since there’s a lot of configuring to be done. Luckily, Slicehost has some really good tutorials and documentation to help you get your web server/applications rockin and/or a rollin’ in no time. I was able to get BrightMix.com moved and running on its new host after only a few hours. It was all pretty seamless.

Long Story Short

We’re extremely satisfied with Slicehost’s pricing and service. BrightMix.com is now approximately 2 gabillion times faster than it was on Dreamhost. If you’re a developer looking for a high-quality, yet affordable, linux-based host, we highly recommend Slicehost.com. It’s simply gravy!

0 comments »

Please, No More Cubicles

October 15th, 2007 by Kevin


Boo, cubicles!

Simply put, we hate cubicles.

Cubicles suck for jobs that require personal concentration (engineering, accounting, most computer-based jobs, etc.).

As previous software programmers for both large and small companies, we've spent plenty of time in the proverbial dilbert'esque office environment. They exist everywhere, and it gets old... really, really fast. Of course, the reasons why cubicles suck have been repeated and enumerated many times over.

No door leads to mass interruptions and noise pollution

Many experienced cubicle inhabitants will tell you they get the most stuff done in the hours outside of 8-5--when no one else is at the office. It's really terrible in some office layouts where the programmers are right next to a whole raft of customer service reps whom are on the phone all day.

The private office as a badge

Typically, private offices are relegated to employees of importance or seniority. This is just bogus and unfortunate. Not only does this stink for the lowly employees, but it also reinforces the fact that your organization is built around rank and status. Boo and hiss!

Who likes dull colors and fluorescent lighting, anyway?

There are only so many cubes that can border a window (these cubes are also usually treated as badges). The rest of the cubes are stuck in the middle of the office space, sans sunlight. Couple this with the drab, unexciting color of the cube walls, and you have more of a dungeon than a work space. Nothing says workplace efficiency like a dungeon!

Alternatives to cubicles?

If you're not in a position to alter your current work environment, there is likely little you can do, aside from bitching and wearing headphones. Joel has some suggestions:

"Look for ways to get out of this environment. Take a laptop to the company cafeteria, where there are lots of tables that are empty most of the day (and nobody can find you). Book a conference room for the whole day... The next time there's a crunch on and your manager asks you what you need to Get This Done By Tomorrow, you know what to say. They'll find you an office for the day. And pretty soon they'll start wondering what they can do to keep that productive thing going year round.

Come into work late and leave late. Those hours after the rest of the company goes home can be the most productive."

However, if you are in a position of power, we suggest you create as many offices with doors as possible and steal some of the solutions that other successful companies have come up with.

Pixar, for instance, has replaced the lowly cubicle with small sheds/huts, which have a door, are insulated from outside noise, and have a high customization factor. How rad is that?!

What's the best set up?

There's no one best set up for all businesses. If you want boring, dull, and lifeless employees, put them in a boring, dull, and lifeless environment (not recommended). However, if you want creative, kick-ass employees, then put them in a creative, kick-ass environment.

0 comments »

Fat Free Software Development Team

September 20th, 2007 by Kevin

Scenario:

Project manager Timmy receives another email from his boss. "We've got the go-ahead for software project 'apples.' It's a big project that will take months to complete with a handful of developers. We need to fatten up the programming staff or we'll never finish in time and we'll get fired! omg!"

Timmy, having worked on numerous software projects, knows that getting more bodies probably won't help the project get completed faster. In fact, it will probably make things happen far, far slower.

Aye, but where's the rub?

The more people involved in a project, the more communication is required to keep everyone up to snuff on things. Communication has to happen between more programmers, project managers, designers, etc. In the end, more time is spent on talking and going to meetings than coding and getting things done... productivity drag, anyone? As Steve McConnell, the author of Code Complete, points out:

Communication flows more easily on small teams than large teams. If you're the only person on a project, communication is simple. The only communication path is between you and the customer. As the number of people on a project increases, however, so does the number of communication paths. It doesn't increase additively, as the number of people increases, it increases multiplicatively, proportional to the square of the number of people.

What's the solution for our friend, Timmy?

We suggest keeping the team for project 'apples' lean and focused. Cut out as much fat as possible. Protect the team from looming productivity killers like staff meetings, status report filings, and support tickets. Oh, and load up the team with a free supply of Mountain Dew! A small team of developers, run correctly, will out-perform a large, cumbersome team... hands down.

What if his higher-ups aren't down with the small team philosophy? That's rough! Timmy could try pointing them at the plethora of pro-small-team evidence already out there.

BrightMix = Lean!

Dusty and myself have both worked in large development teams and... well, we don't like it. We like the flexibility and low overhead that our lean-ness gives us in the software development process. Honestly, though, this is the subject for another whole blog post!

2 comments »