Hacker News new | ask | show | jobs
by Niksko 2692 days ago
I'm still figuring things out. Last job was at a big 4 consultancy doing CMS work, current job is at ~1500 employee software company doing a mix mobile and web dev.

Agile definitely feels better than waterfall, but it's also made me appreciate why it goes wrong so easily. You have to be willing to experiment with your process often, and retros have to have the ability to get brutal if things aren't working.

Regular releases (every two weeks or so) are important. They help to reduce scope creep and get you faster feedback. The trick is tweaking what a 'release' is. Having the ability to do targeted, beta or pilot releases helps you get things out more quickly without scaring the rest of your users or screwing up of there are bugs.

Pairing is useful, but there is a tendency in our team to say 'oh, there's not many cards left in the current release, let me pair with you'. That's just wasting time. Pairing should only be for knowledge sharing or speeding up difficult code.

Slicing tasks is very hard. I think it's better if they're sliced vertically (implementing a feature end to end) as opposed to horizontally (you write the react, I'll write the API, and we'll meet in the middle). Horizontal slicing leads to knowledge slios, implementation mix-ups and can also lead to very small cards which means you're constantly context switching.