HNHacker News
TopNewBestAskShowJobs

pjbster

176 karma · joined May 30, 2016

submissionscomments
pjbster··on Scrum disempowers developers
Sometimes - heck, perhaps most times - when Scrum is involved, some organisations are just too fscked to save. Over time, the "leadership" have reacted to market forces by imposing variations on processes, cuts, reorgs and redundancies. The result is a workforce who, even if they were given total autonomy and unlimited resources, would be unable to turn things around.

Not that these execs would see it like that. Instead, they hear this Scrum thing has worked wonders elsewhere so they wheel it in and, if it fails this time, it's clearly the crappy workers who are to blame. "Management was right about that all along."

I take other commenters' point about strong leadership making a difference. Fully agree with that. But some situations are simply unrecoverable no matter how great the team.

pjbster··on The Collapse of Complex Business Models (2010)
One fun experiment would be for a company to place all it's middle managers on gardening leave. For a year. Give them the same ability to influence as that of a very minority shareholder (i.e. none).

Then see how the bottom line fares. I see three outcomes:

  1. Profits are down. Those managers added value after all.
  2. Profits about the same. Those managers added nothing.
  3. Profits up!! Those managers were dragging them down the whole time. Who knew?
Letting highly paid employees go is, of course, expensive. But in 2 out of those 3 scenarios the company can afford to simply keep them on gardening leave indefinitely.
pjbster··on Ask HN: What mistakes in your experience does management keep making?
Sticking around and believing that they're essential.

When organisations are formed of people with perfectly aligned incentives, they don't need to be managed. Such people know what needs to be done and have the expertise and autonomy to make it happen.

Of course, such an organisation is hopelessly unlikely to retain this utopian state as the number of employees rises above 2. And it becomes vanishingly improbable if outside funding is involved.

So management is the act of taking care of something which can't take care of itself. A symptom: like an antibody, it arises when a system gets of out whack and its continued presence indicates a chronic condition.

The best thing management can do is to put systems in place to make itself redundant. So, by this definition, anything it does which promotes the opposite goal is a mistake.

pjbster··on OpenVMS State of the Port to x86_64 [pdf]
For those interested in DEC history, HP have put the text of their Digital Technical Journal articles online at http://www.hpl.hp.com/hpjournal/dtj/past.htm (no figures, alas).

Volume 4 issue 4 introduced the Alpha architecture and includes an article describing the effort to port OpenVMS: http://www.hpl.hp.com/hpjournal/dtj/vol4num4/vol4num4art7.pd...

pjbster··on What If Everyone Voted (in the UK)
My level of support for the EU is neither here or there but I do get really irate when my country's PM presumes to act according to "the will of the people". We simply don't really know whether that's true or not and I think it'd be nice to find out (somehow).
pjbster··on What If Everyone Voted (in the UK)
Yes. Or they could have said that a certain number of votes would be required (equal to 50% of the electorate). So, even if only 51% turned out, the result would stand if 98% of them voted to leave.
pjbster··on What If Everyone Voted (in the UK)
I'm generally not in favour of mandatory voting either but I do think one way of moving forward with Brexit would be to demand a vote from those who didn't turn out for the referendum. When the direction of a nation has been decided by less than a majority (in this case, by 34% of the electorate?) I think special measures can be justified.

It shouldn't be hard to identify those voters; I always have to hand my voting card to someone when I go to a polling station so I imagine there are lots of lists somewhere of people who were registered but didn't turn up.

pjbster··on Eating to Break 100: Longevity Diet Tips
As with so many of these kinds of articles, it skips talking about what they don't eat: sugared drinks, refined carbs, industrially refined oils, factory farmed animal products, etc. etc.

Living healthily is really, really simple: if it comes in a packet, don't eat it!

pjbster··on Ask HN: How do you lose weight?
Just decide to do it. You'll work it out. You already know what you need to know - sugar is bad and if it comes in a package it's almost certainly unnatural.

Take a look at http://www.marksdailyapple.com/

If there's one thing you need to hang on to it's this: no matter how starving you feel, you're not going to die if you don't eat something! Your body can go for three weeks and more without you taking in anything more than a few glasses of water each day.

In other words, if you can't eat something natural, don't eat anything at all.

You. Do. Not. Need. That. Snack.

