Ask Slashdot: What Are Some Developer Secrets That Could Sink Your Business?
snydeq writes: In today's tech world, the developer is king -- and we know it. But if you're letting us reign over your app dev strategy, you might be in for some surprises, thanks to what we aren't saying, writes an anonymous developer in a roundup of developer secrets that could sink the business. "The truth is, we developers aren't always straight with you. We have a few secrets we like to keep for ourselves. The fact that we don't tell you everything is understandable. You're the boss, after all. Do you tell your boss everything? If you're the CEO, do you loop in the board on every decision? So don't be so surprised when we do it." What possible damaging programming dirt are you keeping the lid on? Some of the points the developer mentions in his/her report include: "Your technical debt is a lot bigger than you think," "We're infatuated with our own code," and "We'd rather build than maintain." If you can think of any others not mentioned in the report, we're all ears! This may be a good time to check the "Post Anonymously" box before you submit your comment.
We don't choose libraries and architectures necessarily because they are the best for your business. Sometimes, it is because they are hot in the market and we want professional experience to put on our resumes.
Oh, yeah. And we are keeping our resumes updated.
Aah, change is good. -- Rafiki
Yeah, but it ain't easy. -- Simba
But we're trying to move from C to Rust...
Browsing at +1 - no ACs, I ignore their posts. So refreshing!
Sometimes developers meet with Russians. This could sink your business if CNN finds out.
Once upon a time everything was in a colo facility. Then they decided to rewrite the application we use to do everything. They put it in AWS. All of it. They they spent several man-years writing a bunch of automation between the various modular bits using Amazon's APIs.
Imagine the surprise from the beancounters when the thing they deployed took way longer than they said it would, cost a lot more than estimated, and has more than 3 times the opex costs compared to what we used to pay for hosting it ourselves, and now it's in AWS with no way to get it out without breaking all the automation that so much time was invested in writing.
Tallest nail gets hammered, keep my mouth shut hoping someone else takes the fall for being late. True story. Some 20 years ago I worked on Globalstar. The software was a good year late, we all knew it, but management a couple layers up didn't. They were launching a bunch of Globalstar satellites on a Russian rocket. There were 4 teams of us, all knew we were a year behind, sitting in a large conference room with a live link to the launch. Some 90 seconds in the rocket plowed into Russian real estate. We all looked at each other, breathed a sigh of relief, looked sad to our manager's managers, and went home knowing we were good with our 50 hour work weeks for another year.
I note the "insightful" article is written by an anonymous author, as I wouldn't want my name tarnished with this steaming pile either. There is nothing of value here. Nothing. I note that "syndeq" simply spams articles from this CIO website, driving traffic there I suppose. Slashdot is a waste of time these days. I still come here out of habit, but it's a habit I need to kick.
Our server has a backdoor letting you submit arbitrary code that gets compiled and executed. We use it to fix things directly in production since everything is a mess and things break all the time. You don't even need to log in, just hit the right URL and you are in. I can't understand how this hasn't been used by a disgruntled employee to delete the entire DB or something like that. By the way, this is not a worthless startup, it's a hundred million dollar revenue per year operation.
Remember that awesome support you were getting along with your stable product? We laid off half our staff and didn't tell any customers leading to poorly maintained code and outsourced support techs who could barely speak English and had little to no training. Enjoy!
Why can't we go back to using jumpers to configure slot adapter cards? Why? I say!
You know what I don't tell my boss? That we use systemd.
If you post as Anonymous Coward, don't expect a reply.
As a young engineer in my first job I was the point man for a new technology in our company called ISDN.
Back in the early 90's each country had it's own flavour of ISDN for market protectionism or just to be different.
Our product started offering an ISDN interface as well as the other older comms interfaces (X25 etc).
I was at the "bored" stage with the dev work when a nice little bug started breaking things among our European customers.
I could have simply stuck a 3.5" floppy in the post (this is pre-internet) but since I'd never been to Switzerland, Munch (in Sept), Paris, etc, etc I was eager to travel.
What made this ruse even sweeter was that when I got on site I'd pretend to debug for a 1/2 hour, then switch floppy discs, and -hey presto- it all worked perfectly.
Each time I the toast of the office I was visiting, as well as our company sales team golden boy, rewarded by being taken out for a nice meal and drinks as a thank you.
If I'd just stuck the floppy in the post it just wouldn't have had the same effect nor would I have seen some nice parts of Europe or tasted their fine cuisine.
Where I am, our code doesn't work with newer versions of a dependency library. Two developers have tried to work around the incompatibility, and failed. So until we can scrounge together enough time to redevelop the frontend from scratch, we're stuck installing old versions of the library, and just hoping that no OS changes render older versions of the library inoperable - otherwise we won't be able to upgrade OSes either.
That said, this doesn't fit the topic, because our boss knows all of this. We keep our boss well in the loop. He used to work as a programmer the software, and still does some work on it from time to time. That's IMHO how it should be.
Things work best when workers aren't afraid of their boss. I hate Machiavellian workplaces.
Nietzche: "I'm immortal because I'm all sin." Jesus: "I forgive you." (Bang!) -- Jesus Christ Supercop
I'd file the first two under "things managers don't want to hear" rather than "developer secrets":
Managers want to have estimates for their planning, so they pressure developers to make estimates based on sometimes very incomplete information. The best way I found of dealing with this is to make an estimate for the work of investigating how long the actual work will take and only add the actual work to the planning after that investigation has completed.
When it comes to technical debt, in my experience it is often the developer pressuring the manager to give them time to do something about it and the manager wanting to postpone it in favor of feature development. Some of that pressure is justifiable, as polishing code can be a huge time sink and doesn't always repay itself. But in my experience developers don't shy away from talking about technical debt.
When it comes to building vs maintaining, I don't think it's the case that every developer prefers to build. However, there are different people who do well at different stages of a project's life cycle: some people are good at building new software from scratch, others are good at adapting and improving existing software. Instead of rewriting a project every few years just to keep the builders happy, I'd suggest moving them to a new (sub)project.
The other "secrets" shouldn't be secrets to any manager who understands software development. Developers are people too: they like playing with shiny new toys, they have strong opinions (sometimes warranted, sometimes not) and they may not see the big picture since they're focused on their specialty.
I don't know about you guys, but I have always had way less secrets than they.
And I smell a dying project from 10 miles away and turn around and tell it to my peers and boss, straight to their faces.
"This is going to fail at stage so-and-so/in x weeks/months time because of a,b, and c.
If we want to prevent this, we have to do x,y and z."
Straight forward.
90% of problems I've had along these lines way because of bosses, PMs and whatnot not being honest with me. Or to stupdi/dumb/out of their depth to get a hold on the problem and deliver on their end.
Likewise, every time my PMs and bosses were honest with me, I had their back.
Need politics rather than tech solutions? I'll give you a technical buzzword ridden writeup/analysis that will get you anything.
Need nice and shiny things that move and people can click on? Consider it done.
Need to blow up that boring data with some nifty grafics and impressive spreadsheets? Done.
Need a devils advocate to point out where the problem is? I'll speak up with a techie voice in the grand meeting and all will shush and hear the clarions call.
Need me to pick the hot coals out of the fire with the customers IT dept? No problem, give me a first phone number and I won't stop calling until I got the exact right guy on the other end. And 10 minutes in we'll be the very best buddies.
I'm honest and straight forward, just about always. Be honest with me. If you're not, f*ck you and the horse you rode in on. I'm out and I hope your whole product/project/whatever goes down in a ball of flame. You can use me for politics, but you have to fill me in and I must see where the game is headed. But play me because you think I'm some replacable suit and not the guy actually buidling your actual product and I'm out and I won't have you on any project in any meaningful position ever again - you have proven your incompetence as PM/Boss/CEO.
That's basically the principle I live by doing this IT/development stuff, ever since. I'm the straight forward type, and sometimes people/bosses have taken advantage of that or just didn't catch the drift. But I'm getting better at noticing it.
Lot's of bullshit and stupidity in the web/agency camp, tough space to navigate in the honesty dept. The biggest problem always is when they don't know what they want, but for some bizar reason know when it needs to be finished and how much it may cost. Including a never ending stream of last-minute changes.
So, no, not any real secrets that can sink your business. Actually, more than once my product was mission critical and made the business possible in the first place.
We suffer more in our imagination than in reality. - Seneca
I don't recall anyone patting me on the back for carrying a coworker's old code through several years of releases.
Years ago a co-worker's daughter drowned in their swimming pool. Made the local news and everything. I'm gonna call him Frank cuz his name wasn't Frank.
We were a 4 man team (yeah man, no females involved). A couple years before 2 of us worked under Frank, he was a great boss. Due to the company's matrix management system Frank worked for, oh hell, Bob. So, uh, Frank and Bob were a level above me, and we had an Indian dude who had been there about 3 months before, um, Frank's daughter died.
Frank was a hell of a contributor. Until his daughter drowned. Then he was a worthless pile of crap. I hate to say it, but his goal in life was to use a shovel to fill in that swimming pool. Know what? The 3 of us carried him. Frank did maybe 1/3 of his workload, the other 3 of us covered for him. Our immediate boss knew what was going on, and also knew Frank was a damned good engineer.. This went on for a good year, then 2 things happened. First, he filled that pool and started turning into a good engineer again. Second, I did the dumbest thing I've ever done and left that company for a startup.
Just say that you worked on Big Iron and everyone knows there will have been plenty of Rust.
Dev: "Bless me Father, for I have sinned. I've been keeping terrible developer secrets. All our 'in-game footage' that supposedly shows off the new engine? Entirely pre-rendered."
Rev: "Go on."
Dev: "And I've been secretly coding everything in Rust, even though I promised the CTO I'd use a 'real man's language, like C.'"
Rev: "I see."
Dev: "And most of the day I'm not even coding. I'm posting on Slashdot and playing that mobile game from the Schwarzenegger commercials."
Rev: "Hmm."
Dev: "I lied on my resume; I said I worked for Google as a senior developer, but it was really a call center job with a company called 'Googe' that produces fake semen for German fetish parties."
Rev: "What sort of fucked up calls you must've... **AHEM** My child, these are grave sins to be sure, but anything can be forgiven by the generous mercy of --"
Dev: "I work on systemd in my spare time."
Rev: "I COMMAND THEE LEAVE, SATAN!"
Nothing posted to
Were are a relatively small shop, and those devs with influence convinced management to switch to what seems the entire Microsoft stack, with service layers on top of service layers, and other middle-man gizmos. It's as if they get points for every service and service layer on the MS brochure they use. Pokesoft: gotta install em all! If you add a new column to a table, you have to update something like 17 spots. Dagwood wouldn't even eat this thing.
They are kicking KISS/YAGNI right in the balls. Either I don't get something, or they are trying to pad their resumes with enough gizmo experience to move on to Big Pay, leaving us suckers to babysit their bloated orphans.
Table-ized A.I.
Remember the original Tron movie, where the software programs all looked just like the person who created them, except with neon duct tape on their clothes?
There's a lot of truth to that. The design of a piece of software will inevitably reflect the way its author thinks, his views about what the problem-space is and which techniques and engineering tradeoffs are appropriate, and the designer's own unique approach to problem-solving.
Moreover, the designer of the software is the person who has the most invested in that software's success, and thus the most motivation to keep its quality as high he is capable of -- other people may work on the codebase as well, but they are only step-parents, who may do a good enough job to keep things working (as far as customers can tell), but won't necessarily go the extra mile to make the software really shine, because hey, it's not their baby. To them, everything about the software looks like a bit of a mess, mainly because it wasn't implemented the way they would have done it. So why would they spend any more time on it than they have to?
So, when management decided to lay off Joe because they thought that with the app feature-complete they didn't need him anymore, they were unknowingly signing the death warrant for Joe's app at the same time. It won't die right away, since other programmers can come in, fix bugs, and add the occasional minor feature, but every time someone does that, the integrity and reliability of the codebase suffers a bit more, as the new developer's approach is different from Joe's approach, and thus the new code doesn't fit quite right with the old code. Eventually, development of the codebase slows to a near-halt, as the time, effort, and risk of making any further significant changes starts to outweigh the benefits that could be secured by making the changes. In another year or three, the app will be effectively dead, and the company will have to hire another Joe to write new software from scratch.
TL;DR: Programmers are not interchangeable parts.
I don't care if it's 90,000 hectares. That lake was not my doing.
Frank was a hell of a contributor. Until his daughter drowned. Then he was a worthless pile of crap. I hate to say it, but his goal in life was to use a shovel to fill in that swimming pool. Know what? The 3 of us carried him. Frank did maybe 1/3 of his workload, the other 3 of us covered for him. Our immediate boss knew what was going on, and also knew Frank was a damned good engineer.. This went on for a good year, then 2 things happened. First, he filled that pool and started turning into a good engineer again.
The message I'm receiving here is Frank needed time off for family leave, your worthless fucking company wouldn't give it, your worthless fucking country didn't have any kind of social safety net to allow Frank to quit so he could grieve properly, and you worthless excuse for a person won't even acknowledge these things. Your society is shit, and you are shit. Fuck you.
Hygene.
Simple. They forget to take a shower for three weeks prior to the code review meeting with management and program management.
The managers will keep that meeting very short and won't bother to ask the important questions.
Most Respectfully Yours Mark Allyn Bellingham, Washington
If only it were that simple.
I really envy you for never having had dealt with anything more 'complex' than that.
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion. -- Spazmania (174582)
"I'm working on it now... Should be ready next week!"
*Alt+Tab back to Firefox with Slashdot open*
Dev: "I lied on my resume; I said I worked for Google as a senior developer, but it was really a call center job with a company called 'Googe' that produces fake semen for German fetish parties."
So....is this product, is is available for import?
HA! I just wasted some of your bandwidth with a frivolous sig!
Once the initial shock is over, having a place of work to go to and someone other than family to spend time with may well be the support the guy needed. That the others in his group took the load sounds absolutely right - though management might have been more willing to reduce the load.
This is exactly the sort of negativity which shows how the open source community is abusive and unable to cope when a great new idea comes along that throws away all those bad concepts in Unix, just because we're right and you're wrong.
Nonsense. Compare the reaction to systemd with the reaction to launchd (XNU) or SMF (Solaris). Most people who have had contact with either of the latter regard them as imperfect but significant improvements on what was there previously and, if they're using systems that don't ship with them wish that they did (or, ideally, something taking the good ideas from them each and combining them, leaving the bad ideas behind). No one is complaining about replacing traditional UNIX tools with something better, they're complaining about replacing stuff that mostly works with something that throws all of the last few decades of software engineering away.
I am TheRaven on Soylent News
Or, alternatively, the company recognized that he was a mess due to the death of his daughter, and didn't fire him for the drop in productivity.
In addition, his co-workers also recognized this, and carried his workload while he processed his grief.
I don't see anything in the parent post indicating that either the company or the poster had a problem with any of this; indeed, the poster says that they made a mistake when they left that company.
Vintage computer games and RPG books available. Email me if you're interested.