SQL All the things!



  • I've had 3 "Permanent" positions in the last year. I've left each one because all the jobs are a waste of time. The latest just takes the cake:

    • Everything is done in SQL Server. My make or break task the boss has done half the work in SQL jobs that I have to somehow interface with a web frontend.
    • They want to take on a large social website. They have a sound idea, however the first meeting is on how the database should be structured. I am dunno how to deal with the fact that I think maybe we should look into using something NoSQL.
    • Database update scripts are emailed around the office so people can keep sync on their dev database.
    • Requirements are discussed and never formalised. So the software is complex and and the only way to know what it is doing and why is to read the code.

    This isn't meant to sound conceited but I am by far the best Frontend/CSS dev and my official title these days is "C# developer". But I can't educate the developers because while we are in the same office we work for a different company.


  • Discourse touched me in a no-no place

    @lucas said:

    But I can't educate the developers because while we are in the same office we work for a different company.

    Are they more or less !important than you?





  • Well being [sass]y I tend to break those rules.



  • @lucas said:

    I've left each one because all the jobs are a waste of time.

    Pretty much any job you ever work, you can find a way to say that it is a waste of time. While your current situation does sound like a :wtf:, start by trying to make things better instead of just bailing on this one.



  • I agree but if the management mandate you can't change things ever ... what can you do?

    I am looking at going back onto contracts when the market sorts itself out.



  • @lucas said:

    Everything is done in SQL Server. My make or break task the boss has done half the work in SQL jobs that I have to somehow interface with a web frontend.

    There's nothing necessarily wrong with that approach unless there are lots of calls to things like sp_send_dbmail and xp_cmdshell, or HTML is being generated by stored procedures. The best way to do work on a database is to do the work on the database.

    @lucas said:

    I am dunno how to deal with the fact that I think maybe we should look into using something NoSQL.

    Why? Is it a reasonable expectation that the service provided is going to quickly become the next Twitter?

    @lucas said:

    Database update scripts are emailed around the office so people can keep sync on their dev database.

    Okay, that's a legit gripe. Have you tried championing version control?

    @lucas said:

    Requirements are discussed and never formalised. So the software is complex and and the only way to know what it is doing and why is to read the code.

    That pretty much describes every software job I've had. Even if there was up-to-date documentation, would you expect it to document every nuance hidden within the current implementation? The code IS the most up-to-date and complete documentation you will ever get your hands on.

    @lucas said:

    I been told "not to use layers" i.e. DAL, Business Object Layer etc ... so I can't use standard .NET techniques for splitting up the code. So instead I lie and say words like "component", "library" etc.and never make any diagram look like anything that looks like a the usual "burger" or "cake" diagrams. As a result now my high level documentation is full of lies.

    Wait a minute - you said that there were no requirements, and yet you documented how you implemented things? If they can't nail down shifting requirements enough to produce a spec, why would they care so much about the current implementation? If they're fooled by the documentation you provided, it also suggests they aren't verifying your work.

    @lucas said:

    I agree but if the management mandate you can't change things ever ... what can you do?

    When I was slightly younger, I had a boss tell me, "It's easier to beg forgiveness than ask for permission."



  • @Groaner said:

    Why? Is it a reasonable expectation that the service provided is going to quickly become the next Twitter?

    My argument would be lets build it the right way, we have then the skills in house and if it does take off we won't have to scramble around to correct it.

    There are some features where it would be worth looking at other (NoSQL) database options as they are objectively better at the task.

    @Groaner said:

    Wait a minute - you said that there were no requirements, and yet you documented how you implemented things? If they can't nail down shifting requirements enough to produce a spec, why would they care so much about the current implementation? If they're fooled by the documentation you provided, it also suggests they aren't verifying your work.

    I may have not explained it very well. While my documentation is accurate, I have to be careful not to use certain terms. I am going to document stuff high level stuff so if a new dev comes in they won't be lost looking at it.



  • What feature is made better by massive data duplication and update anomalies that most NoSQL systems will give you? Is the data model simply a giant cesspool of tweets/posts?



  • Biased much?



  • I am dunno how to deal with the fact that I think maybe we should look into using something NoSQL.
    How about no? Diaspora guys started with NoSQL, and ended up with much pain and suffering. They basically nad to reinvent joins and grouping and shit.

    @lucas said:

    Database update scripts are emailed around the office so people can keep sync on their dev database.

    Gee, use a fucking vcs already.

    @lucas said:

    They have a sound idea, however the first meeting is on how the database should be structured.

    The decisions about the schema are the most important in the life of your project, SQL or not. However it looks like a bunch of incompetent monkeys who heard this is the right thing to do held a meeting.

    @lucas said:

    Requirements are discussed and never formalised. So the software is complex and and the only way to know what it is doing and why is to read the code.

    Sounds like no one wants to be responsible.



  • Also, large social site on SQL server... :wtf: worse than even NoSQL.



  • @wft said:

    How about no? Diaspora guys started with NoSQL, and ended up with much pain and suffering. They basically nad to reinvent joins and grouping and shit.

    My point is I would like to investigate/evaluate alternatives. If I am leading the project so I know I am going to be in a fight before I begin.

    My problem is that other things aren't being considered even before we had the first discussion.



  • stackoverflow mostly runs on sql server. Brent ozar has a great post about it. It runs like a champ.

    Video... But I swear there is a text post about it somewhere too. https://www.brentozar.com/archive/2011/11/how-stackoverflow-scales-sql-server-video/


  • ♿ (Parody)

    @loopback0 said:

    @lucas said:
    But I can't educate the developers because while we are in the same office we work for a different company.

    Are they more or less !important than you?

    Do you think we could identify them?



  • @NTW said:

    stackoverflow mostly runs on sql server. Brent ozar has a great post about it. It runs like a champ.
    They remain married to MSSQL because that was what Jeff and Joel knew. Not necessarily because that was the best choice ever.

    Wikipedia runs on MySQL, not exactly the best choice too — you have to fight and work around it more than it's worth, but like I said above: you pick a database you know, and past some threshold of data stored and code built around it, you stay with it, whether you like it or not.



  • @Groaner said:

    When I was slightly younger, I had a boss tell me, "It's easier to beg forgiveness than ask for permission."

    Early in my career I had a colleague, who was somewhat of a mentor, tell me this as well.

    It as largely served me we well.


  • Discourse touched me in a no-no place

    @Groaner said:

    lucas:

    Requirements are discussed and never formalised. So the software is complex and and the only way to know what it is doing and why is to read the code.

    That pretty much describes every software job I've had. Even if there was up-to-date documentation, would you expect it to document every nuance hidden within the current implementation? The code IS the most up-to-date and complete documentation you will ever get your hands on.

    Nevertheless, even high-level documentation about what's being done and why is sometimes useful - sounds like even that doesn't exist.

    The software exists to fromulate widgets. Unfromulated widgets need to be fromulated because [....]. Generally fromulation is done by [...]. [Corner cases,] [Error conditions.]

    Formalizing that into a proper spec is what normally gets missed out however.

    Sounds like even the first isn't happening here.


  • BINNED

    @abarker said:

    start by trying to make things better instead of just bailing on this one.

    It works if your boss at least understands better, and sooner than later. Otherwise you loose your end of year bonus, suffer financially and only get the blames for introducing a change (for good). While everyone hates you even though you improved the situation.


  • Winner of the 2016 Presidential Election

    @PJH said:

    Nevertheless, even high-level documentation about what's being done and why is sometimes useful - sounds like even that doesn't exist.

    Exactly. The argument "writing documentation doesn't make sense, because it will always be outdated" is based on a misunderstanding of the purpose of documentation. Of course describing the code and duplicating the code/API comments doesn't make much sense. Documentation should not describe all of the application behavior in all edge cases, but overall design and important implementation decisions. (Unless it's end-user documentation, of course.)


  • area_can

    The fallout could have a CASCADEing effect (see, it's CSS and SQL!).



  • @dse said:

    Otherwise you loose your end of year bonus,

    Wait, you guys get bonuses?


  • FoxDev

    I get monthly bonuses 😛

    Nothing major, usually about £35-£40 before tax, and everyone gets an equal bonus; the exact amount is based on how many operators hit a certain threshold of bookings.


  • I survived the hour long Uno hand

    I get an annual profit-sharing bonus. It's coming up in a few weeks. It's lower than expected because we had so many Priority 1 incidents we actually didn't meet our sales goals, but we still get an amount prorated to the percent of our goals we made. I feel like giving everyone at Corporate the bonus is a great philosophy, because it reminds everyone that hey, if the websites aren't working, we lose actual money.


  • :belt_onion:

    @Yamikuronue said:

    because it reminds everyone that hey, if the websites aren't working, we lose actual money.violently lynch the ops team

    FTFY?


  • I survived the hour long Uno hand

    ppppfffttt.

    Ops.

    Right.


  • Discourse touched me in a no-no place

    @abarker said:

    Wait, you guys get bonuses?

    Only once in over 20 years. There's usually not enough free cash to allow for that sort of thing…



  • @asdf said:

    The argument "writing documentation doesn't make sense, because it will always be outdated" is based on a misunderstanding of the purpose of documentation.

    TR purpose of documentation is to allow the expensive consulting firm (Accenture comes to mind, but there are many) to bill for lots of time spent on deliverables. Which have nothing, of course, to do with delivering a working product, of course. As long as all the deliverables are signed-off on, you get away with putting crap in front of the end user, as well as a a stream of anywhere between 2 and 10 years of continued need for the company to continuing hiring your consulting firm. Once IBM has got their (minimum) $250/hour consulting hooks into your Enterprise, good luck getting them out. Heck the Slashdot MS is the Borg meme really belongs to Big Blue.


  • Discourse touched me in a no-no place

    @NTW said:

    Heck the Slashdot MS is the Borg meme really belongs to Big Blue.

    Think of IBM as what you get after the singularity converts everything into grey blue goo…



  • That would explain IBM documentation.

    (I'm lying, of course. Nothing explains IBM documentation. It reads like computer generated documentation that's been passed through three iterations of Google Translate.)



  • @BaconBits said:

    It reads like computer generated documentation that's been passed through three iterations of Google Translate.

    @translator Only three?



  • After 10 translations Bing says: Only three @Translator you?

    Filed under: English(Confidence: 9.5 ) -> <abbr title="

    @translator ainult kolm?">Estonian -> <abbr title="

    @translator solo tre?">Italian -> <abbr title="

    @translator vain kolme?">Finnish -> <abbr title="

    ¿@translator sólo tres?">Spanish -> @translator 吗?">Chinese Simplified -> @Translator du?">Swedish -> @Translator jūs?">Lithuanian -> @Translator ou?">Haitian Creole -> @Translator Ciebie?">Polish -> @Translator ai?">Romanian -> @Translator you?">English



  • @abarker said:

    It reads like computer generated documentation that's been passed through three iterations of Google Translate.

    I sent this one through the ringer of multiple translations (including one to Hebrew) and ended up with:

    It belongs to the computer documents passed three repetitions Google translate it


  • @abarker said:

    Wait, you guys get bonuses?

    At my previous job, I used to get a five-figure bonus almost every year. The only thing worse than not getting a bonus is getting regular bonuses and then not getting one for reasons completely unrelated to your job performance (or anyone's job performance that you've ever met).



  • Yet Stack Overflow is lightening fast and deals with boatloads of data.


  • :belt_onion:

    @translator It belongs to the computer documents passed three repetitions Google translate it



  • After 10 translations Bing says: He is currently @translator 3, play on the computer for Google is part of the file.

    Filed under: English(Confidence: 12.61 ) -> @translator nó thuộc về các tài liệu máy tính thông qua ba lần lặp của Google dịch nó">Vietnamese -> @translator הוא שייך המסמכים במחשב דרך שלוש חזרות של גוגל לתרגם את זה">Hebrew -> @translator dokiman ou sou konpitè ou nan twa tradwi l' itérations de Google">Haitian Creole -> @translator の一部 3 今 Google の繰り返しの感覚でお使いのコンピューター上のドキュメント">Japanese -> @translator osa 3 nyt ajatuksella toistoa Google asiakirjat tietokoneeseen.">Finnish -> @translator 第 3 部分為谷歌檔到您的電腦中播放。">Chinese Traditional -> @translator partea 3 este Google fişiere pentru a juca pe computer.">Romanian -> @translator частина 3, Google файли для відтворення на комп'ютері.">Ukranian -> @translator osa 3, Google failide taasesitus oma arvutis.">Estonian -> @translator 3, 컴퓨터에서 재생에 대 한 Google 파일의 일부입니다.">Korean -> @translator 3, play on the computer for Google is part of the file.">English


  • :belt_onion:

    Dammit, @translator, @abarker @hanzo'd me!



  • After 10 translations Bing says: Firm, @hanzo, and @translator.

    Filed under: English -> @translator, @abarker @hanzo mich!">German -> @translator, @abarker @hanzo mich!">Indonesian -> @translator hatte, @abarker @hanzo mich!">Danish -> @translator, @abarker @hanzo mich!">Italian -> @translator, @abarker @hanzo Hat mich!">Estonian -> @translator, @abarker @hanzo Hat mich!">Spanish -> @translator, @abarker @hanzo mich шляпу!">Belarusian -> @translator, @abarker @hanzo, mich chapo.">Haitian Creole -> @translator, @abarker @hanzo, Mich. hoed.">Dutch -> @hanzo、@abarker @translator。">Japanese -> @hanzo, and @translator.">English





  • After 10 translations Bing says: : And:

    Filed under: English -> <abbr title="

    : giggity:">Italian -> <abbr title="

    : giggity:">Hungarian -> Chinese Traditional -> Catalan -> German -> Swedish -> Dutch -> Belarusian -> Finnish -> Polish -> English



  • @lucas said:

    I am by far the best Frontend dev

    We'll have to have a frontend-off.

    Alternative: Except when the front falls off. I'm at work so I can't be bothered using stealth tactics to look for the youtube clip right now.

    Seriously though, I've come to the same conclusion because:

    1. I seem to be the only person to come up with a consistent way of structuring angularjs code files.
    2. I actually bother to split files up before reaching the 500-line mark.
    3. I automate things such as minifying.
    4. I lint code such that the code doesn't have 3 blatantly different styles to it.
    5. I actually wanted a process for a while until battle fatigue set in and I learned to stop caring.

    The standard must be really low in my area too.

    @lucas said:

    I am looking at going back onto contracts

    So am I.

    I don't know if this is too soon to ask, but... are you my long-lost twin?

    @Groaner said:

    Even if there was up-to-date documentation, would you expect it to document every nuance hidden within the current implementation?

    I thought this was the point of prototyping. Your spec starts with 'I want X', before evolving into 'I want X, except when Y happens' and so forth. Presumably one would give each change a new version number or something. I don't think I've ever seen a process implemented properly or even followed properly in favour of casual laziness or bullying.

    @lucas said:

    I have to be careful not to use certain terms.

    Like 'refactoring' no doubt.

    @NTW said:

    NoSQL

    Bad experiences deploying new table fields brought me to like the idea of NoSQL.

    @wft said:

    Sounds like no one wants to be responsible.

    Yeah, if no-one signs it off and your managers get toxic you can at least say there's nothing about the feature they're yelling about in the spec. They're not going to have an inarguable response to that which doesn't make them sound insane.

    ... Not that this seems to stop some of them.

    @dse said:

    Otherwise you loose your end of year bonus, suffer financially and only get the blames for introducing a change (for good). While everyone hates you even though you improved the situation.

    Your experience? 😦


  • Winner of the 2016 Presidential Election

    @Pharylon said:

    Yet Stack Overflow is lightening fast and deals with boatloads of data.

    Doesn't necessarily say anything about the performance of the DB, I'm pretty sure they cache the data on many different layers.


  • Discourse touched me in a no-no place

    I bet they've also got their indices right…



  • @abarker said:

    Only three?

    Yes. Ten through Bing is reserved for error codes. Three through Google Translate is reserved for documentation.

    Don't worry, though. It's all documented somewhere!



  • @translator does Oxford commas!



  • After 10 translations Bing says: @Translator is a comma.

    Filed under: English(Confidence: 10.58 ) -> Polish -> Vietnamese -> Thai -> Latvian -> Chinese Simplified -> Romanian -> Portuguese -> Ukranian -> Bulgarian -> Dutch -> English



  • @Shoreline said:

    Seriously though, I've come to the same conclusion because:

    I seem to be the only person to come up with a consistent way of structuring angularjs code files.
    I actually bother to split files up before reaching the 500-line mark.
    I automate things such as minifying.
    I lint code such that the code doesn't have 3 blatantly different styles to it.
    I actually wanted a process for a while until battle fatigue set in and I learned to stop caring.

    The standard must be really low in my area too.

    I think there are some devs where they are happy just to hack any old crap together and go home at the end of the day. They don't care, the company doesn't care and when you are in that environment it is time to move on.



  • @lucas said:

    They don't care, the company doesn't care

    What's really important to know is when this is the right thing to do and when it's wrong.



  • If it makes my life easier it is the right move 😃

    Honestly if it gets to that point it is time to go.

    Incidentally, My CTO said he overhead a call to a recruiter and asked me whether I was about to move on. It was really his sycophant that told him.

    The fact is that I have don't have the money to bugger off so used my best bullshitting skills to convince him it was a recruiter that I happened to an friendly with. I dunno if I adverted suspicion.

    I should be doing something else that needs pro-bullshitting skills.


Log in to reply