Technical Difficulties from on Top of the Mountain
The beauty of the proper design
After decades in the software engineering business, one can't read classic texts without getting mad. Not because they were wrong, but because they were right, and nobody seems to have been listening. This particular part about top level design from Mythical Man Month resonates with me dearly:
The process of step-wise refinement does not mean that one never has to go back, scrap the top level, and start the whole thing again as one encounters some unexpectedly knotty detail. Indeed, that happens often. But it is much easier to see exactly when and why one should throw away a gross design and start over. Many poor systems come from an attempt to salvage a bad basic design and patch it with all kinds of superficial relief.
Many a startup I worked on brought me in do just that kind of superficial patching. At first I would present the need for deeper change to management, once I understood where the design had gone wrong. Later I learned to avoid this waste of time, and occasionally succeeded in making the needed changes before the higher ups caught on.
Labels: engineering, mythical man month
a few ways to make Twitter better
I was asked recently, how would you make Twitter better. My first answer was just to make it work, as it has performance/scaling issues at the moment. But that's not a very satisfying answer to someone who's not an infrastructure mechanic. So, putting my user hat back on now that the week's pressures have flowed past, here's a list of things you might do to make twitter better:
- edit/delete old posts
- secret email gateway address for posting to
- multiple secret addresses so I can revoke one and not another
- random message feed : 1 per day, (or variable frequencies)
- see what friends of friends are saying (perhaps in a much smaller font)
- ability to nudge friends of friends
- get friends to vouch for me to their friends
- group friends
- set limits on updates wanted per friend or per group of friend
- more complex routing rules
- multiple IM accounts, multiple sms #s
- spell checker
- mobile friendly page (lighter on javascript & images)
- search on usernames
- search on user web addresses
- search on message text (who's talking about TIG)
Well, lets start there and see what else I can think of.
Labels: engineering, twitter
Life in the middle of nowhere, remote programming to try and support it, startups, children, and some tinkering when I get a chance.