@cammerman@mstdn.social
@cammerman@mstdn.social avatar

cammerman

@cammerman@mstdn.social

Hobbit tendencies. Indoor enthusiast. Books and games.

Software architecture. System design. Tidy first. Slow is smooth and smooth is fast.

Humane management. Sustainable business.

Democracy. People before property. Freedom from religion. We're all in this together.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

marick, to emacs
@marick@mstdn.social avatar

I am being a good little programmer and adding docstrings to some Elixir code. I hate looking at it. It so gets in the way of the code; see below.

I want an #emacs keypress that hides all lines between two regexps (One for @…doc…”””; one for the ending “””.) Weirdly, I can’t find anything. I used to be good at Elisp/Emacs programming, but I pretty much stopped doing that around 30 years ago. So looking for something similar I can hack on (or package that obviates the need to).

Any pointers?

cammerman,
@cammerman@mstdn.social avatar

@marick For a long time I have been and continue to be conflicted about internal documentation. Where I have landed is similar to unit tests. It may be worth doing well, with full team buy-in, but it isn't worth the effort in any other circumstance.

Its greatest value is after a full team turnover, or when a codebase is in "maintenance mode." But that is also the time when you should assume the worst and not trust it at face value.

cammerman,
@cammerman@mstdn.social avatar

@JeffGrigg @marick I agree... So long as the team can come to an agreement on what code looks like that doesn't need comments. I have a strong opinion, but am not convinced this is an objective thing.

cammerman, to random
@cammerman@mstdn.social avatar

I grew up on sci-fi stories about superhuman AI that had bit-perfect recall of nearly infinite data and could do intricate and sophisticated math like it was a triviality.

And today, OpenAI and these other hucksters have something that is literally incapable of remembering what it, itself, just said, or reliably adding two single digit numbers, and they have the temerity to call this thing "AI."

This is computing snake oil.

cammerman, to random
@cammerman@mstdn.social avatar

Good long read on AI hype: https://www.wheresyoured.at/expectations-versus-reality/

A choice quote: "That’s ultimately the problem with the current AI bubble — that so much of its success requires us to tolerate and applaud half-finished tools that only sort of, kind of do the things they’re meant to do, nodding approvingly and saying “great job!” like we’re talking to a child rather than a startup with $13 billion in funding with a CEO that has the backing of fucking Microsoft."

cammerman, to random
@cammerman@mstdn.social avatar

There should be a special word for the HTML and CSS cruft that accumulates over time in a codebase because programmers repeat it without taking the time to understand what it is for.

E.g. "This part needs to look mostly like that part. So I'll copy-paste and then replace the content. But oh, that doesn't look quite right, so tweak, check, tweak, check, tweak, check... Done!"

cammerman, to random
@cammerman@mstdn.social avatar

One of the things I find exhausting and off-putting about the world of software is the rapid obsolescence of everything.

Not just products, but also tools and platforms.

There are very, very few equivalents to "buy a lawnmower, tune up and winterize every year, and use it for 20 years." By the third year of ownership it would be impossible to buy some subset of the air filter, the oil filter, the spark plugs, the blades, the wrenches, or the nuts. By year 6 it would be all those plus gas.

cammerman, to random
@cammerman@mstdn.social avatar

I am also reading 'Translation State" by Ann Leckie. It is a science fiction book set in the same world as her "Ancillary Justice" series (which is also great!) It stands alone, no need to read the others first. And again, I can't recommend it enough.

It's an amazing book about identity and family, alienation and acceptance, gender and sexuality. It's nuanced, artful, and extremely well-written. I love it.

A lot of others try and fall short of what this book accomplished. It's a masterwork.

cammerman, to random
@cammerman@mstdn.social avatar

I think more people should understand the concept that "The dose makes the poison." It is a bit of ancient wisdom that is surprisingly broadly applicable in a figurative sense, and also happens to be literally true.

https://en.wikipedia.org/wiki/The_dose_makes_the_poison

cammerman, to random
@cammerman@mstdn.social avatar

I understand the advice to build a website for your thing rather than just using a Facebook page, and boy do I ever agree with every criticism of the Facebook path.

But...

From the standpoint of a non-technical independent business owner, I imagine that they don't feel particularly better or worse between the two common situations: Beholden to and constrained by Mark Zuckerberg versus beholden to and constrained by a freelance web dev/designer.

cammerman,
@cammerman@mstdn.social avatar

Relatedly: I think developers (myself included) have a hard time appreciating that automation isn't a liberating and empowering prospect for non-programmers. It is such to us because we have the skills necessary to change what we build after we build it. To a non-developer, however, they are actually trading away a significant amount of power and autonomy by locking up their processes behind a skill gate. No longer can they just talk and agree to a modified way of working and immediately benefit

cammerman, to hiring
@cammerman@mstdn.social avatar

Let's try one with some hashtags. I'm #hiring a staff software engineer for my product dev team.

Looking for experience with single-page app or distributed systems architecture. Practices like TDD, pairing, CI/CD. And most importantly, leading and mentoring other devs.

Day-to-day my team is remote, though there are some location limitations, and US only.

Check out the posting and apply: https://lnkd.in/g9d6pSDG

#FediHire #jobs #GetFediHired

cammerman, to random
@cammerman@mstdn.social avatar

I'm hiring a Staff Software Engineer to work on my team, and we haven't had many applicants, so I want to get the word out.

If you like my toots about software and business, this is also what I bring to the work I do for my team. My peer managers and I are all trying to make this place one that we would have wanted to work in when we were coming up.

It's posted as "hybrid", but our team operates remote-first, & so does much of the dept. Check it out, and please boost!

https://lnkd.in/g9d6pSDG

cammerman,
@cammerman@mstdn.social avatar

@sarah The system is primarily C#, Javascript, and some SQL. We're open to background in similar languages. The architecture (single-page apps and distributed systems), quality practices, and team mentorship stuff are the really important parts. Languages are easy to learn, that stuff is the hard stuff.

cammerman,
@cammerman@mstdn.social avatar

@sarah Yes, that link is the preferred way to get resumes to me.

cammerman, to random
@cammerman@mstdn.social avatar

Something that Lean Software Development nailed perfectly more than 20 years ago is this:

Software Development is a prototyping activity. A piece of software is a prototype that goes directly into production, which is admittedly different from most other prototypes.

At every step along the way we are building and deploying something that has never existed, and will not be repeated. We never go into mass production. The next version isn't just another instance, it's a new prototype.

cammerman, to random
@cammerman@mstdn.social avatar

Don't let your own work ethic become a load-bearing workaround for a systemic dysfunction in the company that employs you.

cammerman, to random
@cammerman@mstdn.social avatar

People and organizations tend to drift toward waterfallish project management due to low-trust or high-risk situations.

(Oh, and trust and risk are mutually, inversely reinforcing. Low trust ➡ higher risk. High risk ➡ lower trust.)

It's not particularly good at addressing these challenges, but it seems to offer assurances, and that's what people want. They want documented commitment. They want to know they can lay blame. It makes them feel better.

cammerman,
@cammerman@mstdn.social avatar

Why do people need to feel better?

Because everyone knows implicitly that projects do not go to plan. Because nothing on earth ever goes to plan without any surprises. So people need escape hatches.

Waterfall often doesn't really give any ways to actually deal with things not going to plan. Maybe you get Change Requests. Or maybe you build in explicit (or implicit!) padding to make room for the unknown. That's usually about as good as it gets. Beyond that all you can do is blame.

cammerman,
@cammerman@mstdn.social avatar

Agile as Manifesto'ed doesn't directly address much of this. The one thing it does is to try to raise the baseline level of trust. Which as I noted, tends to reduce the baseline level of risk.

Agile as practiced tries to take on some of the problems more directly.

cammerman,
@cammerman@mstdn.social avatar

Specific Agile methods of project management describe a reshaped mode of work that not only assumes and builds trust, but also shifts risk forward. Shifting risk forward inherently reduces total risk, because you have less sunk cost to lose if the risk manifests, as well as more time and more resources remaining to adjust course.

The remaining and maybe hardest piece for most businesses to accept is the explicit loosening of commitment. The built-in idea that scope is negotiable.

cammerman,
@cammerman@mstdn.social avatar

But as I've said many times: Your project's scope is negotiable. The only question is whether you're going to participate in the negotiation, or have the universe deliver its terms back to you in absentia.

cammerman,
@cammerman@mstdn.social avatar

P.S.: Notice that I said nothing about any of the techniques you learn from Scrummaster training or whatever other source of Agile methodology you might pick.

That's because none of that really matters. Those are tactics. Sometimes they work, sometimes they don't. It seems we haven't really learned how to tell when a particular tactic will or won't work, what they are intended to achieve, or alternative ways of achieving those things. But I digress...

cammerman,
@cammerman@mstdn.social avatar

P.S. cont'd: What does matter is what I laid out up front: increase trust, be honest about priority, frontload risk, and accept that scope is negotiable.

Accomplish those things however you want or need to. That's it.

cammerman, to random
@cammerman@mstdn.social avatar

I would like to lobby for my company to pay for pair/mob/group programming training for my team/department.

Budget-wise, a semi-structured training program is probably going to work better than a longer active coaching engagement. Preferably with a remote option.

I'm aware of a couple folks who have done this, but don't seem to have anything active now.

Does anyone know of someone who currently, actively offers a pair/mob programming training course thing like this that I could reach out to?

cammerman,
@cammerman@mstdn.social avatar

@GeePawHill Remote is fine, even preferable, in my opinion.

On-site in Waukesha, WI (Milwaukee suburb) might appeal to department leadership, but is not a requirement.

cammerman,
@cammerman@mstdn.social avatar

@GeePawHill Thank you so much!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • InstantRegret
  • magazineikmin
  • modclub
  • khanakhh
  • Youngstown
  • rosin
  • mdbf
  • slotface
  • Durango
  • ngwrru68w68
  • thenastyranch
  • kavyap
  • DreamBathrooms
  • JUstTest
  • cubers
  • osvaldo12
  • Leos
  • anitta
  • everett
  • ethstaker
  • GTA5RPClips
  • tester
  • cisconetworking
  • megavids
  • tacticalgear
  • normalnudes
  • lostlight
  • All magazines