Our Development Process: 50 Months of Evolution
My new article about process changes in our company.
Hacker News Redesign: v.Next
I read the post about Hacker News re-design and didn’t like it. The resulting design is not good. It might be better than original design for large screens, but it distracts people from information. Orange numbers, large vote buttons, quite poor information density… I am not a designer, but the problem looks quite simple and interesting.
Here is my attempt to create a better design for Hacker News. I am aware about some weak sides in this solution and will enumerate them in the end, be patient and don’t fight back right away.
First, I asked myself, how people decide that an article is worth they attention? The process is close to this one:
- Read the title - is it interesting to me?
- Check points - how other people voted?
- Check comments - are there any hot discussion?
- Check age - is it fresh or not?
- Check source - is it credible? (well, this is somewhat stretched)
Currently you have to scan through all numbers of points, comments and age, but that is quite slow. You have to read every number to do a comparison — quite high cognitive load. Is there a better way? I think there is. I took two most important variables and encoded them:

Age is encoded with color. Dark color - fresh news (less than an hour). Light color - old news (half a day or more). Points are encoded with size. Obviously, large circle shows that a post is popular. I took all points and age values from the first HN page and analyzed them. It appeared that 5 groups are enough for age, while 6 groups for points may work.
Another idea was to highlight titles. Here I took a theme of Readable HN Chrome extension and modified it. Each news item is a “one-liner” with a large title, so you can scan items easier. Comments are aligned to speed up comparison as well. Here is the final result:

You can find important and fresh articles really quickly. This design provides a high level view on all news.
I explicitly removed numbers like 1..30 from the page. I don’t think they are useful. Something much simpler can be added to show page number.
Here are detailed explanations:

When you put cursor over circle, you see exact points and age information as well as vote up button. This information is hidden initially to make scanning easier, but is available when you need it.

There are no colors in the design. Colors will attract too much attention. It is possible to highlight very important things in general, but I am not sure what can it be on HN.
Here is HN original design for comparison:

