 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Take a look at, for example,
http://thedailywtf.com/Articles/Topgrade,-SHA1-Encryption.aspx
The website is of course /full/ of this kind of absurdity. (That's kind
of why it exists, after all.)
The question is, why does this kind of nonsense only happen in IT?
Suppose the local government wants to build a bridge across a large
river. One company quotes you £20 million, another quotes £25 millions,
a third quotes you £18 million, and a forth one quotes £4,000. And you
go with the last one?? WTF?! No! Nobody *ever* does this!
And yet, this is exactly equivalent to what happened in the IT story.
Similarly, TDWTF is replete with examples of people hiring some doofus
who obviously knows nothing about computers to build large applications.
That's like hiring an idiot to design a skyscraper for you. And then
finding out that it collapses a tenth of the way through construction,
because it's held up by cheese instead of iron girders. What moron would
hire such a person?
When somebody wants a bridge building, or a house designing, or a road
laying, or whatever, they hire professional people. OK, I'm sure there's
plenty of stories of mix-ups and projects that went way over budget or
time scale. But you don't hear of this nonsense where idiots with no
clue produce an obviously unacceptable product and still get paid.
So if it doesn't happen in structural engineering, why the hell does it
constantly happen in software engineering?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> So if it doesn't happen in structural engineering, why the hell does it
> constantly happen in software engineering?
Let's take a look at the common themes of TDWTF:
1. People who think they are "experts", when they are not.
2. People who convince others that they are "experts", when they are not.
3. People with unrealistic expectations about software development.
The more I think of it, the more it seems that almost everything that is
wrong with defective software development stems from these three
fundamentals.
There are plenty of stories about awful code written by "the previous
employee". This is usually due to the previous employee simply being an
extremely bad programmer. Sometimes the person doesn't realise how bad
they are; they honestly think they're the best. And sometimes they know
damned well that they're terrible, they're just very good at convincing
everybody else that they're brilliant.
There are also lots of stories about perfectly competent programmers
forced to write absurd code because of decrees by management, the lead
programmer, or some other figure. Again, this person thinks they know it
all, and they don't.
Finally, there are the stories about code written under ludicrous
circumstances. Like, you tell your boss a certain feature will take 6
months to develop, and they demand that the code be finished by tomorrow
evening. Or you tell the customer the project will cost X million, and
they demand that you do it for a hundredth of the cost. Or sales promise
that XYZ can be done in a week, when really it should take years to write.
And then there are those poor unfortunate souls who have to maintain
code so ancient it should have been thrown away decades ago. If you take
/any/ body of code and try to modify it too far beyond its original
design goals, the result is bound to end up being a monstrosity, no
matter how good you are. Usually you can attribute this to management's
refusal to allow a rewrite. In other words, management think they know
more about software than you do.
So all of these problems basically come down to the three points above.
Now, as far as I can tell, points 1 and 2 *definitely* occur in all
sorts of industries. I don't think 3 happens so much. (E.g., if somebody
tells you it will take 5 years to build a large bridge, you don't order
them to have it done by Tuesday.)
So why does IT abound with defective products, whereas other industries
don't?
I mean, sure, there are defective electronics on the market. But when
was the last time you bought a microwave oven, got it home and found out
that it doesn't actually contain a microwave generator, it just uses a
fan to waft the warm air from the transformer in the general direction
of your food? This *never* happens! And yet TDWTF regularly catalogues
the woes of people using million-dollar software written in QBASIC or
whatever.
After meditating on this, I've come up with a couple of reasons.
1. If your microwave oven is defective, you damned well take it back and
demand a refund. If your software is defective, you have to click on a
box that said "THIS SOFTWARE IS PROVIDED AS-IS AND COMES WITH ABSOLUTELY
NO WARRANTY EXPRESSED OR IMPLIED."
2. It costs money to manufacture a microwave oven. You need specialist
equipment and expensive materials and so on. On the other hand /anybody/
can write computer software and attempt to sell it.
3. A bridge built by a moron with no knowledge of structural engineering
looks /nothing like/ a bridge built by professionals. (For one thing,
it's probably snapped in half already.) Software written by a complete
moron can sometimes superficially appear just as professional as
software written by experts.
4. If you build a house and it collapses, you can pretty much guarantee
that it was your fault. If you write some software and it doesn't work,
you can complain "It's a conflict with your AV software. You're version
of Windows is too old. It's a known issue; the next paid-for upgrade
fixes it. You're using the software wrong. That's an optional extra
which you haven't purchased..."
Anybody else have any suggestions?
Better yet, how do we /fix/ this nonsense?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/18/2011 8:04, Invisible wrote:
> The question is, why does this kind of nonsense only happen in IT?
Because IT is all virtual. Nobody who doesn't understand what's going on
knows how to evaluate the results.
Someone can look at a bridge across a wide river and say "Heck, no way any
sane person can build it for $4000." But there's no concept there for software.
Plus, people will request changes and expect they're trivial. But sometimes
it's like saying "I know you're half way through building the 50-story
office building, but can we add another floor above the third floor, and
move the elevators to the other side?" Nobody would make a request like
that and expect it to be 1/50th the cost of the building to add another
floor in the middle, but people are happy to do that with software. That's
why my rule of thumb is to try to structure software so the naive intuition
about how much work it'll take roughly matches how much work it'll actually
take.
> So if it doesn't happen in structural engineering, why the hell does it
> constantly happen in software engineering?
Because people understand physics, and they don't understand informatics.
Plus, people doing structural stuff like that aren't doing something
entirely new, but people don't duplicate what's already done in software.
Floor 35 of a 50-story building will probably take as long to build as floor
34 of a 50-story building. But nobody does that stuff in software, because
you'd just make each floor a subroutine.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 18/08/2011 08:51 PM, Darren New wrote:
> On 8/18/2011 8:04, Invisible wrote:
>> The question is, why does this kind of nonsense only happen in IT?
>
> Because IT is all virtual. Nobody who doesn't understand what's going on
> knows how to evaluate the results.
I suppose that's it then.
> Someone can look at a bridge across a wide river and say "Heck, no way
> any sane person can build it for $4000." But there's no concept there
> for software.
So, like I said, a bridge built by idiots looks nothing like a bridge
built by professionals, but software built by idiots sometimes /does/
look like the stuff the professionals build.
>> So if it doesn't happen in structural engineering, why the hell does it
>> constantly happen in software engineering?
>
> Because people understand physics, and they don't understand
> informatics.
I guess that's what it comes down to.
And yet, you can tell the difference between a video shot by a couple of
students and edited in their bedroom, verses one shot as part of a
multi-million dollar film production. And nobody would expect to be able
to produce Hollywood-class results on a £25 budget. That's fairly
virtual. I've even seen videos on YouTube with blockbuster-style digital
effects. And yet, you can still tell it's not the work of a pro.
> Plus, people doing structural stuff like that aren't doing
> something entirely new, but people don't duplicate what's already done
> in software.
I'm not sure that's *completely* true.
From time to time, somebody builds something that's truly
ground-breaking. The world's tallest building, perhaps. Or the longest
bridge. Or whatever.
And while no two pieces of software are /exactly/ alike, lots of them
are extremely damned similar. How many compilers are there? How many
relational database engines? How many Java VM implementations? How many
versions of the MP3 codec? Need I go on?
Still, I take your point.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible <voi### [at] dev null> wrote:
....
> Suppose the local government wants to build a bridge across a large
> river. One company quotes you £20 million, another quotes £25 millions,
> a third quotes you £18 million, and a forth one quotes £4,000. And you
> go with the last one?? WTF?! No! Nobody *ever* does this!
....
> So if it doesn't happen in structural engineering, why the hell does it
> constantly happen in software engineering?
There is a second side to this coin that’s worth talking about... the very real
cases where software companies are ready, willing and eager to charge many, many
times the amount that actually needs to be spent in order to achieve what the
customer really needs. “We build full-scale replicas of the Golden Gate Bridge
and sell them to anyone who will buy them. If we manage to sell one to someone
who only needs to cross a ten foot wide creek, that just shows ‘good business
skills’ and we expect to be congratulated for it.” You can’t really blame
technically unskilled buyers for suspecting that one or more software vendors
are trying to bamboozle them into spending large multiples of the actual
necessary amount. IT HAPPENS ALL THE TIME.
And for those who would reply:
“Software industry management consists largely of honest, knowledgeable
individuals who only want to be paid a fair price for the products they work
hard to produce. There are just a few bad apples out there unjustly tarnishing
our reputation”,
I would very much appreciate it if you would supply me with the name and
coordinates (preferably GCS) of the planet on which you are living.
The REAL problem, as I see it, is the pig-headed unwillingness of so many
corporate executives to employ people who actually KNOW whether $4,000.00
software or $4,000,000.00 software is needed and allow them to make the purchase
decisions.
I do know even more about how to solve this problem permanently, but I would
consider providing this information a “professional service”. A full report
detailing this solution could be YOURS in only six months for a mere
$285,000.00.*
Best Regards,
Mike C.
Chief Supervising Consultant
Elder Pontification Group
(D.B.A. Atlantian Snake Oil Distributors)
*Plus “expenses”
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 19/08/2011 02:21 PM, Mike the Elder wrote:
> Invisible<voi### [at] dev null> wrote:
> ....
>> Suppose the local government wants to build a bridge across a large
>> river. One company quotes you £20 million, another quotes £25 millions,
>> a third quotes you £18 million, and a forth one quotes £4,000. And you
>> go with the last one?? WTF?! No! Nobody *ever* does this!
>
> There is a second side to this coin that’s worth talking about... the very real
> cases where software companies are ready, willing and eager to charge many, many
> times the amount that actually needs to be spent in order to achieve what the
> customer really needs.
Yeah, there is that.
Then again, there are people who want to sell you a watch for £8,000. Or
a pen for £800. Or a fancy suit for £5,000. Or a single plate for £800.
Or a car for £800,000.
Is an £800,000 car actually better than an £80,000 car? Is that better
than an £8,000 car? I don't actually know.
Is an £8,000 watch better than an £80 watch? I doubt it.
(I still remember going into a suit shop. They have multiple racks of
identical black suits. I pick up one that looks roughly my size. "Ah
yes, an excellent choice, sir" the man says. I wonder, is there a suit I
could have picked up that was /not/ an excellent choice?)
I have actually seen a plate on sale for £800. That's PER PLATE. The
plate was plain white with a yellow circle in the centre. It was in a
Royal Doulton shop. ASDA can probably sell you a nearly identical one
for £2 per plate.
> The REAL problem, as I see it, is the pig-headed unwillingness of so many
> corporate executives to employ people who actually KNOW whether $4,000.00
> software or $4,000,000.00 software is needed and allow them to make the purchase
> decisions.
...and again we're back to "people who think they are experts but aren't"...
> I do know even more about how to solve this problem permanently, but I would
> consider providing this information a “professional service”. A full report
> detailing this solution could be YOURS in only six months for a mere
> $285,000.00.*
>
> Best Regards,
> Mike C.
> Chief Supervising Consultant
> Elder Pontification Group
> (D.B.A. Atlantian Snake Oil Distributors)
>
> *Plus “expenses”
Tempting, but...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible <voi### [at] dev null> wrote:
> Then again, there are people who want to sell you a watch for £8,000. Or
> a pen for £800. Or a fancy suit for £5,000. Or a single plate for £800.
> Or a car for £800,000.
>
> Is an £800,000 car actually better than an £80,000 car? Is that better
> than an £8,000 car? I don't actually know.
It all depends on what you expect of the car/watch/whatever.
If you expect the car to take you from B to B with reasonable comfort and speed,
than you'll probably be OK with a 10.000€ car.
A 800.000€ car wiill do the same, but you'll get something not everybody can
afford, that's purely for the showoffs ;o)
It will do so with a lot more comfort, speed and other amenities.
Ask yourself why you bought your car and not something for half the price,
assuming equal reliability and running cost. It's most likely comforts like
electric windows, radio, power steering, air conditioning.
The 800.000€ car just takes it to the extreme.
>
> Is an £8,000 watch better than an £80 watch? I doubt it.
>
A 20€ watch is probably more accurate than the 8.000€ watch, because it uses a
quartz. Change the battery every few years and you're good to go.
But a handcraftet 8.000€ watch will most likely outlast it a few times. It'll
probably still run perfectly in 100 or 200 years. It's also a question of
presentation. You wouldn't expect the CEO of a multi billion dollar enterprise
to go to a buissness meeting wearing a cheap plastic watch.
I recently got myself a 250€ watch.
Why? Comfort again.
It's one with solar and DCF and date and weekday display and timezones and so
on.
So I'll never have to worry if it's showing the correct time or runs out of
battery.
I push a button and it'll tell me if it synced with the atomic clock last night.
Traveling outside my timezone? No problem. Change the timezone and the watch
automatically sets the right time and DCF Transmitter.
What it all comes down to:
How much are you willing to spend for some comfort, quality and uniqueness.
Regards
Aydan
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 19.08.2011 15:21, schrieb Mike the Elder:
> Invisible<voi### [at] dev null> wrote:
> ....
>> Suppose the local government wants to build a bridge across a large
>> river. One company quotes you £20 million, another quotes £25 millions,
>> a third quotes you £18 million, and a forth one quotes £4,000. And you
>> go with the last one?? WTF?! No! Nobody *ever* does this!
> ....
>> So if it doesn't happen in structural engineering, why the hell does it
>> constantly happen in software engineering?
>
> There is a second side to this coin that’s worth talking about... the very real
> cases where software companies are ready, willing and eager to charge many, many
> times the amount that actually needs to be spent in order to achieve what the
> customer really needs. “We build full-scale replicas of the Golden Gate Bridge
> and sell them to anyone who will buy them. If we manage to sell one to someone
> who only needs to cross a ten foot wide creek, that just shows ‘good business
> skills’ and we expect to be congratulated for it.” You can’t really blame
> technically unskilled buyers for suspecting that one or more software vendors
> are trying to bamboozle them into spending large multiples of the actual
> necessary amount. IT HAPPENS ALL THE TIME.
Another problem is that big companies understand why their
custom-tailored software must necessarily eat more IT funds than a copy
of MS Office, but small companies are often surprised when they find it
costs a lot more to introduce some off-the-shelf business software into
their business processes.
> And for those who would reply:
> “Software industry management consists largely of honest, knowledgeable
> individuals who only want to be paid a fair price for the products they work
> hard to produce. There are just a few bad apples out there unjustly tarnishing
> our reputation”,
> I would very much appreciate it if you would supply me with the name and
> coordinates (preferably GCS) of the planet on which you are living.
Software industry managers are managers after all, so what do people
expect :-)
> The REAL problem, as I see it, is the pig-headed unwillingness of so many
> corporate executives to employ people who actually KNOW whether $4,000.00
> software or $4,000,000.00 software is needed and allow them to make the purchase
> decisions.
>
> I do know even more about how to solve this problem permanently, but I would
> consider providing this information a “professional service”. A full report
> detailing this solution could be YOURS in only six months for a mere
> $285,000.00.*
Worse yet, IT consulting companies typically try to not only sell
consultancy, but also the resulting project; so they might for instance
recommend a solution based on project ABC rather than XYZ just because
they recently had some ABC project exploding in their face and now try
to get half a dozen idle ABC experts billable again.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 19/08/2011 03:32 PM, Aydan wrote:
> Invisible<voi### [at] dev null> wrote:
>> Then again, there are people who want to sell you a watch for £8,000. Or
>> a pen for £800. Or a fancy suit for £5,000. Or a single plate for £800.
>> Or a car for £800,000.
>>
>> Is an £800,000 car actually better than an £80,000 car? Is that better
>> than an £8,000 car? I don't actually know.
>
> It all depends on what you expect of the car/watch/whatever.
Perhaps.
In same cases, a more expensive item actually does something more. In
other cases, it's more expensive simply to be more expensive.
Consider, for example, the HDMI cables that cost £200 per meter. That's
more expensive than gold chain. There is absolutely no reason to ever
buy such a product. While there may well be a difference between a £1
lead and a £10 lead, there is no reason in hell to buy a £200/m lead.
That's just preying on customer stupidity.
By contrast, although I can buy a 1200DPI laser printer for under £100,
a £500 laser printer might have similar specs, but it will last a hell
of a lot longer.
> Ask yourself why you bought your car and not something for half the price,
> assuming equal reliability and running cost.
That would be "because of reliability and running costs". :-P
I have a very cheap car. Anything cheaper would be likely to break even
more frequently than what I actually bought.
> The 800.000€ car just takes it to the extreme.
Now, see, I've heard that some of the most expensive cars on the market
are actually pathologically unreliable. And also have really, *really*
bad customer service. Which isn't what you'd expect...
>> Is an £8,000 watch better than an £80 watch? I doubt it.
>>
> A 20€ watch is probably more accurate than the 8.000€ watch, because it uses a
> quartz. Change the battery every few years and you're good to go.
> But a handcraftet 8.000€ watch will most likely outlast it a few times.
I've heard people complaining because they bought a £2,000 pen and it
kept breaking. Constantly.
> It's also a question of
> presentation. You wouldn't expect the CEO of a multi billion dollar enterprise
> to go to a buissness meeting wearing a cheap plastic watch.
Plastic, no. You'd expect it to look good. But a £20 watch looks good.
I've seen £2,000 watches in a shop window; they look exactly the same as
the £20 watches. Nobody would be able to tell the difference, except for
the brand name.
> I recently got myself a 250€ watch. Why? Comfort again.
I'm the sort of person who doesn't mind paying more money for something
IF IT'S ACTUALLY BETTER. I violently object to paying more money for the
same thing.
> What it all comes down to:
> How much are you willing to spend for some comfort, quality and uniqueness.
Agreed.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/19/2011 1:34, Invisible wrote:
> From time to time, somebody builds something that's truly ground-breaking.
> The world's tallest building, perhaps. Or the longest bridge. Or whatever.
Even the world's tallest building is essentially the same story, using the
same structural characteristics, repeated 200 times.
> And while no two pieces of software are /exactly/ alike, lots of them are
> extremely damned similar.
Sadly so. But it's an ongoing task to factor that similarity out.
> How many compilers are there?
Sure. But how many now all compile down to CIL or JVM, eliminating half of
the work of implementing the compiler by clever reuse of code?
> How many relational database engines?
Again, eliminating the duplication of that effort in the file I/O of lots of
programs.
Programmers don't always succeed in not reusing code. But they strive to do so.
Also, you're looking at it wrong again. How many times does the Microsoft C#
compiler get reused? How many times does the plumbing from the 23rd floor of
the Empire state building get reused?
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 19.08.2011 16:02, schrieb Invisible:
> Then again, there are people who want to sell you a watch for £8,000. Or
> a pen for £800. Or a fancy suit for £5,000. Or a single plate for £800.
> Or a car for £800,000.
>
> Is an £800,000 car actually better than an £80,000 car? Is that better
> than an £8,000 car? I don't actually know.
>
> Is an £8,000 watch better than an £80 watch? I doubt it.
Well, I expect it is, generally speaking.
Question is actually, does the added quality also give /me/ enough added
value to warrant the price?
For some people the mere expensiveness might be worth it. ("Look, he's
got a maddeningly expensive watch; he must be good with money, so let's
heed his financial advice.") I don't think that's me though.
> (I still remember going into a suit shop. They have multiple racks of
> identical black suits. I pick up one that looks roughly my size. "Ah
> yes, an excellent choice, sir" the man says. I wonder, is there a suit I
> could have picked up that was /not/ an excellent choice?)
"No, sir. All our suits are expensive enough that we make money with any
one; as long as you choose to buy, that's an excellent choice."
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/19/2011 7:02, Invisible wrote:
> Then again, there are people who want to sell you a watch for £8,0
00.
That's not a watch. That's jewelry that happens to have a clock built in.
And yes, the people selling it tell you this. "The average kitchen has ei
ght
clocks in it. We sell jewelry and home decor."
> I wonder, is there a suit I could have
> picked up that was /not/ an excellent choice?)
Probably not in a suit store. In wal-mart? Most certainly.
>> The REAL problem, as I see it, is the pig-headed unwillingness of so m
any
>> corporate executives to employ people who actually KNOW whether $4,000
.00
>> software or $4,000,000.00 software is needed and allow them to make th
e
>> purchase
>> decisions.
Yes. Amazing how many body shops are out there for web stuff compared to
(say) automobile design. I guess if your business isn't primarily done ov
er
the web, you hire a web designer, just like you'd hire a plumber to fix t
he
pipes in your building. But if your business is internet-based, it's sill
y
not to have that expertise working in your own best interest.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 19.08.2011 17:19, schrieb Darren New:
> On 8/19/2011 1:34, Invisible wrote:
>> From time to time, somebody builds something that's truly
>> ground-breaking.
>> The world's tallest building, perhaps. Or the longest bridge. Or
>> whatever.
>
> Even the world's tallest building is essentially the same story, using
> the same structural characteristics, repeated 200 times.
Most bloody likely not.
The lower floors need to be as strong as possible so they can carry the
weight of the whole tower. The upper floors need to be as light as
possible so they can all be carried by the lower floors.
But yes, it might be the same basic design with some parameters varying.
Plus a few special floors in between (for instance a shopping mall
halfway up the tower).
Then again, modifying the design for a different number of floors takes
more effort than just adding more floors at the bottom of the stack.
Wind speed, resonances and other dynamic stuff has to be taken into
account on a whole-building basis.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 19/08/2011 04:19 PM, Darren New wrote:
> On 8/19/2011 1:34, Invisible wrote:
>> From time to time, somebody builds something that's truly
>> ground-breaking.
>> The world's tallest building, perhaps. Or the longest bridge. Or
>> whatever.
>
> Even the world's tallest building is essentially the same story, using
> the same structural characteristics, repeated 200 times.
I think you underestimate the challenges. It's not like you can take a
200 story building and just add 200 more stories. It would collapse. You
have to come up with clever solutions for weight distribution,
withstanding high winds, earthquakes, sunamis, make sure that water and
power distribution works right, etc.
The first buildings with complex curves were a major feat of
engineering. Even today, people design buildings which appear to defy
gravity (but obviously don't).
>> And while no two pieces of software are /exactly/ alike, lots of them are
>> extremely damned similar.
>
> Sadly so. But it's an ongoing task to factor that similarity out.
Ongoing and remarkably unsuccessful, oddly enough.
>> How many compilers are there?
>
> Sure. But how many now all compile down to CIL or JVM, eliminating half
> of the work of implementing the compiler by clever reuse of code?
Yes, because tokenising and parsing the input doesn't count as "writing
a program", does it...
> Programmers don't always succeed in not reusing code. But they strive to
> do so.
LOL.
> Also, you're looking at it wrong again. How many times does the
> Microsoft C# compiler get reused? How many times does the plumbing from
> the 23rd floor of the Empire state building get reused?
A better analogy might be "How many times does the Microsoft C# compiler
get used? How many times does a JCB digger get used?"
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/19/2011 8:33, clipka wrote:
> Most bloody likely not.
*Essentially*. Of course all the floors aren't built quite the same, but
they're all variations on the theme. They're each a mostly a subroutine
invoked with varying parameters, rather than being designed from scratch
each time.
Or, put it another way: You build a housing development with 400 homes. How
many of those do you build from scratch, vs how many do you effortlessly
copy after you've built the first one?
There's an *essential* complexity to software that you don't get from
hardware, because there's no such thing as a subroutine outside of the world
of information.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 19.08.2011 17:45, schrieb Darren New:
> On 8/19/2011 8:33, clipka wrote:
>> Most bloody likely not.
>
> *Essentially*. Of course all the floors aren't built quite the same, but
> they're all variations on the theme. They're each a mostly a subroutine
> invoked with varying parameters, rather than being designed from scratch
> each time.
>
> Or, put it another way: You build a housing development with 400 homes.
> How many of those do you build from scratch, vs how many do you
> effortlessly copy after you've built the first one?
>
> There's an *essential* complexity to software that you don't get from
> hardware, because there's no such thing as a subroutine outside of the
> world of information.
It makes more sense to think of a piece of Software as a mold, or a
blueprint.
In that sense, you can compare subroutines to parts (or, more precisely,
part types); for instance, a mechanical device optimized for
maintainability would use just one or two types of screws everywhere.
And the crew aboard spacecraft Apollo 13 would have had one problem less
if the Command Module and Lunar Module would have used the same
"subroutine" (i.e. same design) for the CO2 filters, but for some reason
the "functionality" was "implemented" twice, using different "interfaces".
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/19/2011 9:40, clipka wrote:
> It makes more sense to think of a piece of Software as a mold, or a blueprint.
Exactly. Software is 100% design. Once you have determined *exactly* what
you want to build, you're already done. :-)
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 19.08.2011 19:22, schrieb Darren New:
> On 8/19/2011 9:40, clipka wrote:
>> It makes more sense to think of a piece of Software as a mold, or a
>> blueprint.
>
> Exactly. Software is 100% design. Once you have determined *exactly*
> what you want to build, you're already done. :-)
Well, not precisely - you still have to translate the design of what you
want to build into a computer-palatable language. And it so happens that
often you find out during this phase that you weren't clear about what
*exactly* you wanted to build.
That aside, IT as a whole is about much more than just design; once you
have the software, you need to test it, install it, teach people to use
it, and other less exciting stuff. Sometimes business people forget
about these things. It's like they pay an architect to design a new
building for them, but forget the budget to actually build that thing
(let alone to move from the old building to the new one).
But hey, they also seem to forget about all this stuff when it comes to
company mergers. Yeah, sure, in the long run you may indeed get "synergy
effects", but until then you're in for a lot of organizational overhead
minimizing your productivity. And once you're breaking even you're
possibly doing the next merger already.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/19/2011 15:05, clipka wrote:
> Well, not precisely - you still have to translate the design of what you
> want to build into a computer-palatable language. And it so happens that
> often you find out during this phase that you weren't clear about what
> *exactly* you wanted to build.
That's part of being sufficiently exact. If you're sufficiently exact, the
translation step can be automated. (For example, we call that "a compiler". ;-)
> That aside, IT as a whole is about much more than just design; once you have
> the software, you need to test it, install it, teach people to use it, and
> other less exciting stuff.
There is that. Altho I'd classify testing it (in terms of "does this meet
the spec" and not in terms of "do the users like what we spec'ed enough to
pay us") as part of the design. It's ensuring the design is right.
> doing the next merger already.
Heh.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 20/08/2011 01:31 AM, Darren New wrote:
> On 8/19/2011 15:05, clipka wrote:
>> Well, not precisely - you still have to translate the design of what you
>> want to build into a computer-palatable language. And it so happens that
>> often you find out during this phase that you weren't clear about what
>> *exactly* you wanted to build.
>
> That's part of being sufficiently exact. If you're sufficiently exact,
> the translation step can be automated. (For example, we call that "a
> compiler". ;-)
Lest anyone doubt this, at uni we learned about something called
Computer Aided Software Engineering ("CASE"). We used a tool called
Rational Rose. You draw various class diagrams, flowcharts, etc., and
then press a button, and it spits out C++ source code. If your diagrams
are detailed enough, the generated code actually compiles and runs, and
*is* "the finished system".
All without you ever writing a single line of code yourself. Or even
knowing *how* to program C++.
So yes, if your design is detailed enough, the translation is (or can be
made) automatic.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Am 20.08.2011 11:49, schrieb Orchid XP v8:
> Lest anyone doubt this, at uni we learned about something called
> Computer Aided Software Engineering ("CASE"). We used a tool called
> Rational Rose. You draw various class diagrams, flowcharts, etc., and
> then press a button, and it spits out C++ source code. If your diagrams
> are detailed enough, the generated code actually compiles and runs, and
> *is* "the finished system".
Similarly, Matlab/Simulink allows you to write your program by visually
"wiring" kind of "mathematic gates" (arithmetic ops, logical ops,
integrators, differentiators, level triggers, signal generators, signal
filters and what-have-you) and then have that translated to C and
ultimately machine code. Seen that recently hands-on in production use,
for the electronic controller of a car transmission.
> All without you ever writing a single line of code yourself. Or even
> knowing *how* to program C++.
>
> So yes, if your design is detailed enough, the translation is (or can be
> made) automatic.
... provided you trust the code generator.
Some portions of the car transmission software I mentioned were actually
still written directly in C; those were responsible for fail-safe
functions, so that even a bugs in the code generator couldn't possibly
cause an accident. (I'm not sure how they verified the C compilation
process though.)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 20/08/2011 11:24 AM, clipka wrote:
> Am 20.08.2011 11:49, schrieb Orchid XP v8:
>> Lest anyone doubt this, at uni we learned about something called
>> Computer Aided Software Engineering ("CASE"). We used a tool called
>> Rational Rose. You draw various class diagrams, flowcharts, etc., and
>> then press a button, and it spits out C++ source code. If your diagrams
>> are detailed enough, the generated code actually compiles and runs, and
>> *is* "the finished system".
>
> Similarly, Matlab/Simulink allows you to write your program by visually
> "wiring" kind of "mathematic gates" (arithmetic ops, logical ops,
> integrators, differentiators, level triggers, signal generators, signal
> filters and what-have-you) and then have that translated to C and
> ultimately machine code. Seen that recently hands-on in production use,
> for the electronic controller of a car transmission.
Reaktor does the some thing with DSP. I can pick up a sawtooth
oscilator, a 2-poly LP filter, an ADSR envolope generator, hook them
together, and I've got a synthesizer. Not impressed? How about I hook
together a couple of 1-sample delay units, some (+) and (*) nodes, and
implement my 2-pole filter from first principles?
Other "module synthesizers" let you connect pre-built filters and so
forth together. Reaktor lets you design new ones from scratch, down to
the level of individual DSP algorithms. (On the other hand, it stupidly
lacks any kind of true subroutine capability, nor any looping constructs...)
>> All without you ever writing a single line of code yourself. Or even
>> knowing *how* to program C++.
>>
>> So yes, if your design is detailed enough, the translation is (or can be
>> made) automatic.
>
> ... provided you trust the code generator.
And the compiler. And the processor implementation. And, hell, the
entire hardware system you're going to run it on. And, if you want to be
picky about it, assuming your trust mankind's understandig of the laws
of physics...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 8/20/2011 3:24, clipka wrote:
> Similarly, Matlab/Simulink allows you to write your program by visually
> "wiring" kind of "mathematic gates"
Or VHDL, that lets you write the math for your hardware and have it generate
the hardware for you.
> accident. (I'm not sure how they verified the C compilation process though.)
At JPL, they disassemble the machine code and make sure it does what they
think the C said it does.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
On 19-8-2011 15:21, Mike the Elder wrote:
> The REAL problem, as I see it, is the pig-headed unwillingness of so many
> corporate executives to employ people who actually KNOW whether $4,000.00
> software or $4,000,000.00 software is needed and allow them to make the purchase
> decisions.
This is mainly based on the idea that management is a skill in itself. A
manager of a workshop does not need to know anything about designing or
making things. Likewise, a manager of a hospital does not need to know
anything about medicine or patient care. Knowing management skills is
enough. Actually knowing what the people are doing will make it
impossible to judge objectively who is necessary and who can be fired.
Therefore the suggestion that you should be able to judge an IT contract
is an insult to management. Worse, people might use that to question the
level of salaries paid.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |