@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.

cammerman, to random
@cammerman@mstdn.social avatar

The great dirty secret of the software industry is that an awful lot of the work that is critical to sustainably build and maintain a software system/product/whatever only happens in the wild because one person with a little extra care and a little extra time decided "I'm not going to wait for this to get priority. I'm not going to wait for permission. I'm just going to do this because it should be done, and damn the consequences."

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, 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, to random
@cammerman@mstdn.social avatar

One of the great unsolved technical problems of our era has been and continues to be calendar syncing and sharing.

cammerman, to random
@cammerman@mstdn.social avatar

I'm giving some more Brandon Sanderson a try. I have a bunch of friends who are big fans and I keep feeling like I'm missing something.

I read the Mistborn series and mostly liked it, with caveats. I'm now on the second book of the "second Mistborn" series and I'm not sure I will make it to the end of this series.

I have struggled to put into words my feelings about Sanderson, and especially about this second series. But I think I just had an epiphany.

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, to random
@cammerman@mstdn.social avatar

The longer I spend in the software industry the more I think that the primacy of "don't repeat yourself," in all its many forms and scales, is a tragic flaw.

I think it is far, far harder than most anyone would like to admit, to write something that is usefully and sustainably reusable over any but the shortest distances in space and time.

cammerman, to random
@cammerman@mstdn.social avatar

Slack is crucial for scaling and for organizational health in general.

People with slack have headspace and time to improve things, to think ahead, to sweep out the corners, to prepare for what's coming next. And they will see these needs before management does.

"Running lean" eliminates slack. This only works for a while, and only if you have a flat org of highly self-actualized people who you give autonomy. And you'll still burn people out eventually.

cammerman, to random
@cammerman@mstdn.social avatar

Why is it that so many development teams, when presented with an impossibly large load of work and/or conflicting priorities, don't even try to stand firm and say "this is impossible?" Far too often we proactively bend over backward to offer foolish compromises to make the ridiculous timelines work.

cammerman, to random
@cammerman@mstdn.social avatar

Yes. Good quote from Kent Beck. https://aus.social/@grassdog/110881312381074483

Business changes. The delay in consistency between what the business is/wants and what the software does, is something that needs to be managed actively. Unmanaged, you can end up where the perceived value of the software is overshadowed by the inertia it presents to necessary change in the business.

This is an unhappy position to be in as a software team. It's frustrating for the team, it also it can foster resentment from the business.

cammerman, to random
@cammerman@mstdn.social avatar

Embrace asynchrony.

No I'm not talking about replacing meetings with emails and chat.

I'm talking about how modern programming is fundamentally asynchronous. We've worked hard to get to the point where we don't HAVE to block on local operations like disk access and user input. Not to mention the fact that everything has a distributed/remote aspect to it now.

This ain't going away, it's here to stay. Synchronous isn't the default, it's the exception.

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, to random
@cammerman@mstdn.social avatar

The interesting, rewarding labor--in my opinion--is not in solving the puzzle, but in making the solution resilient and sustainable.

Software grows like a garden. You can you ignore the bugs, weeds, grass, soil, etc. until they become an active and obvious problem. But then fighting them will overwhelm every other aspect of your daily labor. Every day will be a pitched battle with every unpleasant aspect of the job.

cammerman, to random
@cammerman@mstdn.social avatar

I bought a new vertical mouse this week, because my existing ones were dying, and I had come to the realization that they were too big for my small hands.

I got the new one and it fits my hand and I am happy. I'm reminded of the first one I got, which resolved pain and numbness I was having, overnight.

I have to say a deep and heartfelt thanks to @shanselman, for one day many years ago blogging about his vertical mouse. It changed my life in a small but significant way.

cammerman, to random
@cammerman@mstdn.social avatar

Sometimes when using the Azure portal I get to wondering.... Were humans involved in designing this? I get the sense that this user experience is not actively designed. Parts of it may be. The overall structure may be. But I suspect that the assemblage, the aggregation, of all of these parts, is just the result of a machine following rules operating over the small parts, and no one is really thinking about whether it makes sense when it all comes together.

cammerman, to random
@cammerman@mstdn.social avatar

"We believe any deceleration of AI will cost lives. Deaths that were preventable by the AI that was prevented from existing is a form of murder."

No. It is not. This is motivated reasoning, and more than that it is either unhinged, bullshit, or both. There is no evidence, theory, or hypothesis driving this vision of the future. It is entirely the fantasy of someone who has invested unthinkable amounts of money into the technology at issue.

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

An extremely common antipattern I've seen in UI code that has something like a "ViewModel" is this:

Treating the ViewModel as just a transparent bag of state, which the View then has intimate knowledge of, and sticks its fingers into it to figure out what to do on the screen.

cammerman, to random
@cammerman@mstdn.social avatar

Ruminating this morning on the fact that so much of the ecosystem of libraries, frameworks, and tools for software development is about moving fast.

Speed isn't something a tool can give you. It can give you an illusion of speed, by giving you a boost off the starting line. But that boost burns off rapidly.

The thing about optimizing for time to market is that you don't go to market just the one time. You go back again and again with incremental updates, changes, additions, and fixes.

cammerman, to random
@cammerman@mstdn.social avatar

I think I finally have some words for my feelings regarding the "none of us knows what we're doing, we're all just trying to suck less" perspective.

Saying specifically that thing is "nice" but not "kind." It is achieving good feelings and psychological safety by way of deception.

I remain hopeful that we can be welcoming to beginners and avoid gatekeeping, while still acknowledging that there is actually a lot of accumulated knowledge and wisdom that is beneficial to learn.

cammerman, to random
@cammerman@mstdn.social avatar

Every company I have worked for has had trouble with identifying and prioritizing work that isn't either a) expected to be beneficial to the software's users or b) expected to contribute to revenue.

Software, even product software that we charge money for, has many stakeholders other than the users and "the business".

cammerman, to random
@cammerman@mstdn.social avatar

A vision of near future:

Microsoft Recall on your work PC, keeping a stockpile of screenshots. LLMs used to "understand" your work activity by rifling through the screenshots. Your manager getting a report generated from that information, and using it measure your productivity and performance, accuse you of time theft, etc.

cammerman, to random
@cammerman@mstdn.social avatar

I've seen some people beating up on Team Topologies lately... I've read blogs and watched talks, but not read the books, so I won't defend it, exactly. But to me it seems like folks are misreading.

Surely it's about team organization as much as it is about software organization. And how both affect each other. Saying Team Topologies tells you who you shouldn't have to talk to based on the system architecture is, I think, exactly inverting the intended message.

cammerman, to random
@cammerman@mstdn.social avatar

Re: that last RT, the blog post from @norootcause ... This goes well with my continual banging about "design for change." This negotiability at the edge of the system is where a lot of that change comes from.

Software-making involves a lot of sense-making. And we need to be very, very careful in this, because we will by nature tend toward "seeing like a state." In making models that are legible to us, the makers, we too readily clap irons on the people subject to our models, who need fluidity.

cammerman, to random
@cammerman@mstdn.social avatar

I was today years old when it occurred to me upon reading the phrase "with kid gloves" for the 1000th time in my life, that "kid" is the word for a juvenile goat.

And I thought maybe "with kid gloves" doesn't mean some kind of gentle glove for dealing with children, but rather a fine and supple leather made from the skin of juvenile goats, which might give the wearer dexterity and sensitivity not achieved with other kinds of work gloves.

And, in fact, that is exactly what it means. ✨🎓

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