The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Throwing away designs in the trash can

Yesterday I deleted three partial projects and their leftovers.

Why oh why do we need to live on with badly designed softwares written by other people?

I think the maximum exercise of designing things is throwing away almost as much things as you can create. So, by implementing prototypes, you at least have the chance of throwing them away before they become the real applications. If you use tools that make it harder to create prototypes, undoubtedly you will have a harder time recycling what works and what doesn't work.

Do you wish you could recycle faster? Improve the processes. Never create designs that need one year of work, because maybe they would be much better in a trash can anyway.
Lost in the jungle
Friday, January 27, 2006
We live with them because they work. It is unwise to simply throw away working code because we think we can make it 'better'. If it has problems you should try your best to fix it one section at a time. This way you can keep producing newer versions while improving your product. Otherwise you will spend months or years re-writing it from scratch while users wait, wait and wait some more for a new version.
Steve Wiseman Send private email
Friday, January 27, 2006
Good point.

But one can dream of creating the perfect design one day. :-) And it should pay off...
Lost in the jungle
Friday, January 27, 2006
"The maximum exercise of designing things is throwing away almost as much things as you can create"

If you want to be a great designer, you should throw away 80-95% of everything you do.
Friday, January 27, 2006
But by the time a perfect design is ready, the world has generally moved on

You end-up with a perfect design for yesterday's problem - which then has to be bodged into an imperfect design, to meet today's requirements
Let's play Sudoku
Friday, January 27, 2006
I wouldn't care a bit about outdatedness if I reached the perfect design. And if you had the opportunity to follow  the thread [1] about what changed between 1900-1950 and 1951-2000, you would see how people barely think that things change at all. For instance, even though the mobiles are increasing in importance, they generally are accessing the same old Internet. Upon some reflexion, it's interesting to note that if the design gets oudated, so will designs of other people, even with their imperfections. A perfect design should degrade well into obsolescence and allow the next generation of design prowess to happen.

I have thrown away more than 80% of my designs, and I think it really takes that much to reach what's unreachable otherwise. Think about the many game engines that john Carmack has created since he first started in the game business. What a designer gains is mostly experience, generally. Money is a consequence, and once a design becomes public, people will copy it to no end anyway, forcing future designs to be even more advanced.

For example, one of the things that I saw when I researched a little of Avalon/XAML, was its flow layout. And it's perfect for how I like to program and it fits like a glove in my architecture. I decided to give it a shot in a Web Framework that I'm creating, and it works well enough that I'm considering to keep it this way. How many Web Frameworks do stuff like that? Very few, probably. I'm becoming ready for when Windows Vista arrives. I will have competition for it. :-) But I know something good when I see, and I know Windows Vista will be groundbreaking in many senses, so I probably will use it in the future, even if it doesn't make sense financially. And things move so slowly, that despite the features of Windows Vista, much of its use will be to support the same old Internet, just like the mobiles.

The other day somebody asked what people want in an OS, and I was about to reply when I figured out that Mac OS X is half way to a perfect operating system already. Mac OS X must be one of the main inspirations for the Microsoft people to improve Windows. Design rulez!

Lost in a code jungle
Saturday, January 28, 2006
"I wouldn't care a bit about outdatedness if I reached the perfect design."

A perfectly designed product that has a sum total of $0.00 in sales because it's outdated isn't actually a perfect design, and only the king of all idiots would start a business trying to build a product that's "perfect" but can't actually be sold.

Sunday, January 29, 2006
Maybe you think it's unreachable and it explains your skepticism. The best part of the journey isn't the destiny, but rather the journey itself. I couldn't care less about the end of the journey. Up till now, I love what I do, and I have had lots of experiences, some of which I hated, but they taught me a thing or two which I can now think about when I'm implementing the ideas. Actually, the more problems that we have faced while gaining the necessary experience, the better. Because by fixing a problem, we may create a needed solution for more people.

It's so easy to sell. Hard is to create. Even an outdated design can be sold. What you can't sell is what you don't have. Actually, people sell even what they don't have.

Just to give an example of something that I'm currently working on... Up till a little while ago, I hadn't created code for localization, with handling of numbers, dates, times, etc. But now I have the initial code in place and it's already supported on a Web Framework that I have created. It's fun! I can have localization per user in an easy way. Tomorrow I shall work on the GUI part of it. After that, I'm close to done. I'll probably create some generation of the frontends based on the database schema, because I'm getting lazy as hell, and the more automated the process, the better. I will not have a perfect design very soon, but by trying to perfect it I'm doing what I can. Currently, I'm probably averaging 200 LoC of important code per day. Just the localization code file has 330 including spaces, and I created it today. And the integration with the Web Framework was not so hard, but it made me think about the handling of the dates.

I hope you enjoy your work.
Lost in a code jungle
Monday, January 30, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz