|
when 1/3 of the programmers have no fun in coding
|
|
|
|
|
My project realized I was having fun, and then was like "NO! this is WORK! Let me introduce some serious problems. Like making your bluetooth dongle randomly fail because of underpowered USB, making you spend a day debugging what turned out to be a hardware problem" or "Let's make your device double the amps its using once you switch the WiFi radio *off*"
*headdesk*
Real programmers use butterflies
|
|
|
|
|
P1: A complete and utter load of fecal matter, and the only good thing I can say is it's not my code. Parts of the code base are more than 25 years old, and have been migrated from custom hardware, to Sparc/UNIX, VxWorks, and now AMD64/Windows. It's so utterly wretched we've successfully avoid having to rebuild the crap for 6 or 8 years now. Some hardware has gone obsolete and none of the EE's have the time to repro the design. Some asshat [yours truly] suggested we could use some off-the-shelf hardware if we made some code changes. I've spent the last week getting this sh*tty crap to compile and link. The last build used an adulterated mix of Windows SDK's, batch, and MAKE files. To give you a notion of the moronic crap I'm dealing with, it's a console app that also runs a message pump.
P2: Ancillary product connected to P1, but my code and code written by competent adults. Mostly minor maintenance stuff and customization.
P3: Ongoing development for a new product hopefully going to beta at the end of the year. 2/3 of the work is on my code, the remainder on code I refactored for someone else a couple years ago.
P4: Hopefully a part of P3. Our equipment is a printing press 60-100 feet long or longer. It's a PITA to run back the the controller and click a button when you're working at the opposite end of the the press. I've got the notion of adding a remote control option to the controller application. The controller app acts as a web server, and the service folks can use their phones or laptops to perform routine maintenance without being track stars.
I've listed these projects in order by priority, which means that P1 is more important than P2, and so on.
Unfortunately my interest in and motivation for the projects increase in the same order.
Software Zen: delete this;
|
|
|
|
|
I have been working on a .NET WinForms enterprise application supporting electronic warfare for the US Air Force since around 2005. I started it from scratch and was a one-man team for about 12 years. Now we've evolved into much larger team that I am the 'enterprise architect' for, but am still the main hands-on developer. Our user base is great, which makes it even more enjoyable. Plus the pay isn't shabby either. Honestly, I love coming to work 99% of the time. I am very fortunate.
|
|
|
|
|
the good - learning something new
the bad - learning something new
hear me out, the only reason I say it's bad, is how much slower it is to do something on a new platform when you can say to yourself, I could have been done with this task two days ago on the platforms I know.
partially, I'm not always willing to take the 'given' answer for most anything in development. I need to know the 'why' of it, the in's and out's of an api, a dozen ways to make things break (so I don't do it again) and the limitations.
I'm usually not okay with copying someone else's code example without figuring out how they got to where they are.
I've known some "devs" to just search the web for examples to copy and paste in their code wrap everything in a try/catch and hope for the best, if it blows up they go searching again.
that said: I do enjoy learning something new, but not when there is a time limit for R&D, or project with a definite launch date that you have to wrap an unfamiliar platform into.
|
|
|
|
|
Working in automotive firmware is not particularly engaging. My former field was high tech industrial automation and it was far more interesting - sadly the company sucked, embraced all the worst practices and didn't evolve (1998 toolchain, Windows XP until 2016, no source control, terrible workstations as in 1GB of RAM and 40 GB HDD in 2015).
Now the current company is capable of great things but the work is mostly consulting using the customers' infrastructure and process, which means that usually we have good machines (provided by our company) but all the rest is basically the same, except for the dullness of the typical jobs. It pays 2x my previous salary so I won't complain.
GCS d--(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--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
which side i'm on seems to depend more on whether my ability to rationalize the bad times as useful, or constructive, is: relatively weaker, or, stronger ... than my ability to imagine i am deluding myself that the good times are my own achievements
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
And it all started when I became my own boss
It's not always fun, I don't think anything is, but it's more good than bad anyway.
Most of the code is pretty cool, because I'm the only one who wrote it, except for a really bad code base that I inherited (but pretty much used to by now).
My customers are pretty nice, overall.
And I get to decide my own hours.
But of course there's also the late payments, disagreements on invoices, haggling on quotes, quotes that never become actual work...
Ah well, I can dry those tears with all the money I make because my boss isn't taking like 3/4 of it
Unless I have a bad month, because those are also part of being my own boss
It sure as hell beats my previous project, where a coworker rejected a pull request because he really wanted to discuss the importance of const values over "literal values" WHILE PRODUCTION WAS DOWN!
|
|
|
|
|
which, in our line of work, is always a blessing.
|
|
|
|
|
There are no good guys. There are no bad guys there's only you and me and we just disagree
they only pay you so you'll come back tomorrow and continue doing it.
|
|
|
|
|
Quote: You aren't really there at all. There isn't anybody but me---Jane---here alone in the dark.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing 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
|
|
|
|
|
- except upon rare occasions, management seems to go through my poor and beleaguered boss and I just get what's left after filtering out of the gibberish.
I used to get asked to meetings - and so I would ask questions - and so they stopped asking me to go to meetings. Almost a win-win, but, looking into historical evidence form meetings wherein they slipped up and had me come, well, they should have listened to me. Probably why I don't get invited. You don't need to be a rocket surgeon to notice stupid.
So - when given a task we may thrash it around a bit (clarifications or debate) and then I'm off on my merry way with a real target that makes sense. At least in terms of what it does and how it does it. (As for doing something really sensible - that's saved for another rant).
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Right now is a new project to modify something old to make very new things... a lot of specs to be read, a lot discussions to clear things, a lot of hardware and other things to acquise... then at some point create a software to control it, but not in classic term of programming it.
It can be interesting, but is not the same
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.
|
|
|
|
|
Nelek wrote: It can be interesting
in my experience, "interesting" loses its interest quickly, and turns into tedious, annoying, and frequently, boring.
good luck on it staying interesting as long as possible.
|
|
|
|
|
Slacker007 wrote:
in my experience, "interesting" loses its interest quickly, and turns into tedious, annoying, and frequently, boring. in mine too
Slacker007 wrote: good luck on it staying interesting as long as possible. thanks, I think I will need it
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.
|
|
|
|
|
On Feb 1, 2016 - exactly 5 years ago - I started my present job. They had a product which had grown to some complex ball of mud and could not be developed further - a fresh version was needed, and let's try the best to do things right and get best maintainability etc.
We decided for standards, e.g. using OOP, writing tests, naming rules, ...
But in the end, they only needed some guy to clean up after they shat their mess into the code base.
My cow-orkers refuse to learn anything - they insist that their 30 years old knowledge is great.
I tried to organize some training on WPF - refused by my cow-orkers (not by the boss, btw).
I give them hints to read up some specific topics - just don't do it.
Unit Tests? One of them is proud to never have written a test at all. Others break them, but never fix them. The last time Jenkins run without a failing test was some 2 years ago - before I gave up fixing their crap.
You can write C code in Visual Studio 2019 and "C#", too (functions return a value indicating failure state; pass reference types to be filled inside the function; set LastError in case of failure). Or use a State Machine whenever you have more than 3 functions to execute one after the other. ...
Of course, crap comes from top, too.
The boss is not interested in the business cases of our customers, just wants to sell the existing product (or sells things we don't do...). Domain knowledge - what's that?
A lot of voodoo requirements. Instead of detecting dangerous situations (that's what the product is meant to do), we are only discussing how to prevent false alarms. With lots of crap, resulting in correct alarms being dismissed as false alarms.
I wanted to add some AI for the detection of disturbances. AI requires data, so I developed a data collection component mid 2019. Number of customers it has ever been switched on: 0 (zero).
But I won't quit soon - at other companies, the sh*t is not really different. And I cannot afford early retirement yet ...
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
I never knew you worked at the Microsoft Windows Updates team!
|
|
|
|
|
We beat them.
Last Friday, the head of Development and Quality asked me to look at an unexpected behavior at a customer site. I asked if it was the current release version or an earlier one. No, development version from the day before. Feature X was just recently developed and needed here...
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
Shocking that this would happen in a country often known for excellence in engineering!
|
|
|
|
|
Are you dreaming? "Excellence in Engineering" - like Volkswagen Clean Diesel?
Oh sanctissimi Wilhelmus, Theodorus, et Fredericus!
|
|
|
|
|
Unfortunately, no place is immune to unethical behavior.
|
|
|
|
|
With languages like JavaScript.
|
|
|
|
|