一个人可以采用敏捷技术吗?

发布于 2024-08-19 19:45:05 字数 1431 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

娇柔作态 2024-08-26 19:45:05

你似乎是从工作经验的角度来看待这个问题的;如果您希望积累相关经验以便在敏捷项目中找到工作,我可能会更横向思考。

首先,你可以与其他人合作,也许是在一个开源项目上?这将是一个与其他可能有更多经验的人一起尝试敏捷方法的好机会。

其次,您可以考虑使用一些常见的技术或工具,即使只是为了了解这些工具如何工作 - 例如,您可以设置一个持续集成服务器来在签入代码时运行构建和单元测试。如果您自己工作,这样做不会在生产力方面获得太多好处,但您会获得一些技能,并向未来的雇主说一些相关的话,这表明您致力于敏捷风格。

You seem to be coming at this from a work experience point of view; if you are looking to build relevant experience to get you a job on an agile project I would probably think a little more laterally.

Firstly could you work with others, maybe on an open source project? That would be a good opportunity to try out agile methods with others who may have more experience.

Secondly, you could look at using some of the common techniques or tools, even if it's just to learn how the tools work - e.g. you could set up a continues integration server to run builds and unit tests when you check in code. If you are working on your own you won't gain much in terms of productivity by doing this but you would gain some skills and have something relevant to say to future employers which would indicate you are committed to the agile style.

-黛色若梦 2024-08-26 19:45:05

是的,

请查看 PXP 或个人极限编程。

http://portal.acm.org/itation.cfm?id=1593127

论文摘要:

个人极限编程(PXP)是
一个软件开发过程
单人团队。它基于
极限编程 (XP) 的价值观
即简单、沟通、
反馈和勇气。它的工作原理是
保留 XP 的重要方面
并提炼价值观,以便他们
适合一个孤独的程序员
情况。 PXP仍有待完善
并有所改善。这是在传统中
XP 从业者将 XP 改变为
涵盖一切有效的东西。我们希望
PXP继承了这些务实的
根也。 放弃 XP 原则
就像结对编程不是
必然是一场悲剧
。我们仍然
相信严格遵循XP是
更有效的追求方式
多人项目。但我们也是
确信许多 XP
可以应用的做法和方法
到个人工作。的PXP
方法试图在两者之间取得平衡
“太重”和“太轻”
方法论。 PXP 将注入
适当的严格程度
的情况下不造成负担过重
团队中存在不必要的官僚主义。

Yes

Check out PXP or Personal Extreme Programming.

http://portal.acm.org/citation.cfm?id=1593127

Summary from the paper:

Personal Extreme Programming (PXP) is
a software development process for a
single person team. It is based on the
values of Extreme Programming (XP)
i.e. simplicity, communication,
feedback, and courage. It works by
keeping the important aspects of XP
and refining the values so that they
can fit in a lone programmer
situation. PXP can still be refined
and improved. It is in the tradition
of XP practitioners to vary XP to
encompass whatever works. We hope
that PXP inherits these pragmatic
roots, as well. Giving up XP tenets
like pair programming is not
necessarily a tragedy
. We still
believe that following XP strictly is
a more effective way to pursue
multi-person projects. But we are also
convinced that many of the XP
practices and methods can be applied
to individual work. The PXP
approach tries to balance between the
"too heavy" and the "too light"
methodologies. PXP will inject the
right amount of rigor for the
situation without overburdening the
team with unnecessary bureaucracy.

冷︶言冷语的世界 2024-08-26 19:45:05

是的 - 作为个人可以进行许多敏捷实践。

如果您已经知道如何执行这些操作,则可以作为单独的开发人员来执行这些操作:

  • 测试驱动开发 - 开始
  • 重构
  • 持续集成的
  • 好地方,做可能有效的最简单的事情(并通过重构)
  • 自动化部署
  • 规划会议(一加客户团队)

你自己做不到的事情:

  • 结对编程
  • CRC/RRC 研讨会(...你必须自言自语很多)

Yes - it is possible to do many agile practices as an individual.

If you already know how to do these, you can do them as a sole developer:

  • test-driven development - great place to start
  • refactoring
  • continuous integration
  • doing the simplest thing that could possibly work (and evolving it through refactoring)
  • automated deployment
  • planning meetings (a team of one plus customer)

Things you can't do on your own:

  • pair programming
  • CRC/RRC workshops (... you'd have to talk to yourself quite a lot)
白鸥掠海 2024-08-26 19:45:05

这样结对编程会很困难:)

