|
yup. Works on my computer is the sort of problem that generates the most profanity while trying to troubleshoot because it generally means I can't see what's happening when it fails in a debugger.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
RyanDev wrote: Unfortunately, I have known developers that take that attitude and think "works on my computer" is a valid answer.
Not only developers...
I had once a project (budget almost in 7 0s), a 6 axle robot involved to handle the product... at certain point of programing and teaching the robot:
- Me: That is not reachable. I can't get the product over there
- Chief mechanical constructor (cmc): Yes it is, I have simulated everything and it works on my computer
- Me: I don't think it is possible, please tell me how to do the motion to get in there because I can't see it
more than 5 hours later
- CMC: It is not possible, the simulation was fine, someone has made a huge mistake while building this up
- Me: Probably, can you please show me your simulation?
Getting to the office and some "!§%$&"§(%!(/ later, he starts to show me the simulations in his CAD software.
- CMC: See? The robot has plenty space to get into the area
- Me: Ehhmmmm... Not sure if I am missing anything but... where is the gripper (780 mm long x 110 mm wide)?
He had simulated everything using only the basic shape of the robot, no tools at all.
2 Weeks work doing mechanical adjustments / moving pieces all over the line.
Next 6 months he dropped the eyes down everytime I came in the same room.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Let's start with this statement:
I am really impressed on how stable the code is and how good it [the app] looks.
Followed by:
We are hedging our bets that we have smart young guys who want to own it [their code]. Both did not want to own [your] code base. That was the major problem. I see your code and see the pub/sub pattern. I see some other things as well and I don’t believe it is the best approach for… ability for others to maintain...
OK, so my architecture results in a really stable app, but the new kiddies don't want to learn it (none of them know C#), and the CTO thinks it's not the best approach.
W T F.
Over the years, I've developed both architectural concepts and actual implementation that is the bread and butter of how I code. However, as this Insider News[^] got me to realize, certainly the CTO doesn't go beyond the basics, and certainly the kiddies (having been one myself once) have no clue as to architecture concepts like services, modules, publisher/subscriber patterns, semantic types, type-based programming, etc.
The ironic thing is, most of these concepts I learned 30 years ago in the days of DOS, where we wrote an application using a publisher/subscriber pattern (C++) to handle UI and hardware events and log the stuff. Two things resulted: 1) we discovered QA was often in error when describing what they did (the logs showed otherwise), and 2) we created the most stable app because we engineered it. Those lessons have lived with me since then.
Software engineering seems dead, and one of the axes that has dismembered it are programming languages like Ruby, Python, Javascript and the whole duck-typed paradigm.
And as you probably know, from my other rants, what are they writing it in? Python, with F# (of all things) for the pieces that MUST use .NET.
Marc
|
|
|
|
|
What that reads to me is that they've hired two young "rock stars" and now think they aren't quite rock star enough so they're prepared to dumb it down a bit. It's like organising an open air rock concert with initial interest from The Who, AC/DC, Iron Maiden and Bruce Springsteen and then signing Tiffany, The Proclaimers and Chesney Hawkes as the headliners instead.
This space for rent
|
|
|
|
|
Sounds typical of the 'new breed' of programmers who want the $ without wanting to put the effort in. I wouldn't want to taint everyone with the same brush but I am seeing more of it.
Can you tell them to F# off?
|
|
|
|
|
I know what you mean. I too have been down that road.
A colleague of mine (Bruce) had a situation where he designed an entire system to handle maintenance data for the US Army. As the development work started, the company hired a "kiddie" that thought he new everything and convinced the manager to override Bruce's design and approach for a newer approach he read from a book and the latest frameworks. Bruce was pulled off the project and eventually left the company, because he fought the suggested approach and the new guy took over. One year later, the project was a disaster. Pages of code were written, but nothing worked well. It was bloated, slow and unstable. The new guy left the company leaving a huge pile of junk code and the project failed miserably.
Moral of the story? Just because it's the latest and hot-off-the-press and the "kiddies" love it, doesn't mean that it will work.
No one listens to us old folk any longer...
modified 19-Nov-21 21:01pm.
|
|
|
|
|
Marc Clifton wrote: but the new kiddies don't want to learn it (none of them know C#)
Thank god i never had that attitude!
Everything i know about C# i learned my self, well yes i got the basics from java (no SCRIPT) but i don't get. If i just would have the chance to get someone with experience on my project and assist me on improving my architecture or other stuff i would be the happyiest person on earth. Sadly im always standing alone getting the "new kiddies" as assistant and yes i get your problem.
CTO's need to get in touch with stuff, if they don't understand the base how could they see you performed well. Nonetheless if you can, keep it as you're used to
Rules for the FOSW ![ ^]
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
}
|
|
|
|
|
HobbyProggy wrote: If i just would have the chance to get someone with experience on my project and assist me on improving my architecture or other stuff i would be the happyiest person on earth.
You would think. But these kiddies, with their Python and Haskell experience, heavily *nix, come with know-it-all attitudes.
Marc
|
|
|
|
|
Marc Clifton wrote: these kiddies.... come with know-it-all attitudes And have probably spent more time bending the CTO's ear in the last few months than you have in the last few years.
Keep an eye on the commits, and make sure you're there to fix it, when it all goes pear-shaped -- and also make sure (diplomatically) that everyone knows why you had to fix it.
I'd say that affable, parental, mentor-ish derision sounds about the right way to play it ("Yes, they're good kids, and they did try...").
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
If they have real Haskell experience, and could put together a complex program that makes it past Haskell's pedantically strong static typing and solves real business problems, they might come close to justifying a know-it-all attitude.
The catch is that when a lot of people claim Haskell experience, what they really mean is that they wrote quicksort in Haskell, tweeted about it, and then went and wrote an awful blog post about monads.
|
|
|
|
|
I have been trying to learn Haskell for the last two years. I can confidently say I haven't got a clue.
This space for rent
|
|
|
|
|
It's a tough nut to crack.
It can be worth it, though. As with most languages that are very different from those in the mainstream, learning it (or even attempting to) can improve your approach to programming no matter what language you're writing it.
If you're still interested in trying, have you looked at the new Haskell Book?. It is very well written, and a lot of people have found that it made Haskell understandable where lots of other books and blogs had failed. It's a tad expensive, but it's a self published book by two authors who worked very hard to produce good learning material.
I know the idea of paying $59 for an eBook turns a lot of people off, but I bought a copy. Aside from the fact that it's a great book on a topic I wanted to learn more deeply, I also like to reward independent authors who go out on a limb to create resources like this not knowing if they'll sell enough to justify the time investment.
|
|
|
|
|
Cool. I will check it out. I have some experience with the language now but it has a lot of subtleties that will take time to master.
This space for rent
|
|
|
|
|
But i guess, at least its about the attitude you have, if you show them where they went wrong, which will definately happen, they'll get their eyes opened and might change their mind
Rules for the FOSW ![ ^]
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
}
|
|
|
|
|
HobbyProggy wrote: But i guess, at least its about the attitude you have, if you show them where they went wrong, which will definately happen, they'll get their eyes opened and might change their mind
Maybe. If presented correctly. More likely, IME, is that their know-it-all attitude will lead them to believe he's criticizing, rather than teaching, and they'll resent it.
|
|
|
|
|
Marc Clifton wrote: Software engineering seems dead It is - even on CP there are plenty of people proposing that Software Engineering does not even exist.
It could be true - it exist only Engineering and software is a part of it. That I may understand.
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++* Weapons extension: ma- k++ F+2 X
If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver
When I was six, there were no ones and zeroes - only zeroes. And not all of them worked. -- Ravi Bhavnani
|
|
|
|
|
Hi Marc,
Empathy is.
It's one thing (one of the kinks of homo sap nature ?) for a prophet to be without honor in his own country, but, I think that those who perceive the prophet as a horror, rather than a beacon, deserve to have their eyes put out, or being water-boarded until they come to their senses.
Unle$$ you gotta have the moolah ... time to walk with head held high ... away ? Or, lead a palace revolt after first putting the manager's head on a spike ?
best, Bill
«There is a spectrum, from "clearly desirable behaviour," to "possibly dodgy behavior that still makes some sense," to "clearly undesirable behavior." We try to make the latter into warnings or, better, errors. But stuff that is in the middle category you don’t want to restrict unless there is a clear way to work around it.» Eric Lippert, May 14, 2008
modified 19-Jul-16 9:29am.
|
|
|
|
|
BillWoodruff wrote: Unle$$ you gotta have the moolah ... time to walk with head held high ... away ?
Hmm, I can't do private email, otherwise I would respond privately.
Marc
|
|
|
|
|
As a consultant, all I here is one big smoking opportunity. I'm amazed the CTO is a CTO and does not understand risk.
For most of the engineering I see, and I use that term loosely, we're getting a rash of script kiddies. We also have UI people who want to do embedded systems with JavaScript. Hmmm.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
When I think of embedded systems coded in JavaScript, this comes to mind.
if (Object.DividedByZero == true) { Universe.Implode(); }
Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016
|
|
|
|
|
that's funny
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Stable code isnt smart enough for cloud services and scrum evolving software which is hangling from one bug to the next fix.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
Sounds fairly typical to me. Most CTO's are up there having become remote from their origins so have to feign knowledge of the code-verse. I try to avoid working with know-it-all script kiddies - they just f*** everything up.
|
|
|
|
|
Marc Clifton wrote: Software engineering seems dead, Sadly I often feel that way.
/ravi
|
|
|
|
|
I've also noticed the phenomenon you're noting, I don't believe dynamic typing the cause of it. Python, Ruby, Tcl, and Perl are more than 20 years old, and Smalltalk and various Lisps were very dynamic long before that, so the wide availability of the features they offer isn't new.
In addition, most of the architectural patterns you described work just as well in Ruby, Python, or JavaScript as they do in C# or Java. And there is certainly a ton of poorly architected, badly designed C# and Java out there.
Strong, static typing absolutely helps when it comes to building larger systems. But it won't force good engineering decisions to happen in an environment that doesn't value engineering discipline. In my experience, at least, engineering discipline and good design have been entirely orthogonal to the choice of language. I've seen well designed, well written Python applications that served a ton of users without errors or downtime, and I've worked with buggy C# applications that crashed if you looked at them the wrong way.
All of that aside, I do agree with your premise that good software engineering is becoming more rare. I believe the cause, though, is that many organizations have found that getting software in front of users as quickly as possible, even if it is buggy, is more profitable than designing it well from the start. This is particularly true for startups, but it happens often enough in large companies as well.
On the flip side of that, if you look at some more mature companies that have to serve lots of users at scale, you'll find that they use a mix of dynamically and statically typed languages, and their engineering discipline and principles are strong regardless of what language they're writing in. That kind of discipline has to be valued by leadership, and if it isn't present at the CTO level, it's unlikely it will be present at all.
For the record - I do most of my personal development these days in C#, F# and Haskell, so I'm a big fan of using a good type system. I maintain some Ruby and Python too, though, and I don't think I turn into an undisciplined maniac when I start writing code in those languages.
Edit
One more thought: there's a lot more software in the world now than there was 10+ years ago. Consequently, we need a lot more developers to create it. Perhaps the rapid expansion of the industry has made it difficult to maintain the level of engineering rigor, and also perhaps reduced the average developer ability/talent level?
Also, in disagreeing with your point on dynamic typing, I'm not trying to say that you're wrong; you seem like a thoughtful developer, so I'm sure your opinion is based on personal experience. I just wanted to offer another perspective based on experience.
modified 19-Jul-16 14:12pm.
|
|
|
|
|