(Personal anecdote: I trained for an ultra endurance event a couple of years back and used to set off on 100-mile rides without eating breakfast first. Once your body adapts, you'll be amazed at how little you actually need to consume to really feel alive.)

pjbster··on Stop the Daily Standup Meeting
I think some organisations have deeper problems [than developer communication] which SCRUM and Agile are simply not equipped to cope with.

Here’s one example:

* Moving functionality from a legacy^2 to legacy (mainframe to client-server)

* Target system groaning under 15 years of neglect, developer outsourcing, technical debt and band-aids. Source system simply untouched for nearly 20 years.

* Source and target systems inherently un- unit testable

* Mediocre developers with no intrinsic sense of craftsmanship nor any desire to acquire some

* Developers with no experience of legacy codebase so completely unqualified to estimate cost of stories

* Culture of fear reinforced by performance reviews, stack ranking and PIPs

* Locked down QA systems and silo’d resources

Any one of these would be a project killer but my last employer suffered from all of them in the same project and showed no inclination to address any of them because they were deemed to be out of scope. But it was totally fine to tie up 10 people for 15 minutes every day to enable the PM to derive a magical velocity curve to feed back to the stakeholders so that the company could demonstrate how effective this SCRUM process was going to be.

pjbster··on Stop the Daily Standup Meeting
It's more than a loss of time - there's also the context switch and attendant energy expenditure to restore the "head space" after escaping the meeting.

If the discussion can add more value than those costs, then go for it.

pjbster··on Is Every Speed Limit Too Low?
Case in point: the traffic lights at the bottom of Ludgate Hill were out this morning so cars and bicyles had to negotiate the intersection without any form of communication or signalling. Nobody died.
pjbster··on London Taxi Company opens £300M Coventry plant for electric cabs
Thanks for that. It's convinced me to find a new route home :-)
pjbster··on London Taxi Company opens £300M Coventry plant for electric cabs
I walked along Marylebone Road last night (6:30 pm) and experienced the traffic fumes first-hand. Truly awful. The most alarming thing is that this is the route I normally cycle along and I've never noticed the pollution in this way before (certainly due to my cognition being monopolised by situational dynamics - it's a busy road!). Makes me wonder whether the respiratory illness I'm suffering at the moment is related.

Clean air can't come soon enough to London.

pjbster··on Britain's GCHQ agency denies wiretapping Donald Trump
Thank you. I feel suitably enlightened :-)
pjbster··on Ask HN: Anybody who left IT?
To avoid having to explain themselves, some IT execs simply outsource their imaginations and adopt ITIL.

It's not hard to find a variety of diagrams purporting to illustrate how the myriad management functions in ITIL fit together. You'll see lots of silos with names beginning with "Service..." this and that (because, in a massive injection of double-speak, IT likes to describe itself as a service rather than what it really is: a racket).

Here's a typical example: http://www.itsm.hr/brosure/ITSM_CHART_V2.0.pdf

I dare you to find an appropriate place in this diagram to place your dev team. Pity the poor CIO: not only does he/she have to decide whether to buy or build but the build option comes with strings such as also having to invent a management process to go with it!

So, again, most "Service Design" managers don't bother: they just hire the nearest TOGAF-certified architect team and hand over all development to them.

It's hardly surprising that corporate dev team managers often find themselves in the role of "supplier", on the outside looking in. No-one with ambitions in the organisation wants the job and anyone who ends up in there has probably done something wrong or emerged as a natural also-ran in previous political games.

What this means to devs (particularly) and some testers (depending on which box they live in) is this: They Are (so) Fscked.

I saw my role become disenfranchised over the course of 6 years as a result of a regime change which imposed ITIL upon us. I avoided suicide by jumping into the contractor market and, through nothing more than sheer luck, have found myself working for a small autonomous team looking after an important business function (worldwide royalty payments). My boss has a rebellious streak which I strongly identify with and she also has sufficient career capital to keep her team identity intact.

I'd like to leave IT and do something which delivers more personal self-worth (pimp or drug dealer at a minimum; international arms dealer if I just can't do without the Bond lifestyle) but I need to clear some capital debts first so it's contracting for the next 5 years or so. Beyond that? I'm just hoping there's still a world left to walk out into.

pjbster··on Britain's GCHQ agency denies wiretapping Donald Trump
Aside: where on the scale of U.S. epithets would the term "wanker" fall? Would "cock-sucker" be about right?

(I got asked this very question by an American relation a few years back.)

pjbster··on The Most Effective Software Development Team
What also helped was the better communication that came with this team structure. Artists and developers weren’t seated across the hall or on different floors. The team sat together which meant that developers were seated right next to artists.

Interesting. Seems to advocate for shared office space and interrupting co-workers (later in the same paragraph).

The author clearly feels that there was a synergy there and doesn't presume to claim any wisdom as to why this was the case.

So we're left to tease out our own conclusions: keep team sizes small, cross-functional and in shared office space.

pjbster··on Stephen Hawking: This is the most dangerous time for our planet
"We now have the technology to destroy the planet on which we live, but have not yet developed the ability to escape it."

