HNHacker News
TopNewBestAskShowJobs

struppi

1,007 karma · joined August 8, 2011

Independent consultant since 2006. Helps his clients become better at developing high-qualty software. Java, Clojure, .NET, ... . Agile enthusiast, bonsai gardener, chili fan, amateur cook, rc car racer, climber.

Find out more about me at http://davidtanzer.net Twitter: https://twitter.com/dtanzer Email: business@davidtanzer.net

submissionscomments
struppi··on Cargo Cult Agile (2008)
I have been thinking about this a lot, ever since I first read this article, some years ago.

Most of my freelance projects and technical coaching gigs in the last few years where at companies that were in or after their "Agile transition". And most got "Agile" horribly wrong.

I think cargo cult is an issue, but the problem goes deeper. I wrote a conference talk titled "Your Company Will Never Be Agile" around that topic. The gist is:

Many C-level executives want "true business agility" for their company: They want to be able to react quickly when circumstances change. Many "workers in the trenches" (developers, testers, ...) want to be able to do good work and provide value to the customer.

But in established companies, the organizational structure, processes and policies, annual budgets, KPI and bonus systems and middle management prevent the company from becoming truly agile.

So, young, small companies are more agile, because (among other things) they did not become a bureaucracy yet, they are mostly run by engineers with not much middle management, and because of survivor bias (they do not have a war chest yet, so those that were not able to react quickly do not exist anymore).