让我们检查一下敏捷原则

  • 个人和交互 高于流程和工具
  • 工作软件 高于全面文档
  • 客户协作 高于合同谈判
  • 响应变化 高于遵循计划

您可以即使在独自从事某些个人项目时也可以做所有这些事情。你也可以在单独工作时使用GTD,你可以通过迭代开发你的产品,你可以采用时间盒,你可以请一些家庭成员或朋友和你一起做可用性测试(这很有效)真的很好)。

总而言之,您确实可以独自获得大量敏捷经验。我强烈建议您先阅读一些书籍,因为有些原则很容易被误解。

Pair programming would be hard this way :)

Let's check Agile Principles:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

You can do all of those things even while working on some personal project alone. You can use also GTD while working alone, you can develop your product through iterations, you can adopt timeboxing, you can ask some family members or friends to do usability tests with you (and this works really well).

As a conclusion, you can really get tons of Agile experiences alone. I strongly recommend you to read some books first tho, as some of principles can be easily misinterpreted.

破晓 2024-08-26 19:45:05

有些方面可以单独完成:运行产品待办事项列表和使用任务板。了解 secretGeek 正在做什么。

当然有些不能:结对编程、scrums 等......

Some aspects can be done alone: running a product backlog and using a task board come to mind. See what the secretGeek is doing.

Of course some cannot: pair programming, scrums etc...

千仐 2024-08-26 19:45:05

我最近中断了一个大项目。这是一个医疗软件项目。在研究过程中,我意识到了一些关于单独编程的模式。我想在这里分享我的经验:

  1. 你的软件的工作逻辑必须始终反映现实世界。你钓鱼用的是鱼竿,而不是棒球棒;所以忘记它吧。
  2. 始终从所有其他元素引用的项目元素开始构建。如果您认为就像软件项目中最多被调用的函数一样,这是有道理的。这可能是数据库建模。如果在数据库建模之前先对数据访问层建模,那将是没有用的。
  3. 不用介意更改变量名称。这是程序员日记中写得最多的条目;所以无需感到羞耻。
  4. 方法论改变世界。物有所值。使用函数或过程来创建每个逻辑过程。当项目变得庞大时,您就会明白这是最好的方法。
  5. 如果您不是在汇编中设计语言编译器,请毫不犹豫地使用巨大的过程调用链,其中一个调用另一个,另一个调用另一个,依此类推。随处使用方法,几乎​​类似于每个具有类的实体,并且是模块化的。
  6. 模块化就是一切。将模块化设置为您的主要目标。我有说过这就是一切吗?
  7. 开始项目的最后一句话。如果您要建造公寓,您最后要安装主入口。但使用时,您从入口进入建筑物。请注意。

这些是我每天学到的一些设计原则。我希望有用。尽力而为。

I recently interrupted a big project. It was a medical software project. While working on it, I realized some patterns about solo programming. I want to share my experiences here:

  1. Your software's working logic must always reflect the real world. You catch fish with fishing rod, not baseball bat; so forget it.
  2. Always start building from the project element to which all other elements refer. That makes sense if you think that like the function in a software project which is called at most. That might be database modeling. It would be useless if you model data access layer first, before modeling database.
  3. Never mind changing variable names. That's the most written entry in a programmer's diary; so no need to be ashamed.
  4. Methodology changes the world. Make worth of it. Make every single logical process with a function or procedure. When project gets huge you will understand thats the best way.
  5. If you're not designing a language compiler in assembly do not hesitate using huge procedure call chains in which one calls another and that calls another and so on. Use methods everywhere, nearly resemble every single entity with classes and be modular.
  6. Modularity is everything. Set modularity your primary goal. Have i said it is everything meanwhile?
  7. Last word for beginning the project. If you're building an apartment you install main entrance at last. But when using, you enter the building from entrance. Be aware.

These are some of my design principles I learned and learning day by day. I hope having been useful. Do your best.

对你再特殊 2024-08-26 19:45:05

虽然有些敏捷实践直接针对多人团队,但它们只是实践,它们只是一种手段,而不是目的。我的意思是,敏捷不是进行结对编程、站立会议等。敏捷是最大化客户价值,同时最小化浪费以提供最佳投资回报率。敏捷是以业务为导向的,实践只是在给定环境下实现这一目标的一种方式。因此,回到最初的问题,绝对可以采用敏捷实践(在您的环境中有意义)来最大化交付的价值:持续规划、限制进行中的工作、停线文化、时间限制、高质量、足够的规格、足够且及时的文档等等。