Interesting choice of word: "escape". Not: "fix".

pjbster··on Building a Bank with Kubernetes [slides]
You know, it's strange: when I worked for an insurance IT dept. we were informed that strict adherence to an ITIL-certified release process was essential to keep us "within compliance with FSA regulations - we need to do this in order to continue trading".

From experience, said process cost waaaay more than 0.5% of the budget. Time and cost overruns, massive overhead in personnel and a drain on mental resources which should have been spent on actual release quality rather than an audit trail meant to convey "Certified" quality. All in all, I'd say 50% of the costs of IT delivery were spent in plodding through the checkpoints with much of the other half being consumed by the interest on 20 years of technical debt accrued as a result of those very same resources being misdirected in such regulatory endeavours.

I recognise than I'm far too cynical to see regulation as anything other than a shield against liability. It's simply too obstructive to contribute to actual quality improvement. On the plus side, it does keep about 50% of IT personnel in a job.

So I guess you can count me in with the lovers :-)

pjbster··on Ask HN: Any nicer alternatives to Mint for personal budgeting?
Have you considered getting by without a budgeting app? I used to go through exactly this sort of mental exercise that evaluating and selecting the perfect personal finance app would bring. It's like I could solve my financial problems forever through the power of thought. That my ability to see where the money was being spent was somehow impeded because I lacked the right software.

In the end, there's only one rule that counts: spend less than you earn (or earn more than you spend - either way, you need to have control over at least one of these variables or you're totally fucked anyway).

Sorry to be so blunt. Of course, some people like the process of keeping on top of statement reconciliation - hell, I used to be one of them. And there's no doubt that watching your net worth increase will bring pleasure to your day.

But it's easy to become obsessed. It's only now that I've surrendered the "comfort" of knowing where my money went that I realise I was actually stressed out all the time. These days, I'm a little more relaxed about things - so long as we stick to normal spending patterns and don't splurge on spontaneous things, we'll probably be ok.

In my case, I can live with this level of uncertainty. Ignorance is bliss, and all that.

