Live data from Hacker News

There's no shame in code that is simply "good enough"

blog.phiz.net

41–50 of 68 posts

Re: There's no shame in code that is simply "good enough"

#42
I think what this article is referring to is the importance of retaining perspective of the goals of the project. An experienced programmer might have the ability to program to a very high standard but he should reserve that for times when it is justified—not forgetting that practice or curiosity alone is occasionally adequate justification.

You can go further with this thinking and suggest maybe it isn’t even useful to ask “is this good enough?” and instead ask “is this sensible given xyz?” or ”will this be worth doing?” and forget about what is means to be good enough or assess the quality of your work in absolute terms.

Re: There's no shame in code that is simply "good enough"

#43
I would rather do "forgettable" development. It means that I don't have to worry about it afterward and can forget about it. I don't have to go back to fix tons of bugs. The software should run by itself as much as possible. It takes much less time to develop over the entire life cycle of the software, not just the initial sprint.

One corollary is to use simple and proven technology and libraries.

Another corollary is to have crash-friendly design, i.e. software that can crash in any time and recover at the next restart.

Third is to make software self configured and no configuration. It makes operation and scaling very simple.

Re: There's no shame in code that is simply "good enough"

#44

Please forgive this comment which is totally unrelated to the article, but does anyone else have trouble scrolling this page in Chrome on OSX? I often encounter pages that give Chrome fits, but I can't quite figure out what's causing it.

It must be the comments, they are lazy loaded a la disqus, so you start scrolling and it stutters as you scroll.

Re: There's no shame in code that is simply "good enough"

#45
post #34

I've often noticed how software is similar to hardware in one way. Software and hardware are both destined to hit a limit, in any current configuration, no matter how it's built or put together. Whatever computer we buy, it has a limit. The day will come that the capability we originally had will not be able to power what we need. We decide how much (and how far) to invest into the future to stay on a machine. This c…

Would you mind expanding on the MVC framework and scripts that you use to initialize an entire project? It sounds like that setup would really cut down on the mental overhead need to start a new project, and also cut down on obvious errors (typos, forgetting to add something, etc).

Sure, what language do you like to work in?

Re: There's no shame in code that is simply "good enough"

#46
A college teacher of mine quipped to his students that if the software is inefficient, upgrade the hardware. I have flip-flopped on this mentality over the years. Part of me longs to write code the way Charles Lindbergh knocked together the Spirit of St. Louis.

http://www.charleslindbergh.com/history/sec/

Throughout the design of his aircraft, Charles knew that his life hung on the details. For example, rather than use an all-metal design, much of the exterior was cotton fabric (to reduce weight). His design was pragmatic, practical, and brilliant.

For the most part, software developers do not create systems where the modularity, efficiency, and stability are paramount to the success of a business or the safety of the people who use the programs. Developers often create systems for data entry and data analysis. It is the data that allows a business to take flight, as it were.

You can replace system front-ends in a fortnight. Dirty data, however, can skew results and impart inflexibility in the system. Bad data can ground a business. These days I care about the software, as my mind reminisces about the minimalism and beautiful design imparted upon the Spirit of St. Louis. Yet I care much more about the quality of the database and the cleanliness of data.

Re: There's no shame in code that is simply "good enough"

#47

"Would an engineer design a small, single lane bridge for a rural Northumberland village so that it could support the weight of a thousand double decker buses? No. So why do we, as software engineers try to do exactly this? That day will never come." It comes every time a boss or client says "oh, and now we need it to do XYZ. And you can't rewrite or start over. We need it tomorrow. Build on what you have - reusable…

I can tell you from first-hand experience, though, that if you cannot scale immediately when the time comes, your business can drastically suffer for it.

Re: There's no shame in code that is simply "good enough"

#48
post #45

Earlier quoted context omitted.

Would you mind expanding on the MVC framework and scripts that you use to initialize an entire project? It sounds like that setup would really cut down on the mental overhead need to start a new project, and also cut down on obvious errors (typos, forgetting to add something, etc).

Sure, what language do you like to work in?

Any of these:

  * Python
  * Java (Android)
  * HTML/CSS/JS
If a different language works better, feel free to use that instead. Thanks.

Re: There's no shame in code that is simply "good enough"

#49

"Would an engineer design a small, single lane bridge for a rural Northumberland village so that it could support the weight of a thousand double decker buses? No. So why do we, as software engineers try to do exactly this? That day will never come." It comes every time a boss or client says "oh, and now we need it to do XYZ. And you can't rewrite or start over. We need it tomorrow. Build on what you have - reusable…

I can tell you from first-hand experience, though, that if you cannot scale immediately when the time comes, your business can drastically suffer for it.

I don't disagree, but a few points spring to mind. And in my earlier post, I wasn't really thinking about 'scaling', but new functionality/features.

Occasionally "immediately" really does mean "in the next 5 minutes". Oftentimes it actually means more on the order of days or a couple weeks. "Scaling" can mean different things, and anything beyond "scaling" web requests alone will likely mean a shift in business operations that can't/won't happen overnight either.

In most situations where I've been in where people request something, but the rest of the business unit really isn't ready to handle the change. "We need the new data reports now" but when you make the change you realize the other company who pulls the data to process it is on vacation and won't be back for two weeks, and if you make the change now, then it'll break everything.

Re: There's no shame in code that is simply "good enough"

#50

Earlier quoted context omitted.

Plastic cups and plastic knives don't break like your fine china though. At parties, this is a good thing.

right, but forget fine china: some people would prefer to give their guests real plates, and do so when they have 10 guests, but don't have 100 plates, so when 100 guests show up on their lawn they use disposable plates. The reason doesn't matter. See my comment above about why it's hard to think of code as being a consumable good AT ALL (for any reason). My point wasn't really about tableware, it was about disposabl…

That then points to a reasonable solution: use disposable stuff for rare events but have a good set for everyday use.
Post reply on HN