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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Enabling choice for Agile delivery Scrum teams

37 点作者 dwiamo大约 8 年前

12 条评论

heisenbit大约 8 年前
Creating software is about making the right decisions at the right point in time. Any decision by nature restricts choice. It is precisely the job of CTOs and architects to make decisions about partners, platforms, tooling and frameworks and to refrain from making these decisions at other times.<p>Should you empower teams to make their stack choices? I&#x27;ve seen chaos breaking out for a year in a major development organization with 500 devs when most teams suddenly were allowed to make some choices that better should have been made centrally. Yes, they were faster but they were faster going nowhere. And then there are all these aspects that go beyond the development phase - long term maintenance, behavior of software in the field &#x2F; training field engineers and moving people across teams.<p>Good technical leaders know where choice is called for and where not. Managing these trade-offs requires a perspective that goes beyond the agile team.
评论 #14061022 未加载
评论 #14060017 未加载
评论 #14061590 未加载
Xorlev大约 8 年前
Too much chaos and choice and you slow down because everyone has done the same things in slightly different ways.<p>There&#x27;s a fine balance between allowing choice and setting standards. There&#x27;s productivity gains as well from having some standards -- you can built tools which leverage standards, so long as they aren&#x27;t too restrictive.<p>e.x. In the world of microservices, you end up needing a lot of telemetry to keep things running smoothly and figure out what goes wrong when your call is four levels deep. Doing so is hard without having a standard to which your services must adhere to. It&#x27;s easiest if you have a base application which takes care of that for you. That, however, becomes hard if you have the combinatorial explosion of [languages] x [frameworks].<p>That doesn&#x27;t mean you shouldn&#x27;t entertain new choices, (hey, team X wants to use Go.) but there should be some discipline. It boggles my mind when individual engineers prefer to speed up their development for the short-term vs. the overall organization.
cookiecaper大约 8 年前
Everyone should know about Conway&#x27;s Law [0], especially in the age of microservices.<p>I currently work in an environment where there is virtually no central technical management. There are groups of 2-4 developers who roam around their department&#x27;s problem space, making whatever choices they want.<p>If someone doesn&#x27;t like the interface on one microservice, they fork the code and make a new one. This leads to 5 microservices that accomplish the same thing, and 5x the maintenance burden whenever something changes. I&#x27;ve derisively called these &quot;nanoservices&quot;, but I need a more offensive term.<p>People intentionally choose techs that no one else in the company has used, trying to cement their position and hedge up potential competition or unwelcome cooperation. They also select technology for the best PR effect, being able to say &quot;We&#x27;re being like Google today&quot;. The result is a whole mess of different stuff running throughout production, each needing <i>its own</i> backup system, etc., which, to be honest, does not always get installed.<p>It&#x27;s a disaster.<p>The author&#x27;s contention is that giving more choice to teams is better because it makes them feel more ownership in their product. That&#x27;s fine, but do recognize that this is a psychological solution to a management problem. The job of the manager is to actively control the psychology of employees and the structure of the organization such that employees are happy to do things that lead to cooperation, not to allow employees to always get their way.<p>Without a central coordinating force and everyone&#x27;s acknowledgement that some compromise and sacrifice is necessary, everything falls apart quickly.<p>[0] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Conway%27s_law" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Conway%27s_law</a>
评论 #14060803 未加载
diminoten大约 8 年前
As a person who this article is saying should be empowered to have more choice, choice is a dog whistle for Not Invented Here. The people you employ to build your software will often make the <i>straight up wrong choice</i> when given the opportunity, and a lot of that time the &quot;choice&quot; will be to homebrew a solution that already exists elsewhere, because it&#x27;s perceived as simpler than taking the time to understand an existing technology.<p>The reasons that get hand waved away in this article are <i>exactly</i> the reasons you can&#x27;t ignore consistency across teams. There <i>is</i> value in having just one library that multiple teams use to communicate via HTTP to various services, there <i>is</i> value in members of different teams being able to work across projects due to the similarities in infrastructure. If each team has their own client library for communicating with a service, that&#x27;s work you&#x27;ve paid for twice, or more.<p>I clicked on this article thinking it would be about choice within the prioritized stack on what to build and when, because <i>that</i> is valuable. Letting the folks building the stuff decide which things to build first is <i>much</i> more valuable than letting them pick between Postgres and MySQL, or memcache vs. redis, etc. (just examples, don&#x27;t get too wrapped up in them).<p>Sure, we can sit here and come up with exceptions to choice, and yeah I do like being able to choose my IDE, the OS I develop on, etc., but those choices are totally different than which relational database I use, or which web framework I develop with. There, I don&#x27;t think choice is good, at least not for everyone. Maybe this is written for my boss&#x27;s boss, I dunno. But as for me, the dev writing the code, I don&#x27;t really want me (or my colleagues) to have all that much choice.
评论 #14060771 未加载
quantumhobbit大约 8 年前
Wow the comments here certainly seem to be against allowing developers any input in the tools they use. I guess you all are part of the reason I have to use Java 7 and outdated versions of Angular in my day job no matter their applicability to the problem domain and have no input in those decisions.<p>I agree that total anarchy is bad in the workplace, but don&#x27;t you think that the people using the tools should have some input in choosing the tools?
评论 #14063250 未加载
dkhenry大约 8 年前
In my experience the team should be free to make whatever technical choice they want. The only reason you get dictation from on high about what choices should be made is because your technical leadership lacks the technical depth to advocate for a common stack that is actual useful. Every time I have seen an origination talk about standardizing on some language or framework and its hasn&#x27;t grown out of the engineering community at that company its been because leadership didn&#x27;t have a strong technical background and they were making choices based on marketing material, sales reps, or consultants.<p>The best standardization I have seen grew out of a team who was empowered to make decisions, made good decisions, showed how their decisions were good for the entire origination and helped everyone migrate to one solution which turned out to be pretty good at solving everyone&#x27;s problems.<p>If you as a leader find yourself pushing a standard tool set to a team who is hesitant to adopt it the problem is most likely you.
评论 #14061000 未加载
rb808大约 8 年前
Too many technologies is a problem so teams shouldn&#x27;t be able to choose anything. My wider team is 50 people made up of ~8 smaller teams. We have some flexibility to choose technology with the result of our new product: * Core system JVM * Python wrapper for web service API * C# scraping calling the web service * JS&#x2F;node webserver calling the C# layer<p>As a result its slow, messy and difficult to maintain. Would be nice if managers prevented small teams from choosing any technical choice they felt like.
评论 #14063290 未加载
MaulingMonkey大约 8 年前
I don&#x27;t have a choice: I <i>must</i> use a broad array of tools and languages.<p>The gamedev stuff I&#x27;ve helped tackle fundamanetlaly required mostly C++... and a little C, and some x86&#x2F;ARM&#x2F;PPC for debugging, HLSL 3-5&#x2F;GLSL ES&#x2F;PSSL&#x2F;&lt;custom shader DSLs&gt; for porting graphics, at least two shell scripting languages for CI servers (Bash, and Powershell or (ew!) Batch), Python (for various modeling tools)... Java, Objective C, and C++&#x2F;CX for platform specific APIs... MSBuild, Makefiles, Gradle, Ant... and that&#x27;s just the languages! The tooling front is no better.<p>A handful more language choices that theoretically could&#x27;ve been avoided (e.g. C# for tools and server stuff, ActionScript for UI) is really not that big a deal in this context. You can add pointless layers of cruft, but I&#x27;ve only seen it once - a Python script used to hack up the result of a C++ program. Even then they had a reason: some of the C++ didn&#x27;t get checked in, so we couldn&#x27;t even build the C++ program. (A happy ending: With a little reverse engineering of the resulting binary output, I was able to re-implement the missing C++ bits, implement the Python-script &#x27;fixes&#x27; more cleanly in the original C++, and add my own necessary changes on top of that.)
karka91大约 8 年前
I work for a shop with more than 200 devs. Over the years we had multiple efforts to standardize the libraries, platforms we use only to very limited success. While things like CI software and IDE got pretty much standard without any intervention to this day there is no consensus for library x to do y. The overall sentiment resonates with me and what I&#x27;ve seen at my workplace
nradov大约 8 年前
He seems to be ignoring long-term maintenance costs. If you&#x27;re building a $0.99 app then sure let the team pick whatever they want. But if you&#x27;re building a huge SaaS web application with an expected 20 year lifecycle then that cuts the range of sensible choices way down.
Zigurd大约 8 年前
Choices break naturally on time and platform boundaries. New projects should review stack choices, and enforcing cross-platform stacks is usually too brittle.
gm-conspiracy大约 8 年前
Creativity leads to anarchy.