D
Don Y
Guest
On 9/5/2023 10:03 AM, Don Y wrote:
Of course, if you\'ve never had any formal training (\"you\'re
just a coder\"), then you don\'t even realize these hazards exist!
You just pick at your code until it SEEMS to work and then
walk away.
Hence the need for the \"managed environments\" and
languages du jour that try to compensate for the
lack of formal training in schools and businesses.
[I worked with a Fortune *100* company on a 30 man project
where The Boss assigned the software for the product to a
*technician* whose sole qualification was that he
had a CoCo at home! Really? You\'re putting your good
name in the hands of a tinkerer??]
Sadly, most businessmen don\'t understand software or the
process and, rather than admit their ignorance, blunder
onward wondering (later) why everything turns to shite.
Anyone whose had to explain why a \"little change\" in
the product specification requires a major change to
the schedule understands the \"ignorance at the top\".
[I had a manager who wrote BASIC programs to keep track of the
DOG SHOWS that he\'d entered (what is that? just a bunch
of PRINT statements??) and considered himself qualified to
make decisions regarding the software in the products for
which he was responsible. *Anyone* can write code.]
And, engineers turned managers tend to be the worst as they
THINK they understand the current state of the art (because
they used to practice it) without realizing that it\'s a moving
target and if you\'re using last year\'s technology, you are 2 or
3 (!) years out of date!
Would you promote a *technician* to run an electronics DESIGN
department and expect him to be current wrt the latest
generation of components, design and manufacturing practices?
If he *thought* he was, how quickly would you disabuse him of
that belief?
Good problem decomposition goes a long way towards that goal.
If you try to do \"too much\" you quickly overwhelm the developer\'s
ability to manage complexity (7 items in STM?). And, as you can\'t
*see* the entire implementation, there\'s nothing to REMIND you
of some salient issue that might impact your local efforts.
[Hence the value of eschewing globals and the languages that
tolerate/encourage them! This dramatically cuts down the
number of ways X can influence Y.]
Of course, if you\'ve never had any formal training (\"you\'re
just a coder\"), then you don\'t even realize these hazards exist!
You just pick at your code until it SEEMS to work and then
walk away.
Hence the need for the \"managed environments\" and
languages du jour that try to compensate for the
lack of formal training in schools and businesses.
[I worked with a Fortune *100* company on a 30 man project
where The Boss assigned the software for the product to a
*technician* whose sole qualification was that he
had a CoCo at home! Really? You\'re putting your good
name in the hands of a tinkerer??]
Sadly, most businessmen don\'t understand software or the
process and, rather than admit their ignorance, blunder
onward wondering (later) why everything turns to shite.
Anyone whose had to explain why a \"little change\" in
the product specification requires a major change to
the schedule understands the \"ignorance at the top\".
[I had a manager who wrote BASIC programs to keep track of the
DOG SHOWS that he\'d entered (what is that? just a bunch
of PRINT statements??) and considered himself qualified to
make decisions regarding the software in the products for
which he was responsible. *Anyone* can write code.]
And, engineers turned managers tend to be the worst as they
THINK they understand the current state of the art (because
they used to practice it) without realizing that it\'s a moving
target and if you\'re using last year\'s technology, you are 2 or
3 (!) years out of date!
Would you promote a *technician* to run an electronics DESIGN
department and expect him to be current wrt the latest
generation of components, design and manufacturing practices?
If he *thought* he was, how quickly would you disabuse him of
that belief?