So what are know problems?
- Information density is not as good as in original HN design. It can be improved I think without eliminating the original idea.
- It is not obvious out of the box that you can vote for news. You should put cursor over a title to see the action. But I don’t think that is a problem.
- Page number should be visible somewhere.
- Ability to flag a submission is missed. But it can be easily added on a cursor over near vote up action.
Overall I am happy about the result. Now you can load up your guns, folks.
The same is true about any product you create
How we work
Insights from an agile company
A Curious Company
Recently I’ve got an interesting question: “Do you hire people who learn new things or do you create an environment where everyone starts learning”? Who is this mysterious “everyone”? These people are not very active. These people prefer to adopt to existing conditions and follow the rules. I answered almost immediately “both”, but what really is more important?
I’ve always learned new things. Sure, my self-education style is far from perfect. I jump from subject to subject and read quite random books from disciplines barely related to my actual work. I know that and trying to fix that. I’m 33. Right now I try to gain fundamental CS knowledge (while I don’t actually need to). I’m a CEO of a small 35-people-company. Bootstrapped. Profitable. And curious.
The spirit of curiosity was always inside me. It was inside our company in early days, but depleted. Novelty darkened and goals blurred. The company started to look like “just one more place to work at”. I hated that feeling. We did common tasks, released common features. It was two years ago. Two years ago we’ve changed everything.
What is the right goal for the company? Do something incredibly cool, something that you can honorably call “the best in the world”. Why the hell spend your time on boring, common staff? Fuck it. You don’t want to create “yet another twitter client”. You want to create “best in the world twitter client”. If you can’t, learn and try or die trying. We set the goal to create “the best in the world agile project management softwarefor small and medium companies”. And suddenly everything started to look sooo simple.
What do you need to do something best in the world? More precise, “who” do you need? You need the best people. Most likely you don’t have them yet, but there is a good chance you can grow them. Why not? You don’t need people who hate changes. You don’t need people who hate learning. You need curious, hungry and intelligent people.
If you have best people, you should provide best place to work at. You should provide productive working environment, best equipment, free food, large tables. You should create an atmosphere that encourages creativity, tolerates failures and punish mediocrity. People should feel that they REALLY can learn, try new things, explore ideas and make intelligent decisions THEMSELVES.
You should not track time, you should not estimate effort, you should not set deadlines. You should trust people, set ambitious goals and help them learn. We did that.
Looking back I see the outstanding difference. Today we run internal conferences twice a year and the level of sessions is very good. People may spend 5 hrs each Friday on personal learning and several side projects were started like in-browser RPG, prototyping tool, iPad apps. They read more books and visit more conferences. And if you hear intense discussion about monadin a kitchen, you know the spirit of curiosity is back.
I don’t know whether we succeed as a company in a long term, whether we will create the best in the world agile tool. I believe, oh yes, but I can’t be certain. I personally not the best CEO. What I know is that work is a real fun here again. We are improving every single detail of our company with passion. Not as fast as I often want, but speed follows skills.
So what is more important? I think environment and culture is more important than people. Initially you have a few who learn and push the train forward. If you have the right environment and right hiring, you’ll have a critical mass of curious people eventually. Then there is no difference — this core of active people will do everything and build-in curiosity and learning inside a company DNA. All you need to do as a CEO is set goals, maintain trust, support people and sometimes kick-start activities to keep things going in rare low-mood times.
And please stop motivate people, they hate it.
A List of Books Appeared at Our Office This Month
- Visualizing Data William S. Cleveland
- The Elements of Graphing Data William S. Cleveland
- Data Mining with R: Learning with Case Studies Luis Torgo
- Functional Programming in C#: Classic Programming Techniques for Modern Projects Oliver Sturm
- Programming Collective Intelligence: Building Smart Web 2.0 Applications Toby Segaran
- The Grammar of Graphics (Statistics and Computing) Leland Wilkinson, et al
- Exploratory Data Analysis John W. Tukey
- Gödel, Escher, Bach: An Eternal Golden Braid Douglas R. Hofstadter
- Surely You’re Joking, Mr. Feynman! Richard P. Feynman, et al
- Structure and Interpretation of Computer Programs - 2nd Edition) Harold Abelson, et al
- Scalable Internet Architectures Theo Schlossnagle
- The Complete Manual of Typography James Felici
- A Discipline of Programming Edsger W. Dijkstra
- Lifehacker: The Guide to Working Smarter, Faster, and Better Adam Pash, Gina Trapani
- Literate Programming Donald E. Knuth
- The Passionate Programmer: Creating a Remarkable Career in Software Development Chad Fowler
- Letterletter Gerrit Noordzij
- How Mathematicians Think: Using Ambiguity, Contradiction, and Paradox to Create Mathematics William Byers
- Concurrent Programming on Windows Joe Duffy
- The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses Eric Ries
- The Algorithm Design Manual Steven S. Skiena
- Surpassing Ourselves: An Inquiry Into the Nature and Implications of Expertise Carl Bereiter, Marlene Scardamalia
- The Language of Mathematics: Making the Invisible Visible Keith Devlin
Hamming on Brainstorming
That is cool
——
Question: Is brainstorming a daily process?
Hamming: Once that was a very popular thing, but it seems not to have paid off. For myself I find it desirable to talk to other people; but a session of brainstorming is seldom worthwhile. I do go in to strictly talk to somebody and say, “Look, I think there has to be something here. Here’s what I think I see …” and then begin talking back and forth. But you want to pick capable people. To use another analogy, you know the idea called the `critical mass.’ If you have enough stuff you have critical mass. There is also the idea I used to call `sound absorbers’. When you get too many sound absorbers, you give out an idea and they merely say, “Yes, yes, yes.” What you want to do is get that critical mass in action; “Yes, that reminds me of so and so,” or, “Have you thought about that or this?” When you talk to other people, you want to get rid of those sound absorbers who are nice people but merely say, “Oh yes,” and to find those who will stimulate you right back.
For example, you couldn’t talk to John Pierce without being stimulated very quickly. There were a group of other people I used to talk with. For example there was Ed Gilbert; I used to go down to his office regularly and ask him questions and listen and come back stimulated. I picked my people carefully with whom I did or whom I didn’t brainstorm because the sound absorbers are a curse. They are just nice guys; they fill the whole space and they contribute nothing except they absorb ideas and the new ideas just die away instead of echoing on. Yes, I find it necessary to talk to people. I think people with closed doors fail to do this so they fail to get their ideas sharpened, such as “Did you ever notice something over here?” I never knew anything about it - I can go over and look. Somebody points the way. On my visit here, I have already found several books that I must read when I get home. I talk to people and ask questions when I think they can answer me and give me clues that I do not know about. I go out and look!