Earlier quoted context omitted.
They don't help you do that, even though poor non-technical managers might think they do. That's why good software projects don't use them. I don't see any story ticket velocity points used in Linux kernel development. You can't estimate non-trivial software, and if you are doing trivial predictable work, you should be automating it, not endlessly estimating it. I didn't say I would "deliver" anything. It's done when…
> You can't estimate non-trivial software, and if you are doing trivial predictable work, you should be automating it, not endlessly estimating it. so if you automate trivial predictable work (for example by making a CRUD app generator), you're moving to non-trivial software territory with costs unknown (as you said, you can't estimate), potentially very high
The worst programmer I know
641–650 of 668 posts
Re: The worst programmer I know
#642Earlier quoted context omitted.
Well, to each their own. I like to understand everything I do, at a very deep level, and I really enjoy learning that kind of stuff. I started as an EE, so my understanding sinks down into the FET junction. My first software was machine code, so it’s been a long, strange trip. One thing that geeks love doing, is telling other geeks they are bad at what they do. It gets a bit grating, but I’ve come to the realization…
It's good that you know and understand things at a deeper level. That should make you even better equipped to design simple interfaces that require as little depth of understanding as possible from the next person. Similarly I've happily spent my couple of years with functional purity and higher-level types in academic languages - function signatures sometimes orders of magnitude longer than the implementation itself…
I write code that I want to see in a year.
You can see my documentation philosophy in this treatise: https://littlegreenviper.com/miscellany/leaving-a-legacy/
Re: The worst programmer I know
#643Earlier quoted context omitted.
The two are not incompatible. I'll type all class properties and functions, but still use try/except on dict access or function calls.
It's not about incompatibility it's about safety. You drive with air bags or you don't, those two concepts are NOT about incompatibility. It doesn't even make sense. If there are situations where you have no choice but to drive without airbags, those are holes in safety. Essentially if you have to have runtime checks to prevent the program from full on crashing those are holes. Not everything is checkable with static…
So for opening a file for example, using try/except instead of checking if the file exist and is readable first.
Both achieve the same results but the first is more "pythonic".
My point is that this way of writing code is not at all incompatible with using a type checker for said code.
Re: The worst programmer I know
#644Some 20 years ago, I worked at a moderately large software company that sold a desktop application for Mac and Windows. The team had mostly Mac experience and they were just getting their feet wet with Windows. So naturally the Windows version had some problems. At the time, I was known as a "Windows expert", so they hired me to help improve that version and help the team get more familiar with Windows programming. I…
I had a similar experience to yours. Back when I was the equivalent to what is now staff engineer, my team got a new boss. On paper, I didn't look amazing, but I was constantly helping people. My new boss admitted at our first review that he had written up a performance plan, but threw it out not long before. What happened was we just transitioned to an open office, and he got to see the line of people who would come…
Did the culture around questions change compared with working from a shared office?
Re: The worst programmer I know
#645Personally I want the seniors on my team actually delivering on the really hard stuff. Helping juniors do their job is great and all, but you still need experienced people to work on the hard and complex stuff that juniors can't because they don't have the knowledge/experience/people-skills. No amount of pair programming can replace that. You don't want to be in a situation where you have really really well implement…
Re: The worst programmer I know
#646Earlier quoted context omitted.
It's not about incompatibility it's about safety. You drive with air bags or you don't, those two concepts are NOT about incompatibility. It doesn't even make sense. If there are situations where you have no choice but to drive without airbags, those are holes in safety. Essentially if you have to have runtime checks to prevent the program from full on crashing those are holes. Not everything is checkable with static…
Not sure I understand your point, there will always be runtime checks in any non-trivial application. Typically these will be for things outside of the code, for example: network status, file access, user input, external input (think JSON parsing), hardware requirements, etc So for opening a file for example, using try/except instead of checking if the file exist and is readable first. Both achieve the same results b…
I'm saying "incompatible" isn't even a relevant concept here. Here's an analogy:
You're telling me that running with shoes is compatible with running without shoes thus I can run with one shoe on one foot and the other foot is barefoot.
The goal is to objectively put shoes on both feet. Sometimes you're missing a shoe so you have no choice. But this has nothing to do with "compatibility" it's a completely different thing.
We are getting a bit into pedantic territory here, but THAT was my point and I am simply clarifying it because you MISSED the point.
Re: The worst programmer I know
#647Earlier quoted context omitted.
> You'll implement it, get on with your day, and not at all think about why the answer is what it is. this is an incorrect assumption. some people (like me) have an analytical mind. if I am given an answer, I will usually reverse it back to the question, so that I understand how it came about. or I will ask follow up questions until I have that understanding. all this method is doing is forcing multiple people to go…
Just because you're a special snowflake (you aren't, but keep believing it if it works for you) doesn't mean that the discovery process isn't the best approach for teaching most people things. Hearing or reading something is the lowest form of learning and generally results in the lowest retention. > thats just a huge waste of time. Instilling knowledge and discovery rather than rote completion of work based on other…
Re: The worst programmer I know
#648Earlier quoted context omitted.
Just because you're a special snowflake (you aren't, but keep believing it if it works for you) doesn't mean that the discovery process isn't the best approach for teaching most people things. Hearing or reading something is the lowest form of learning and generally results in the lowest retention. > thats just a huge waste of time. Instilling knowledge and discovery rather than rote completion of work based on other…
> Just because you're a special snowflake (you aren't, but keep believing it if it works for you) Someone who makes a comment like this, isn't arguing in good faith, or even intelligently. So I will give this comment the respect it deserves: none.
Re: The worst programmer I know
#649Earlier quoted context omitted.
That's one possible union architecture, sure, but you're missing the forest for the trees. A union offers job security to reduce the risk of "managing up."
> one possible union architecture It's the one used by all the major ones: airlines, auto manufacturers, and teachers. What institution do you know of that has a greater emphasis on measuring performance?
Re: The worst programmer I know
#650Earlier quoted context omitted.
For all a lot of people dump on Scrum Masters and Agile Coaches . . . this is part of who the good ones are supposed to be.
Oh No! Good people amplifiers are domain/technical experts; Scrum Masters/Agile Coaches are neither.
The best amplifier I've met was hired as a junior coder to my team and was paired with a couple of 10x coders on a project with a client who was "hands-on" and loved to micro-manage, having been a software developer themselves a long time ago.
The Amplifier's coding output wasn't that good, but the team as a whole was doing better than before so I investigated.
Turns out the 10x guys weren't that keen on communicating with ... well anyone outside of the team, much less with non-technical clients (or technical clients who loved micromanage). Both were your stereotypical cold pizza and warm cola coders with limited social skills. They could kinda sorta manage the meetings and emails directly from customers but didn't exactly relish it.
The junior hire was more like a 0.5x coder, but had ample social and organisation skills and worked extremely well as a liaison between the team and any external contacts they needed, taking over most "useless" meetings with the product owner and customer.
The junior coder ended up receiving some training and was "promoted" to a Scrum Master/Producer/Project Manager (the exact title escapes me) for the team. Everyone was happy and productive.