It’s about time that I updated my crufty old list of recommended books. What books should I have up there?

Ground rules: to keep this conversation on track, everybody gets to vote for ONE book, and one book only. I really want to hear what people think is the SINGLE best book on “painless software management.”

CityDesk, Part Five

Now we’re thanking our lucky stars that we didn’t have a bunch of stupid venture capitalists forcing us to copy all the other content management companies, and we’re grateful that we’re not in Silicon Valley where everyone meets at Bucks and Stanford University seminars and copies each other’s bad ideas, because the one thing we’ve heard from everybody who’s tried CityDesk, consistently, is that CityDesk is the easiest content management software they’ve ever seen, full stop. And we got this ease-of-use because we believed certain things about software.

Working on CityDesk, Part Five.

Alan Cooper: “My advice to Microsoft is to abandon the browser. The browser is a red herring; it’s a dead end. The idea of having batched processing inside a very stupid program that’s controlled remotely is a software architecture that was invented about 25 years ago by IBM, and was abandoned about 20 years ago because it’s a bad architecture. We’ve gone tremendously retrograde by bringing in Web browsers… We have stepped backward in terms of user interface, capability, and the breadth of our thinking about what we could do as a civilization. The browser is a very weak and stupid program because it was written as essentially a master’s thesis inside a university and as an experiment….”

Alan invented Visual Basic, which is the language we used for CityDesk, so it’s no big coincidence that I agree with him so wholeheartedly. And it’s true: from a UI architecture perspective, browsers are CICS + fonts. CICS is an extremely ancient interactive system used with IBM mainframe terminals. Basically, the server sends a text-mode, full-screen form down to the “smart” terminal. The user fills in the form and sends it back to the server. And that’s about all you can do from a UI perspective. The mainframe is happy because it can basically be about as stupid as a web server: queue up all incoming requests and deal with them sequentially. The user suffers because the UI is abysmal and the programmer suffers because you can’t MAKE a good UI no matter how hard you try.


About the author.

In 2000 I co-founded Fog Creek Software, where we created lots of cool things like the FogBugz bug tracker, Trello, and Glitch. I also worked with Jeff Atwood to create Stack Overflow and served as CEO of Stack Overflow from 2010-2019. Today I serve as the chairman of the board for Stack Overflow, Glitch, and HASH.