TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Software Engineering principles to make teams better

382 点作者 _wp_将近 4 年前

16 条评论

CraigJPerry将近 4 年前
I think i’ve got a slightly different take - i’m not saying my take is any better though.<p>If we’re talking engineering principles, not team dynamics, then it’s:<p><pre><code> 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 </code></pre> If we’re talking softer stuff:<p><pre><code> 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 &amp; 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.</code></pre>
评论 #27690350 未加载
评论 #27690099 未加载
评论 #27693556 未加载
评论 #27689936 未加载
评论 #27694808 未加载
评论 #27693158 未加载
评论 #27690679 未加载
iandanforth将近 4 年前
I like a lot of these principles but there is a crucial element missing from this presentation and that is <i>time</i>.<p>As a company grows the importance of each of these principles changes. As a project within an established company grows a similar maturation happens.<p>If you tried to adhere to all &#x27;best practices&#x27; (principles or not) from day 1 of a project you&#x27;d be carrying a lot of weight that could crush otherwise good ideas.<p>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.<p>I&#x27;m encouraged that this presentation includes dimensions along which you can slice the principles, but I encourage the authors to adopt a &quot;stage&quot; dimension as well that helps focus devs&#x2F;learners on principles appropriate for 1. The stage they are in and 2. The immediate next stage.
评论 #27689638 未加载
AdamCraven将近 4 年前
Oh wow, author here - I wasn&#x27;t quite expecting this to appear here today. I&#x27;ve only really just start talking to people about it.<p>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.<p>It&#x27;s currently missing features to organise principles well, but I&#x27;m working on it (discussion here: <a href="https:&#x2F;&#x2F;github.com&#x2F;PrinciplesDotDev&#x2F;principles&#x2F;discussions&#x2F;20" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;PrinciplesDotDev&#x2F;principles&#x2F;discussions&#x2F;2...</a>)<p>You can reach me through my profile or following me on @princples_dev (twitter) - I&#x27;ve only starting pushing this, but a lot more will be coming soon.<p>It&#x27;s an open source project and it needs your principles to make this a reality so if you&#x27;ve got some to share, please do. Or if you have feedback, leave it here. I&#x27;m building it for you.
评论 #27689631 未加载
titzer将近 4 年前
Is it just me, but is this meme version of software engineering absolutely the lowest information density achievable? Seriously. This is a heavily-involved topic, where any project might require hundreds to thousands of hours of development, and we have five second soundbytes as principles. Ugh.
评论 #27691827 未加载
评论 #27692194 未加载
bilalq将近 4 年前
It&#x27;d be cool if counter-points to a principle could also be documented alongside it. Reasoning that highlights why you may not want to adopt a principle is helpful when considering it.<p>For example, take &quot;One single source of truth&quot;.<p>&gt;Data should be held in one location, duplicates of that data should be by reference only.<p>&gt;Why<p>&gt;Changes to data are always propagated to the rest of the system.<p>&gt;Mutations to the data need only happen in one place.<p>&gt;Single source of truth means no data will be out of sync or fail to be updated.<p>&gt;How<p>&gt;Only allow data writes to happen in one location. Whether that be a call to a rest API, system call or other write actions.<p>&gt;Don&#x27;t allow data to be stored anywhere but the single source of truth.<p>That won&#x27;t work in many situations. If you need to support high throughput OLTP use-cases but also want to support advanced filtering&#x2F;sorting of large datasets, you may need something like a combination of a NoSQL DB with something like ElasticSearch. Eventual consistency is something you accept as a trade-off for enabling higher levels of performance.
评论 #27694216 未加载
oneshoe将近 4 年前
I&#x27;m pretty excited about this site&#x27;s potential. I am avid promoter of creating autonomous teams through principles and goals alignment (OKR).<p>I think there were suggestions about Time being an aspect of a principle. I wonder if this would be better represented by the SDLC stages, something like this might address the &quot;time&quot; part that allows it to be associated with type of work being done. Just a thought. I also wonder, at the same time, if this is too burdensome for a team or individual to do. Establishing your principles, IMHO, should be the most important thing you do, if you use them to guide your behavior.<p>I also have hope that when people establish what their individual principles (that define them) they then can ensure when they are job hunting or self reflecting on their current job that they what they are doing is aligned with who they are to ensure they will be satisfied in that role&#x2F;job&#x2F;company.<p>I just bookmarked the site. Excited to see this grow.
评论 #27693021 未加载
maerF0x0将近 4 年前
&gt; Backend ... no principles found<p>Site checks out<p><a href="https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;orYiokW" rel="nofollow">https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;orYiokW</a>
评论 #27691852 未加载
doggosphere将近 4 年前
I once worked at a startup which had put together a <i>binder</i> of documents, declaring the company&#x27;s vision, values, principles, etc. They strongly suggested new hires go through it at least briefly.<p>I don&#x27;t think anyone ever did.
评论 #27694424 未加载
akhilpotla将近 4 年前
I think it would be interesting to read case studies of different teams, their principles, how those decisions have impacted them, benefits, drawbacks from their approach, etc.<p>I think principles are great, but like you yourself have said, they require context. I would especially be a valuable resource for junior and mid career engineers, of which I am one.
评论 #27693144 未加载
vageli将近 4 年前
What does &quot;Iterate in Thens&quot; mean?
评论 #27689771 未加载
评论 #27692157 未加载
sublimefire将近 4 年前
Give it some time and it will end up being &quot;The 5 Pillars of the AWS Well-Architected Framework&quot; or something similar.<p>Someone already mentioned that &quot;time&quot; is absent here. Hence you cannot generalize. Each company should probably write their own principles and make it part of their identity.
评论 #27689742 未加载
chadlavi将近 4 年前
&gt; Note: This visualization was designed for screens larger than 1024 x 1024 and for desktop-style interactions. You can proceed if you&#x27;d like.<p>Why would you put in the work to warn people they&#x27;ll have a bad time instead of just fixing the bad time.
评论 #27691487 未加载
评论 #27691722 未加载
markl42将近 4 年前
Cool! Similar project I maintain: <a href="https:&#x2F;&#x2F;programming.protips.wiki&#x2F;" rel="nofollow">https:&#x2F;&#x2F;programming.protips.wiki&#x2F;</a>
darkrai0707将近 4 年前
This is a great initiative. It would be great if across each principle, we can have examples on how this principle helps to improve the code quality
评论 #27689826 未加载
tuxguy将近 4 年前
link seems to be down<p>slashdot(hn) effect at work ?
happyweasel将近 4 年前
1. work as a team