Live data from Hacker News

Software Engineering principles to make teams better

principles.dev

1–10 of 105 posts

Re: Software Engineering principles to make teams better

#3
I like a lot of these principles but there is a crucial element missing from this presentation and that is time.

As a company grows the importance of each of these principles changes. As a project within an established company grows a similar maturation happens.

If you tried to adhere to all 'best practices' (principles or not) from day 1 of a project you'd be carrying a lot of weight that could crush otherwise good ideas.

Some principles, when presented without a timeline, seem contradictory and that can lead to fights on teams where developers are well meaning but less experienced.

I'm encouraged that this presentation includes dimensions along which you can slice the principles, but I encourage the authors to adopt a "stage" dimension as well that helps focus devs/learners on principles appropriate for 1. The stage they are in and 2. The immediate next stage.

Re: Software Engineering principles to make teams better

#4
Oh wow, author here - I wasn't quite expecting this to appear here today. I've only really just start talking to people about it.

That said, my mission is to make software engineering better for everyone. By capturing the best principles from the best in the world at what they do. And to organise and share that knowledge, freely.

It's currently missing features to organise principles well, but I'm working on it (discussion here: https://github.com/PrinciplesDotDev/principles/discussions/2...)

You can reach me through my profile or following me on @princples_dev (twitter) - I've only starting pushing this, but a lot more will be coming soon.

It's an open source project and it needs your principles to make this a reality so if you've got some to share, please do. Or if you have feedback, leave it here. I'm building it for you.

Re: Software Engineering principles to make teams better

#6
I think i’ve got a slightly different take - i’m not saying my take is any better though.

If we’re talking engineering principles, not team dynamics, then it’s:

  1. Use immutability by default, even in languages that make that harder than it should be
  2. Understand how liberating idempotency is
  3. Divide and conquer, use abstraction to make hard problems manageable
  4. Delete code, delete tests, re-write stuff, re-write it again. Painful? Keep doing this till you get to the other side and feel liberation and empowerment, took me years to get past wincing at the idea of re-writing that thing AGAIN
  5. Pay attention to your build tooling - to do any given task, it should always take exactly 1 command. How do i run the tests? Run the test command. How do i deploy to non-prod? Run the deploy command. Etc
If we’re talking softer stuff:

  1. Don’t block collaboration - e.g. if there are 5 people don’t work on 5 tasks concurrently. Work on 1, maybe 2 in some cases
  2. Accomodate 2 types of work: work that needs collaboration & synchronisation (brain storming, planning, why are we even doing this, that kinda thing) work that needs focus time - sometimes that’s focus as an individual, sometimes that’s a mob focussed on one task and saying no to every other distraction in the world no matter how “urgent”
  3. Change what you’re doing throughout the day, don’t try to code all day, you’ll get in a rut, you won’t write your best code after a while. You can optimise this step, e.g. if the team is low energy after lunchtime, use that to your advantage and schedule the easy boring work then, don’t be afraid to use humour or burn low energy time just getting to know each other better
  4. Make sure people are being heard in the team. Hardest point to get right.

Re: Software Engineering principles to make teams better

#7
Give it some time and it will end up being "The 5 Pillars of the AWS Well-Architected Framework" or something similar.

Someone already mentioned that "time" is absent here. Hence you cannot generalize. Each company should probably write their own principles and make it part of their identity.

Re: Software Engineering principles to make teams better

#8

Oh wow, author here - I wasn't quite expecting this to appear here today. I've only really just start talking to people about it. That said, my mission is to make software engineering better for everyone. By capturing the best principles from the best in the world at what they do. And to organise and share that knowledge, freely. It's currently missing features to organise principles well, but I'm working on it (disc…

Is there one page where all principles and information about them are collected as one page so it can be downloaded and read in ereader?

Re: Software Engineering principles to make teams better

#9

I like a lot of these principles but there is a crucial element missing from this presentation and that is time . As a company grows the importance of each of these principles changes. As a project within an established company grows a similar maturation happens. If you tried to adhere to all 'best practices' (principles or not) from day 1 of a project you'd be carrying a lot of weight that could crush otherwise good…

The temporal nature of principles - It's a good suggestion. It's always hard to slice reality.

Teams should come up with their own list of principles which reflect the team and adopt organizational ones that make sense. As organization ones will tend to be wider in scope and less prescriptive, it should be less of a problem to adopt them.

Basically teams should decide what's right for them based on their backgrounds and the organisation should provide general direction.

The principles become more useful when they are context sensitive, so principles lists are the next big feature (i.e one for your team, another for your organization)

This feedback is really useful and will inform the design of the app. If you have a good idea Ian of what you think is useful, please let me know how I can help. I think I've grokked the basics of what you're saying, but it would be good to lock it down.

Re: Software Engineering principles to make teams better

#10

Oh wow, author here - I wasn't quite expecting this to appear here today. I've only really just start talking to people about it. That said, my mission is to make software engineering better for everyone. By capturing the best principles from the best in the world at what they do. And to organise and share that knowledge, freely. It's currently missing features to organise principles well, but I'm working on it (disc…

Is there one page where all principles and information about them are collected as one page so it can be downloaded and read in ereader?

All principles on the website are currently in this repository: https://github.com/PrinciplesDotDev/principles In fact, this is the database for the website.

So you can download them from there and put it in an ereader or import it into an application that supports .md format.

Post reply on HN