While some Agile practices are directly targeted at more than one person teams, they are just practices, they are just a mean, not an end. I mean, Agile is not about doing pair programming, stand up meetings, etc. Agile is about maximizing the customer value while minimizing waste to provide the most optimal ROI. Agile is business oriented, practices are just a way to achieve this goal in a given context. So, back to the initial question, it's definitely possible to adopt Agile practices (that make sense in your context) to maximize the delivered value: continuous planning, limiting Work In Progress, Stop-the-Line culture, time boxing, high quality, just enough specifications, just enough and just in time documentation, etc, etc.

风月客 2024-08-26 19:45:05

肯定是的。敏捷在参与多少人方面非常灵活。有些方法,比如 Scrum,主要关注在有限的时间内尽可能多地完成任务,比如两周(冲刺)。这包括您想要的任何内容。如果您的团队需要质量检查,那么这就是其中的一部分。作为一个孤独者,您可以决定要包含的内容。

在 Scrum 冲刺之后,您会考虑可以采取哪些不同的做法来完成更多工作,然后进入下一个冲刺。

其他一些方法更注重在每次迭代中完成功能,例如开发、测试和重构的三个小功能。

正如您所看到的,有很多方法可以将敏捷应用到任何项目中。您决定想要哪些方面。显然,一个不可或缺的部分是以小增量做事。

Definately. Agile is very flexible in terms of how many people are involved. Some methodologies, like Scrum, focus mostly on doing as much as possible in a limited time, like two weeks (sprints). That includes whatever you want it to. If your team requires QA, then that is part of it. As a loner, you decide what you want to include.

After the scrum sprint, you look at what you could have done differently to get more done, and move to the next one.

Some other methodologies focus more on getting features done in each iteration, say three small features developed, tested and refactored.

As you can see, there are tons of ways to apply agile to any project. You decide which aspects you want. Though obviously one integral part is doing things in small increments.

无所谓啦 2024-08-26 19:45:05

是的,

XP/TDD 的范围是从 1 到 1000。结对编程是可选的。

Yes

XP/TDD scales from one to one thousand. Pair programming is optional.

那一片橙海, 2024-08-26 19:45:05

是的。

敏捷更多的是一种心态,而不仅仅是像瀑布一样的软件开发方法。
Scrum 是非常流行的敏捷方法之一。您可以详细研究 Scrum 的以下几个方面:

  1. Scrum/Agile 相对于 Waterfall 的优点
  2. 如何使用 Scrum/Agile 创建更好的“产品”
  3. 哪些类型的项目更适合 Scrum
  4. Scrum 的优点和缺点
  5. Scrum 仪式以及为什么它们是这样的必要的(他们有什么优势
    带来)
  6. Scrum 中的不同角色及其职责(Scrum Master、
    产品负责人和开发团队)

在充分了解 Scrum 的工作原理及其优点后,尝试创建一个宠物项目。
您必须亲自扮演所有角色。您可以尝试通过为每个角色佩戴不同颜色的帽子来区分您当前扮演的角色。

示例:

产品所有者:从产品的角度思考,产品中应该有哪些功能以及为什么它们对您的用户很重要等。然后继续进行所有 Scrum 实践。

Scrum Master:不断检查您是否以正确的意识和精神遵循所有 Scrum 仪式,以及是否能够从中受益。

会有一些限制,例如你不能召开每日站立会议,显然因为你是项目中唯一的人。但如果你遵循上述要求,你应该能够很好地找到工作并在团队中发挥自己的作用。

YES.

Agile is more of a state of mind than just a methodology of software development like waterfall.
Scrum is one of the very popular agile methodologies. You can study below aspects of scrum in detail:

  1. Benefits of Scrum/Agile over Waterfall
  2. How can you create better "products" with Scrum/Agile
  3. What are the types of projects better suited for Scrum
  4. Pros and Cons of Scrum
  5. Scrum Rituals and why are they necessary (What advantage do they
    bring)
  6. Different roles in scrums and their responsibilities (Scrum Master,
    Product Owner and Development Team)

After you have good understanding of working of scrum and its benefits, try to create a pet project.
You will have to play all the roles yourself. You can try to distinguish between what role you are playing currently by wearing different colored hats for each role.

Example:

Product owner : Think from product perspective, what should be the features in the product and why would they be important for your users etc. Then proceed with all the scrum practices.

Scrum Master: Keep checking if you are following all scrum rituals in the right sense and spirit and are you able to derive benefits out of it.

There will be limitations,example you cannot have Daily stand-up meeting, obviously because you are the only person in the project. But if you follow above, you should be good to secure a job and play your part well in the team.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文