(I'll echo the other sentiments around here: YNAB was my favourite. I never tried Mint.)

pjbster··on Why cyclists should be able to roll through stop signs, ride through red lights
One aspect of safety which wasn't mentioned in the article is the moment when lights turn green and cars and bikes begin to move forward. There's a noticeable tendency for some riders to want to stay in front of the cars and this engenders an equally fierce desire in the drivers to overtake said cyclists. Road rage is almost unavoidable at this point.

I usually stop behind the lead car at traffic lights to avoid this; I can usually keep pace with cars (in London) but flaunting this by trying to race them away from the lights is just asking for trouble, not to mention more physically taxing.

So... if I'm on the front of a queue and can safely move away before the lights turn green, I'll do it because it puts distance between myself and the lead car, giving the driver more time to line up a safe manoeuvre around me once the traffic starts moving.

This has to be weighed up against the very real danger that the drivers will be fuming with rage at the arrogant cyclist in front and thus losing the senses of calm and serenity that I'm trying to spread :-)

pjbster··on Guerrilla Bike Lanes in San Francisco
Turns out it was only a proposal which was never tried after all:

https://www.theguardian.com/cities/2015/oct/27/cyclists-run-...

Johnson and Transport for London requested permission for a trial back in 2009, but it never took place. TfL has concentrated instead on remodelling junctions to allow “early release” (where cyclists get a green light before cars) and “hold the left-turning traffic” (keeping cyclists and cars apart on left turns).

pjbster··on Guerrilla Bike Lanes in San Francisco
I seem to remember a trial which was piloted in London (UK) a few years back which permitted a cyclist to go through a red light if turning left. Can anyone shed any light on how this worked out?
pjbster··on Why I'm not a big fan of Scrum
After working in Scrum for over a year, I find myself in violent agreement with every point in the article.

For me, Scrum has always been nothing more than an “Agile Bootstrap”. The core idea within it is very simple: try something and examine the results. Stick with what works and try alternatives for what doesn’t. Repeat. And, above all, learn.

So Scrum starts you off with a list of practices to get going with. The whole litany of backlogs, story points, sprints, daily stand ups and retrospectives is nothing more than a vocabulary - a pattern language for stakeholders. It’s got pros and cons - a good way to bring people together but it needs to be recognised as a crutch and ditched quickly before the team comes to treat it as an article of faith to be defended at all costs.

And this is where so many agile coaches fail in my (limited) experience. When I was undergoing scrum training, it was hugely disappointing to hear colleagues asking questions of the trainer along the lines of “Can a scrum master multi-task among teams like an anaesthetist in a hospital?”. Or “What does Scrum advocate when a production incident requires someone in the team to drop out and assist?”. Or “Can we have scrums of scrums?”.

The answer in every case is the same: try something - anything. See how it goes and decide whether to apply that approach again in future.

pjbster··on Adopting Feature Flag-Driven Releases
I dabbled with feature flags once. We had... issues.. with our DBAs who, it seemed, couldn't make any changes to a database without taking it offline for a cold backup first. We floated the idea of feature flags as one way to perform certain live deployments. The ops guys refused outright for reasons which stank of protectionism at the time.

Time passed. I was tasked with rewriting a fairly complex piece of code and I put the new code behind a feature flag. At the time, there was no facility in place to support feature flags so I had to introduce one as part of the deployment. It all went into a test environment but the deployment scripts didn't set the config to enable it. This was deliberate because I wanted to verify that we wouldn't change existing behaviour (i.e. break anything) by deploying with the flag disabled. The testers, however, were looking for the new functional behaviour and raised a defect.

- when the project manager found out, he claimed that this was responsible for a timescale slippage (the delivery into test was massively late, naturally)

- when my line manager found out, he told me I'd be fired if I tried a "stunt" like that again

- when the DBAs found out, they decreed that, henceforth, all database updates which resulted in a "functional change" would be subject to the full release process (i.e. cold backups).

So the experiment was a total failure. Or a total success. It depends on how you look at it; one amusing moment was when the PM came out of a meeting and, with some gravitas, suggested that we might have to rip out half the new code in an effort to salvage the timescales. When I demonstrated that we could achieve that in, oh, about 5 seconds by flipping the flag, the notion went away. The guy was a contractor and I suspected he was just trying to create more work to keep himself around.

To me, the biggest question with feature flags is managing the removal of dead code. In this case, it was never removed because the task of deleting it would trigger a full project release cycle and the company didn't see the point of spending the money.

pjbster··on Ask HN: Finance industry devs, where do you put the business logic, DB or Code
I, too, dev and maintain Oracle systems with BL implemented in SPs.

Most of the time, the code I work with operates on a handful of records per transaction; bulk operations require entirely different tradeoffs and I don't have much to offer here.

All of the problems I've seen stem from the understandable urge to treat the database as a giant global variable. Oracle provides a myriad of conveniences to facilitate this from within pl/sql so developers do exactly that:

- In the middle of some logic and realised you needed another piece of data to work with? Just splat another inline SELECT in the code and move on.

- Want to update a table but you can't find an existing SP which writes what you need? Just splat an inline UPDATE in the code and move on.

Over time, these SQL statements littered throughout the stored procs become a complete mess. Another issue is that client code is often given unfettered access to the base tables. If those tables don't force data integrity either by constraints or triggers, then god help you if you want to update any column anywhere in your database: you simply cannot know which clients may break.

Oracle pl/sql offers both FUNCTIONs and PROCEDURES and these form the core of a number of idioms I've come to recommend:

- if your pl/sql performs any side effects, it's a PROCEDURE. End of.

- FUNCTIONs never contain side effects (or use OUT parameters).

- PROCEDURE status is "toxic": if a FUNCTION calls a PROCEDURE, it must also become a PROCEDURE.

- client code never accesses base tables. Wherever possible, try to provide access through a package API: instead of SELECTs, call functions which return REF CURSORs, instead of UPDATEs and INSERTS, call PROCEDUREs. These mechanisms are all supported by both jdbc and .Net though you'll have to do a bit more work.

The key thing is to put your BL in functions, not procedures. They're much easier to test, especially if your variables can be passed in as parameters rather than being lifted from tables via the seductive inline SELECT option.

PROCEDURES are always tricky to test. Try to keep them as simple as possible and try to minimise conditional logic leaking into them.

Data integrity is difficult to get right. Oracle provides table constraints and triggers but beware of putting BL into either of them (the dividing line is often blurry and the risk is that your future applications may be overly constrained whilst your existing ones may come to rely on leaky assumptions if you relax the integrity guarantees). I've not seen constraints or triggers used to great effect anywhere, to be honest. Most shops avoid them, it seems.

The easiest way to stay on top of data integrity is to force all updates through higher level SPs. Don't let clients touch base tables and, instead, force them to call facade packages. Write one facade package per client - Oracle will mark the package as invalid if you modify anything in the execution path of said package and this provides a valuable tool for impact analysis.

CI is nearly impossible in a live database unless you're running a version of Oracle with Edition Based Redefinition. The only alternative I can think of is pulling your logic out into middleware libraries.

pjbster··on Why Most Unit Testing is Waste (2014) [pdf]
And here's some SQLite perspective: https://news.ycombinator.com/item?id=4616548
← PreviousPage 3 of 3