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.
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.
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.
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
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
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.
"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!
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