Unfortunately, there is no English recording (but the slides are here: https://speakerdeck.com/dtanzer/your-company-will-never-be-a... ).

struppi··on My phone was searched at LAX, which apparently is the new normal
A friend of mine was questioned at an international airport because he traveled from Europe with only hand luggage (he was only staying for 2 days).

So, i guess, not having something with (electronics, luggage, ...) you can also cause problems.

But yeah, this is only one anectote, so travelling without a phone / a laptop might be fine...

struppi··on My phone was searched at LAX, which apparently is the new normal
Every time US border security is being discusses here, I read comments about how things are bad at the Canadian or UK border too.

But does this really make an overreaction legitimate - That other countries are doing it too? Please think again before writing some knee-jerk reaction like "other countries are the same or worse"...

I was once treated unfriendly by Austrian border agents while re-entering the country. Yes, I experienced worse things when entering other countries. I still think that this particular incident was unacceptable, even though things are worse in other countries...

struppi··on iPhone App will not stay open - just flashes when trying to launch
Amazon, occasionally, but not always.

Also happened to me at least twice with Spreadshirt (but they don't really sell devices). Once the product clearly had a defect (part of the print was coming off), once I ordered it just too small.

struppi··on Spacecraft Power (2016)
Just a side note:

    This kind of research could help us on Earth, too. For example, 
    some of the heat that gets wasted when you drive your car could 
    be reused and put back into the car to charge the battery 
    or power electronics.
I once worked for a company on software that was, among other things, used to optimize the fuel efficiency of cars. There was some talk about how using Thermoelectric Generators (TEGs) to recover the waste heat form the exhaust pipe would be really cool - But that those TEGs were too heavy, too inefficient and too expensive to make any sense in a car.

So maybe, this is the breakthrough that was needed. If this technology could recover a few KW from the waste heat, this might greatly improve the fuel efficiency of cars. Or it is just some marketing talk, like, "Look, what we are researching here might be useful to YOU too"...

Can somebody comment on that?

struppi··on Qualities that I believe make the most difference in programmers’ productivity
While I agree with almost everything you wrote - I found that original post awesome and there are many great lessons in it - I don't see what this has to do with my comment.

Also, I don't get what I seemingly did not realize (mostly helping clients with legacy code on legacy platforms in legacy organizations to improve their quality and teamwork), or why this is disrespectful...

struppi··on Qualities that I believe make the most difference in programmers’ productivity
Yes, I have seen that too, but that's not what I was talking about.

I have heard about a case where really the best programmer left, and now everybody else had more responsibility, had to learn about parts of the code they did not know previously, had to fix harder problems.

So, everybody else was getting better because the one person who could help with the hard stuff was not there anymore.

But I honestly can't remember where I heard that...

struppi··on Qualities that I believe make the most difference in programmers’ productivity
Everything from the original post sounds reasonable, you should absolutely read it. Just some random thoughts to add to it:

* For most of my past clients, the skill / output of their programmers was not the bottleneck, even though they thought so. As long as something is not a bottleneck, there's not point in trying too hard to optimize it (since you can get better ROI somewhere else).

* Software is a team effort. Improving how the team works together / how work flows through the system probably has a bigger impact than raw programmer output (unless you are already very good at that).

* Improving the quality of your software (minimizing defects and rework) will improve the output of everyone in the team, regardless of how good they are.

* I have heard of cases where removing the "top programmer" from a team made the whole team more productive, even though an important person was missing. I don't have data to back that up, though.

Update: Thinking more about this... I have a talk called "Your Company Will Never be Agile", where I talk about how most companies actively prevent their people from doing a good job (by having policies, procedures and a company structure that is not suitable for empowered teams). And then, those same companies complain that they cannot get good people and how all the hip companies can get the 10x programmers that "we cannot hire".

I don't have an English recording of the talk, but I started a series of blog posts about it: http://devteams.at/your_company_will_never_be_agile_intro . I should maybe finish it some day ;)

struppi··on UK government considering a “cut-off date” for EU citizens’ rights to residency
...and it's also fairly easy to forsee that this rush will not happen, if, during the negotiations, the economy in britain goes further down.

But we will only know for sure in two years.

Anyway, I would have expected that there was a bigger rush up until the Brexit vote, when the British economy was very good and moving there seemed to be a safe bet (because it was in the EU and you could stay indefinitely).

struppi··on UK government considering a “cut-off date” for EU citizens’ rights to residency
OK, wait, this does not make sense. If half of Romania an Bulgaria wanted to come to the UK, they would already be there. Because free movement already exists.

Why would anyone decide now to "quickly move to the UK", just because they are leaving the EU? I would rather see this as a disincentive to move there, as a EU citicen, right now...

struppi··on US Customs block Canadian man after reading his Scruff profile
First, IANAL, and I am not an expert for the situation in the US. So you're probably right.

But in the UK, you can go to jail for not disclosing your cryptographic keys. https://en.wikipedia.org/wiki/Key_disclosure_law#United_King...

Here is a story of a person who went to jail for not disclosing his keys: http://www.theregister.co.uk/2009/11/24/ripa_jfl/?page=1 He said he kept silent "because of principle", but I guess he might also have gone to jail if he told them "I don't remember" - Officers would not believe him anyway.

struppi··on US Customs block Canadian man after reading his Scruff profile
They signed it.
struppi··on US Customs block Canadian man after reading his Scruff profile
This!

Also, clever technical solutions won't help when not having any data is seen as suspicious.

Like, you cannot tell them "I don't know my passowrds. They are in a password safe, and I do not have access right now". When the law says you have to hand over your passwords, "I don't know them right now" is probably not a valid excuse anyway.

struppi··on Bash and Windows Subsystem for Linux Demo [video]
I think this means that you can finally run EXEs in an easy way, directly from WSL. Without installing cbwin.

Basically this: http://stackoverflow.com/questions/38920710/how-can-a-run-wi...

struppi··on How Do You Know a Developer Is Doing a Good Job?
I generally agree with those measures, but 1 and 2 (estimate and deliver on time) are only really possible when:

  * Developers and teams have quite some slack (c.f. 20% time)
  * The code and architecture are of very high quality and well documented (i.e. no accidental complication)
  * There are very few external interruptions
and probably a few other factors. So, for example, in most legacy projects, it's practically impossible to give any meaningful estimates (i.e. estimates that are correct within reasonable ranges most of the time).

I wrote a few blog posts on estimating some time ago, those also touch the issues I mentioned here. For example: http://devteams.at/a_spectrum_of_effort_estimates

struppi··on Considerations on Cost Disease
Ok, maybe I'm getting this wrong, but to me, it's not entirely surprising that those costs have been rising, even when adjusted for inflation.

AFAIR, we spend a lot of money on food, transport, holidays, electronic devices, ... All of which have become cheaper over the last few decades. The consumer price index reflects this. So, if a lot of items have become cheaper, even adjusted for inflation, others must become more expensive, adjusted for inflation.

The article even mentions this effect:

  First, can we dismiss all of this as an illusion? Maybe adjusting for inflation is harder
  than I think. Inflation is an average, so some things have to have higher-than-average 
  inflation; maybe it’s education, health care, etc. Or maybe my sources have the wrong 
  statistics.
But: Maybe this does not explain the whole effect, and maybe I am missing something important. I am not an economist, after all.
struppi··on Java 9 Enters First Bug Fixing Round
Good! I am really looking forward to jshell, yet I appreciate that the Java team at Oracle is taking it's time to get this right. With their very strict backwards compatibility requirements (still compatible with Java 1.0 AFAIK), everything they release to the public, they must maintain forever.

Side note: Can somebody please write a concise tutorial about how to use the new features (like this awesome Java 8 tutorial: https://github.com/winterbe/java8-tutorial )? If you do, contact me. I would love to help out, but I don't have much time at the moment...

struppi··on What a good commit message looks like (2011)
Recently, I try to write the first line of my commit messages so they describe what the system now does, compared to before the commit. This makes reading the history much more fun. Like:

    Validation of email addresses now sends a test email to the user, instead of the old regex that never worked.
This style does not work for all kinds of changes, but when it works, it creates a nice history of how the functionality of the system grew...
struppi··on Wine 2.0 released
1Password is awesome on Linux using wine. I use it with Vivaldi (and the chrome plugin in Vivaldi). My other current use case is the original StarCraft. I just read (on the appdb) that the 32bit version of Lightroom now works with wine, so I'll try that too - soon. Now I am hoping for the "Affinity" tools (Designer, Photo), but they are still rated as "Garbage" in the appdb.
struppi··on You Don't Find Bugs in Legacy Code
I totally agree with you. In the end you need different kinds of tests (end-to-end, unit, ...). And with legacy code, you probably want to start with end-to-end tests or integrated tests.

But in that specific case, no amount of tests would have helped us...

struppi··on You Don't Find Bugs in Legacy Code
I agree with you, but I would drop the word "unit". When you start to work on legacy code, you often can't write "real unit" tests. The important thing, at this point, is to bring the code under some kind of test harness (Golden Master, executable specs, ...).

Later, when you have some test coverage, you can add unit tests. In some cases, you can even try to refactor without tests first, and then add tests once you have a testable API. That's the whole point of the "BabySteps Timer" kata I have linked in the post...

Still, in the case I described in the post, a test harness would not have helped us. The only thing that would have helped us would have been to ask one of the few users who needed the features. And we didn't know them...

struppi··on Inkscape Version 0.92 is Released
Yes, I also had to create some SVG files during a project for a client and used Inkscape on Windows for that. Then hand-edited all of them, because I wanted to get rid of all the crap before importing them.

I basically just bought Affinity Designer as a knee-jerk reaction because I disliked Inkscape so much.

struppi··on Inkscape Version 0.92 is Released
I'm running it on windows, only had one quick try yet. Looks promising, but didn't do any serious work with it yet.
struppi··on Inkscape Version 0.92 is Released
No, I am not talking about stolen property. But a one-time payment of 40€ is close enough to free for me to give it a try. That's why I said basically the same price category, not "the same price".
struppi··on Inkscape Version 0.92 is Released
Sorry to be that guy, but I always had the impression that Inkscape is way more cumbersome and difficult than it should be. And it seems to me that there is very little progress.

I don't use/need vector graphics editors very much, but I now bought affinity designer. It seems to be way more professional, and is quite affordable (basically in the same price category as Inkscape, at least for me).

struppi··on True cost of recruiting a developer [infographic]
I know that this every productivity measurement is very fuzzy and can be cheated (#), but here's how we did it:

We were simply looking at the number of features delivered to the customer in a certain amount of time, number of defects found in production and number of critical defects found immediately after roll-out (a.k.a. hot-fixes). We adjusted for holidays, vacations and sick leaves.

Those numbers were relatively stable until we changed the team, then dropped, and it took quite a while to reliably get to higher levels than before.

(#) I don't think the team cheated, because if they had, they could have easily cheated the numbers in a way that they'd steadily rise.

struppi··on True cost of recruiting a developer [infographic]
Training is also a good idea since bringing a new person to a team has a negative effect on the productivity of the team (#):

(1) If you are not working on a greenfield project, it takes some time for the new hire to get up to speed. During that time, their productivity is negative: They are not really productive yet, and they need help from everyone else on the team.

(2) If you add people to a mature team (or remove people), the team dynamics change completely and the team might need several months to get back to their previous performance again (##).

So, hiring a new developer can cost you several tens of thousands of dollars / euros even after you already hired them. Training your existing developers can make sense here - They get a productivity boost sooner. And, when I teach inhouse-trainings, I always have a feeling that people are more motivated to do their job after the training, even when they cannot immediately use what they have learned: It matters to them that their employer cares about them and their technical excellence.

Still it often makes sense: Some times, you just don't have enough people for your long term plans. But don't expect too much too early.

(#) Adding people to a late software project makes it later / You cannot get a baby in one month by hiring a team of nine women.

(##) I collected some data about this when I was an agile coach for two teams at a large company. We added 2 developers, productivity dropped, needed ~6 months to become reliably higher than before adding the developers. Unfortunately, I cannot share the data. Also, I guess this was an extreme case: Complicated legacy system.

struppi··on Mob Programming – The Good, the Bad and the Great
I have not had the chance yet to use mob programming on a real project. But I have used it when teaching workshops and trainings. And it worked pretty well.

The first thing I noticed is that no-one tuned out. When I organized my trainings so that participants do the exercises alone or in pairs, some would just not do them. They might have too much problems to even get started. Or, when pairing with a better developer, just let them do the work. In the mob, paid attention everybody joined the discussion. [1] Also, I think there was a better shared understanding of the examples and the solutions after the mob programming. When working in pairs, I had to monitor 5-8 pairs in parallel and give them hints and explain stuff. With the mob, I could concentrate on one screen and join the discussion all the time.

And: Others were helping me out. At one point, a participant said: "I don't want to take the driver seat, I am no programmer, just a manager". Before I could even say something, someone else from the audience said: "Come on, try it. We tell you what to write, and after 10 minutes, we'll change again anyway".

So, to recap: I really like mob programming for teaching. I think it could also work well when a team wants to learn something new, has a hard design session or wants to bring new team members up to speed. I even think it could work during day-to-day work, but I have never tried that.

[1] Maybe I was just lucky and had a great group when we were duing mob programming. But I doubt that.

struppi··on Becoming an expert through deliberate practice
It's a great article, well written, and I like the recommendations. Especially "Find a Mentor"! But I still think deliberate practice is overrated (in some fiels, especially programming): http://davidtanzer.net/deliberate_practice
struppi··on We Hire the Best, Just Like Everyone Else
Also, have a look at "Developer's Journey" by Tim Bourguignon - There he tries to find out how to train/mentor/coach people to become great developers. And also what developers can do themselves to improve.

http://devjourneyhomepage.azurewebsites.net/

← PreviousPage 3 of 7Next →