|
Polio Vax Scene posted:Is this a thing that actually happens or am I better off not knowing and being able to sleep peacefully? It's something to deal with if you're sending software into a radioactive environment. Earth's surface is radioactive to some degree-- "Studies by IBM in the 1990s suggest that computers typically experience about one cosmic-ray-induced error per 256 megabytes of RAM per month." (source)
|
# ? Oct 10, 2016 18:07 |
|
|
# ? May 10, 2024 01:52 |
|
Sedro posted:It's something to deal with if you're sending software into a radioactive environment. Or if you run sufficiently many machines over a sufficiently long period of time. It's kind of rude that intel has been very inconsistent on supporting ECC ram outside of server chips.
|
# ? Oct 10, 2016 18:13 |
|
Pollyanna posted:With regards to testing paths and scenario combinations, here's an example of something I'm working on right now. We encode 2D data as a Datum that coordinates between a Row and a Column. We recently had a production issue where there somehow ended up being two Datums per Row+Column pair where it is assumed that there is only ever one, and we need to enforce a one-Datum-per-pair rule to prevent that from happening again and causing bugs and unexpected behavior. #R * #C * 8 * 2 * 2 = 32 * #R * #C Just generate that poo poo automatically or quickcheck it lmao at hand-writing that RSpec
|
# ? Oct 10, 2016 18:19 |
|
Polio Vax Scene posted:Is this a thing that actually happens or am I better off not knowing and being able to sleep peacefully? rad-hard chips are sold for a reason Malcolm XML fucked around with this message at 18:22 on Oct 10, 2016 |
# ? Oct 10, 2016 18:20 |
|
It smells like you're trying to solve a problem in the "wrong" place. The first thing that comes to mind is that you should try to make those illegal states unrepresentable. Do whatever you can to make it literally impossible to break your invariants. If you're storing this stuff in a database, it may be possible to enforce invariants on it there.
|
# ? Oct 10, 2016 18:50 |
|
ECC RAM is supposed to be sufficient enough for the bit flip scenarios until you reach Google and Facebook kinds of scale. I had about a bitflip once per month for a year but it looked to be a slow-fail RAM UDIMM that caused those errors. Even still, I have had a couple in a year and those have led to reboots rather than writing erroneous data to a system. The chances of bitflips also increase with your altitude which is why that NSA datacenter in Utah is weird of a decision for me but also other operational factors make it better than most of the coastal areas not to mention the sheer number of Mormons in the intelligence community.
|
# ? Oct 10, 2016 19:00 |
|
Thank for the answer about testing. I get testing for code path and also testing for helping future dev not break existing bugs and features aka regression testing. I also get testing for most probable success and failure of use case. That is not all possible scenario tho, it seems to me that "all possible scenario" has different meaning depending on who you talk. So in the case of the tuples of Pollyanna : I think the double Datum per pair is a data integrity issue that should have been handled by the RDBMS. Is it a Sql or NoSql ?
|
# ? Oct 10, 2016 19:38 |
|
AWWNAW posted:It smells like you're trying to solve a problem in the "wrong" place. The first thing that comes to mind is that you should try to make those illegal states unrepresentable. Do whatever you can to make it literally impossible to break your invariants. If you're storing this stuff in a database, it may be possible to enforce invariants on it there. This is what we should be doing. In lieu of having a greenfield, smartly-built codebase, we gotta do TDD out the wazoo to make sure the spaghetti doesn't strangle us. It's also difficult to decompose the problem down to valid data types and the like when there's to actual spec to speak of Whatever, I've blathered on about it enough. I'll be moving to a new project after the new year anyway, where it can all start all over again.
|
# ? Oct 10, 2016 20:20 |
|
I'm currently employed at a 20-25 person agency doing .NET work, but I listen to the Freelancer's Show podcast semi-regularly because the content interests me and I feel like a lot of the same principles apply to a small agency. Anyway, one of the regular people on their panel is Jonathan Stark, who is a very vocal proponent of nixing hourly billing. Hourly billing and the processes that surround it make me want to strangle myself more than just about anything else with this job, so I'm obviously interested in the subject. He can come off kinda shill-y on his website / social media, but he seems like a smart guy. There's a series of articles that describe his philosophy on his site, the best single one is probably this one: https://expensiveproblem.com/trust-fractures-how-hourly-billing-hurts-software-projects. but the rest are ok too. Any thoughts on this? Useful? Impractical? Just a guy trying to find a niche to sell a book or two in?
|
# ? Oct 10, 2016 20:48 |
|
Iverron posted:Would you mind sharing the exercise? If not that's cool. Sure. We give the candidate two files full of 2D points (one tiny and one big), and ask them to write a program to find the point furthest away from any other point. The files are just lines of the form: code:
There is some narrow overlap with the domain we work in, but really we find it's a nice enough exercise because it requires a little bit of research if people are not familiar with spatial data, and requires a little bit of implementation. It's nice because it should generally not take that long, and it also gives us something to talk about with the candidate. Not sure if that would be appropriate for you to use, but I'm sure there are equivalents for your domain? I think we could easily switch to a different but similarly scoped exercise and get the same benefit.
|
# ? Oct 10, 2016 23:47 |
|
The algorithm I remember for 2D points was to write quad trees and search for the minimal and maximal elements and that unless you have a pathological case you'll wind up with O(log n) for lookups. Everyone that's written a non-trivial 2D collision detection system (better than exhaustive bounding box checks) has experience with it. Sounds like geospatial databases if that's a basic screener question.
|
# ? Oct 11, 2016 00:40 |
|
return0 posted:Sure. We give the candidate two files full of 2D points (one tiny and one big), and ask them to write a program to find the point furthest away from any other point. The files are just lines of the form: I wouldn't even know how to start optimizing. I think I could write the stupid solution, but.
|
# ? Oct 11, 2016 04:11 |
|
HardDiskD posted:I wouldn't even know how to start optimizing. I think I could write the stupid solution, but. The N^2 solution is trivial. Just make the voronoi diagram given by the points and return the largest cell. I don't know off-hand an efficient algorithm for generating one though. e: but I'm like 99% sure that's the solution and if the job doesn't involve a bunch of pure math and/or graph theory day to day it's a pretty bad question
|
# ? Oct 11, 2016 04:27 |
|
necrobobsledder posted:The algorithm I remember for 2D points was to write quad trees and search for the minimal and maximal elements and that unless you have a pathological case you'll wind up with O(log n) for lookups. Everyone that's written a non-trivial 2D collision detection system (better than exhaustive bounding box checks) has experience with it. Sounds like geospatial databases if that's a basic screener question. Are you sure you're answering the same question? He's asking for a single point that's further away from all other points than any other. Though I'd want to clarify what further means: is that just the point with the largest minimum distance to any other point? So ex. You could have many points on a circle and 1 point in the middle, and the middle point would be furthest even though other point pairs were further apart?
|
# ? Oct 11, 2016 04:30 |
|
Iverron posted:I'm currently employed at a 20-25 person agency doing .NET work, but I listen to the Freelancer's Show podcast semi-regularly because the content interests me and I feel like a lot of the same principles apply to a small agency. He states: quote:When I'm ranting about hourly billing, I'm specifically referring to hourly billing within the context of a project, which I define thusly: That's cool for a freelancer who does small, manageable projects, but it doesn't scale. I'm convinced that when it comes to developing products of strategic importance to a company, the whole idea of a "project" is an illusion. There is no project, there is no "particular aim". https://www.infoq.com/articles/kelly-beyond-projects In my experience the amount of arguing with the client is way way worse when you try to fix the scope / budget / time, instead of just delivering value and building trust.
|
# ? Oct 11, 2016 07:57 |
|
It's a nearest neighbour problem, it wants the point with the highest nearest neighbour distance value. There are a bunch of solutions that for non pathological input will be between nlogn and n^2. Yes, the work involves quite a bit of geospatial data manipulation.
|
# ? Oct 11, 2016 08:22 |
|
Yeah, fixed cost + fixed scope + fixed quality is just a trap, that's all there is to it. You have to give your client SOMETHING onto which to make tangible judgements about priorities and cost. Hours blind thinking can work fine when you're on retainer, but you still need to know roughly what it's gonna take to achieve a thing. When the rubber hits the road, a client is buying some chunk of your time, it may be 40hrs a week, it may be 20 hrs a week, it could be over a period of 4 months or just a fortnight. The time has to be charged for and paid for at some part of the chain. Quotes are the devil in software development, they really are. I honestly don't believe I will ever enter into a project that has been accurately scoped and estimated to the last detail. The 2 man shop I'm a part of deliver on time because we estimate front end well, leave padding, and we don't quote/only estimate. You'll get us for <x> hrs a week for <y> weeks/months and we'll chat every week about how our estimates line up with our reality. If we get to the end we'll make sure to push towards something releasable, but we won't hold ourselves to delivering every single feature that was raised in project discovery. In the end of the day we ride on our ability to communicate, manage expectations, and be trustworthy at what we say we'll do, without holding ourselves to promises we can't keep.
|
# ? Oct 11, 2016 08:29 |
|
Messyass posted:That's cool for a freelancer who does small, manageable projects, but it doesn't scale. Yeah, his target audience is solo freelancers with good positioning, and in that context I think he's right: value-based pricing is in the best interests of both parties. quote:I'm convinced that when it comes to developing products of strategic importance to a company, the whole idea of a "project" is an illusion. There is no project, there is no "particular aim". I also like what Dorian Taylor says on the subject. e: Or maybe this one explains his rationale better? He's a discursive fella. Doc Hawkins fucked around with this message at 09:55 on Oct 11, 2016 |
# ? Oct 11, 2016 09:38 |
|
I feel like that point exercise would be me deriving equations on paper for most of the time and then just converting it into code at the end.
|
# ? Oct 11, 2016 12:50 |
|
Thanks guys.Maluco Marinero posted:Yeah, fixed cost + fixed scope + fixed quality is just a trap, that's all there is to it. You have to give your client SOMETHING onto which to make tangible judgements about priorities and cost. Hours blind thinking can work fine when you're on retainer, but you still need to know roughly what it's gonna take to achieve a thing. I definitely agree with this and have pushed for a somewhat similar strategy in the past, without much luck. I'll dive a little more into these articles and try to come up with a better defense.
|
# ? Oct 11, 2016 18:32 |
|
Iverron posted:Anyway, one of the regular people on their panel is Jonathan Stark, who is a very vocal proponent of nixing hourly billing. Hourly billing and the processes that surround it make me want to strangle myself more than just about anything else with this job, so I'm obviously interested in the subject. As a freelance web dev I am in agreement with this, but only for smaller projects. If something is in the sub-$50k range it probably involves technology and platforms I've used before, or project goals that are similar to ones I've achieved in the past. Therefore they're easy enough to estimate and there's very little danger that I'll lose money on the project. If it's above that range then I'm probably contracting out work or dealing with a lot of other unknowns, and proposing a defined scope with a set price becomes a little dangerous. At the end of the day it boils down to how you want to have conversations with clients. There's always something that gets added to a project late in the game, or an element that takes longer to code than you expected and now you're a little outside of where you'd want to be in terms of hours. Your ability to give in these scenarios is important for client relations. I find it's easier to pad a scoped project's budget a little to accommodate for these events rather than padding an hourly estimate, especially if you're updating clients on your hours used. When the client inevitably asks for something that's out of scope, with a scoped project you can say yes (if you have the padding) and make them happy, or you can say no and point to the scope in the contract you both agreed to. With hours you're pointing to hours remaining in your project and it's easy for the conversation to turn sour ("Well why did it take you so long to code X before? Can't you just be a little more efficient with your time and fit this in?"). It doesn't always happen that way, but it can. I may have repeated things he said in that article... it's early and I didn't read it yet. e: Also, at my previous job I saw the worst case scenario – my employer would propose set scopes that were based on hours, but my boss wouldn't tell clients that they were hour based. Clients were under the impression they were scope based. We tracked hours internally and when we started getting close to our maximum my boss would respond to any new requests with, "we're going to go over hours, if you want X you have to pay us more." This was about the worst thing possible for client relations. I've been in contact with a handful of our old clients after I left and it's a mix of folks who like the firm (if the project remained in scope and that conversation never happened), and folks who loathe the firm and will actively try to steer people away from working with them (if that conversation did happen). So I have a bad taste in my mouth when it comes to hourly work. kedo fucked around with this message at 13:16 on Oct 12, 2016 |
# ? Oct 12, 2016 13:10 |
|
The way I like to think of it is: it's axiomatically impossible for the client to get everything they want, and "finished sooner" and "costs less" are things they can want. Establish priorities, with hard business requirements including budgets and deadlines represented as higher priorities.
|
# ? Oct 12, 2016 17:19 |
|
Another aspect of hourly billing is constantly capitulating with troublesome clients on billable hours and hourly rate. I'm not the business guy, but that seems to foster more bad relationships than just about anything else we do. Does it change my paycheck? No, but it starts shifting expectations into magician land when margins are so slim. My boss has also started taking it upon himself to throw out quotes based on a meeting and a "feel" for how "simple" projects are without involving a Developer. This place is hard to like sometimes, flyover state or not.
|
# ? Oct 13, 2016 07:05 |
|
Miniature rant: What's the point of trying to push scrum/agile/lean through your software development process when the wider (and significantly larger) business don't even believe that poo poo. We could subordinate those bottlenecks and planning poker all loving day but you run into this poo poo: "What's the point of releasing something after 2 weeks, it won't be perfect!"
|
# ? Oct 13, 2016 08:56 |
|
Cancelbot posted:Miniature rant: What's the point of trying to push scrum/agile/lean through your software development process when the wider (and significantly larger) business don't even believe that poo poo. We could subordinate those bottlenecks and planning poker all loving day but you run into this poo poo:
|
# ? Oct 13, 2016 11:06 |
|
Who are you delivering software for? It's like that where I am at the moment, but luckily the clients we deliver to are outside the business, so our team has been able to kinda do our own thing bullheadedly/under-the-radar as appropriate and then let the results speak for themselves. It's taken years but it seems to be bringing the business round. Unfortunately a lot of 'getting' agile from the businesses point of view is building trust and having them give up control, which takes ages, especially if big egos are involved. The other day I went to a training session about 'change control'. I understand that changes to live systems need some kind of control, but they way they've proposed involves every single change to any production system anywhere (there are around a hundred) going through one, single, centralised 'change advisory board'. Sounds like it's going to be a massive bottleneck and frictionfest. Shouldn't that sort of thing be split up and delegated to individual teams who know best?
|
# ? Oct 13, 2016 11:13 |
|
Pretty much. If you're stuck in an environment that refuses to acknowledge the reality of the work you do, you will likely never change it through your own effort. Agility must be management sanctioned, or they will continue to hamstring the process. My little 2 man shop opens with a discovery process every time, usually aiming for a cost of a couple grand without ongoing commitment. We do this because we refuse to be held to a development/design budget that we didn't properly scope out ahead of time, but like we'd ever be able to force that issue if we didn't run ourselves. Turns out any workshop we've done has resulted in the rest of the project successfully won, costed correctly, etc, but like you could ever change a sales pipeline focussed company to ever go for something like that.
|
# ? Oct 13, 2016 11:14 |
|
toiletbrush posted:The other day I went to a training session about 'change control'. I understand that changes to live systems need some kind of control, but they way they've proposed involves every single change to any production system anywhere (there are around a hundred) going through one, single, centralised 'change advisory board'. Sounds like it's going to be a massive bottleneck and frictionfest. Shouldn't that sort of thing be split up and delegated to individual teams who know best? Stories like this always remind me that at the end of his life, someone asked Deming how he'd like to be remembered, and he said he probably wouldn't be.
|
# ? Oct 13, 2016 11:27 |
|
There's usually an ebb and flow. Too many production changes go wrong due to stupid errors, so a process is created to review them. But then the process gets too heavy so various fast tracks are added (VP override, "standard" changes.) Eventually almost all the changes bypass the process and then if quality starts to go down, the whole cycle repeats.
|
# ? Oct 13, 2016 13:53 |
|
toiletbrush posted:The other day I went to a training session about 'change control'. I understand that changes to live systems need some kind of control, but they way they've proposed involves every single change to any production system anywhere (there are around a hundred) going through one, single, centralised 'change advisory board'. Sounds like it's going to be a massive bottleneck and frictionfest. Shouldn't that sort of thing be split up and delegated to individual teams who know best? This is where the concept of a standard change comes in. Basically for low-risk tasks you do all the time, you present it to the CAB once. They approve it, and then you have free rein to make that change whenever necessary. You still track what was done and when, but it doesn't need to go to the weekly CAB meeting or whatever. If it turns out these changes are causing outages, that rubber stamp gets revoked until you fix your poo poo and come up with a more reliable procedure. Not saying this is the greatest setup ever, but if they're going to go full ITIL on you, it makes change control more tolerable to navigate.
|
# ? Oct 13, 2016 14:11 |
|
toiletbrush posted:The other day I went to a training session about 'change control'. I understand that changes to live systems need some kind of control, but they way they've proposed involves every single change to any production system anywhere (there are around a hundred) going through one, single, centralised 'change advisory board'. Sounds like it's going to be a massive bottleneck and frictionfest. Shouldn't that sort of thing be split up and delegated to individual teams who know best?
|
# ? Oct 13, 2016 15:14 |
|
toiletbrush posted:The other day I went to a training session about 'change control'. I understand that changes to live systems need some kind of control, but they way they've proposed involves every single change to any production system anywhere (there are around a hundred) going through one, single, centralised 'change advisory board'. Sounds like it's going to be a massive bottleneck and frictionfest. Shouldn't that sort of thing be split up and delegated to individual teams who know best?
|
# ? Oct 13, 2016 16:41 |
|
necrobobsledder posted:Have you ever heard anyone mention the acronym "ITIL" anywhere in these conversations? What does ITIL stand for?
|
# ? Oct 14, 2016 04:34 |
|
nelson posted:What does ITIL stand for? A bunch of horseshit bureaucracy.
|
# ? Oct 14, 2016 08:33 |
|
Vulture Culture posted:Are you in a regulated industry? necrobobsledder posted:Have you ever heard anyone mention the acronym "ITIL" anywhere in these conversations? necrobobsledder posted:...most organizations that think it's good are authoritarian and want to disempower those closest to work from making decisions and to justify the existence of more managers rather than skilled implementors in an effort to control costs.
|
# ? Oct 14, 2016 10:43 |
|
toiletbrush posted:Who are you delivering software for? ... We are a .com selling household appliances, TVs etc. No physical stores at all so the whole business hinges on code and the development teams. I'm just coming out of a 6 month project whereby nothing was deliverable until right at the end, partly because we are poo poo devs who should have thought a few more steps ahead. But mostly because the business were very much "feature X can't go out until feature Y is 100% done", with sensible decision making we could have easily delivered incremental value and they could have easily cut losses, changed tack or evaluated performance at much earlier stages. But its 6 months in, we're committed now! Our head of development is actually awesome and will try to shield us from this poo poo, and encourage proper best practices. But the directors are a pain in the arse to deal with, to the point they can force crap like this through. Cancelbot fucked around with this message at 13:30 on Oct 14, 2016 |
# ? Oct 14, 2016 13:21 |
|
Cancelbot posted:We are a .com selling household appliances, TVs etc. No physical stores at all so the whole business hinges on code and the development teams. I'm just coming out of a 6 month project whereby nothing was deliverable until right at the end, partly because we are poo poo devs who should have thought a few more steps ahead. But mostly because the business were very much "feature X can't go out until feature Y is 100% done", with sensible decision making we could have easily delivered incremental value and they could have easily cut losses, changed tack or evaluated performance at much earlier stages. Your boss sounds like they own, but the company sounds bad. That's tough.
|
# ? Oct 14, 2016 13:32 |
|
Starting a new job Monday. No idea who my boss is, asked a couple times already. Normally, no big deal since I'd just show up and wander around looking for familiar faces. But it's a remote position. I'm sure it'll work out fine eventually, but it amuses me. Also, my main contact is out on vacation.
|
# ? Oct 14, 2016 14:28 |
|
Gounads posted:Starting a new job Monday. No idea who my boss is, asked a couple times already. My prediction after having watched Office Space: Everyone will forget about you but the paychecks will keep coming.
|
# ? Oct 14, 2016 15:36 |
|
|
# ? May 10, 2024 01:52 |
|
nelson posted:My prediction after having watched Office Space: Everyone will forget about you but the paychecks will keep coming. This would be ideal. Unfortunately I don't know where to send invoices yet.
|
# ? Oct 14, 2016 16:42 |