Ryan, first of all this is a really good topic/question. Thanks for posting it on Stack Overflow!
"I am having difficulty finding the fit between front end development and the Agile process and was wondering if anyone had similar experiences and how they dealt with them?"
Well, in the past I have been a Front End developer and a Scrum Master in an organisation that followed the Scrum Framework and Agile Principles but fortunately I have never had the kind of experience you described. But I can imagine that it must be painful for you. Unfortunately some people use Agile and Lean processes and frameworks as a tool to get ahead in the political game by suggesting it's use, but what they really care about is their own own name and fame, and what ends up happening is they don't follow through and don't do justice to Agile and the Team following it. It sounds to me like either it is a political strategy from someone higher up or there is a lack of understanding and experience of Agile principles. I think your organisation needs a "real" full time Agile Coach not influenced by higher powers in your organisation.
"It would be interesting to get another perspective on this."
In my last project I was Scrum Master of a Enterprise Project Team of around 30 engineers. And I also have a web developer background. We followed the Scrum framework and worked in 2 week iterations. Each iteration had a list of Product Backlogs which were nothing but a bunch of user stories written and prioritized by the Product Owner. The user stories always need to represent vertical slices of the product rather than horizontal. Imagine a multi layered cake, if you cut it horizontally, you would just get one layer at a time or maybe two but you would never get all the layers in the piece, but when you cut it vertically, you get all the layers for sure, in the same way your application or website or tool or whatever it may be definitely runs on a technical architecture, which must be having multiple layers like the GUI, the security layer, the server, the DB, middle ware and so on. As per the Agile Manisfesto success is measured by working software and a working software is not a set of static front end screens without the back end nor is it a set of database tables without any front end. So a rule that I learnt which you could suggest or remember is always work in vertical slices so that you have potentially shippable products in the shelf to push to production.
In a nutshell - I think the solution to your problem is having proper user stories whose done criteria should be more on the lines of having small vertical slices of the end product and not build one horizontal slice at a time. So for example it should be feature based , like for example, building the login functionality and not just building the login.jsp!!
Remember, always cut small vertical slices of the cake, it tastes better that way!! ;)
It appears to me that one of the features of the Agile process is that you don't forward invest in features but they way i am being asked to work is to code everything up front thus creating a lot of forward investment. This has lead to alot of seperation from the rest of the team and a lot of pressure being placed on me delivering features for the server side guys.
You are exactly right here. What they are asking for is counter to Agile.
In fact, having only one front-end developer in a team with other developers doing only server-side work is a recipe for disaster.
As sjt suggested in his response (which I've upvoted), an Agile team should work in small vertical slices.
For this to work well, you should be "generalizing specialists". Each member of the team might have strengths in a particular area, but should do some work in all parts, getting help from other team members in any area needed.
You should be learning and doing some server-side work and the server-side people should be learning and doing some front-end work.
sjt's answer is excellent, discuss with your scrummaster/team what he/they think DONE and potentially shippable means to him?
Your goal in Scrum/XP is to create potentially shippable product before or by the end of the sprint so this means making sure your user stories reflect a vertical slice or tracer bullet through the product as sjt's explained.
发布评论
评论(4)
瑞安,首先,这是一个非常好的话题/问题。感谢您将其发布在 Stack Overflow 上!
嗯,过去我曾在一个遵循 Scrum 框架和敏捷原则的组织中担任前端开发人员和 Scrum Master,但幸运的是我从未有过您所描述的那种经历。但我可以想象,这对你来说一定是痛苦的。
不幸的是,有些人使用敏捷和精益流程和框架作为在政治游戏中取得领先的工具,建议使用它,但他们真正关心的是自己的名字和名气,而最终发生的事情是他们不遵循并没有公正地对待敏捷和遵循它的团队。在我看来,这要么是高层的政治策略,要么是缺乏对敏捷原则的理解和经验。我认为您的组织需要一位“真正的”全职敏捷教练,不受组织中更高权力的影响。
在我的上一个项目中,我是一个由大约 30 名工程师组成的企业项目团队的 Scrum Master。我也有网络开发人员背景。我们遵循 Scrum 框架并进行两周迭代。每次迭代都有一个产品待办事项列表,这些列表只不过是由产品负责人编写并确定优先级的一堆用户故事。用户故事始终需要代表产品的垂直部分而不是水平部分。想象一个多层蛋糕,如果你水平切它,你一次只会得到一层或两层,但你永远不会得到蛋糕中的所有层,但是当你垂直切它时,你肯定会得到所有层,以同样的方式,您的应用程序或网站或工具或任何它可能肯定运行在技术架构上,该架构必须具有多个层,如 GUI、安全层、服务器、数据库、中间件等。根据敏捷宣言,成功是通过工作软件来衡量的,工作软件不是一组没有后端的静态前端屏幕,也不是一组没有任何前端的数据库表。因此,我了解到您可以建议或记住的一条规则是始终在垂直切片中工作,以便您在货架上有潜在的可交付产品以推动生产。
简而言之 - 我认为解决您问题的方法是拥有适当的用户故事,其完成的标准应该更多地遵循最终产品的小型垂直切片,而不是一次构建一个水平切片。因此,例如它应该是基于功能的,例如构建登录功能而不仅仅是构建login.jsp!
记住,一定要把蛋糕垂直切小片,这样味道更好!! ;)
Ryan, first of all this is a really good topic/question. Thanks for posting it on Stack Overflow!
Well, in the past I have been a Front End developer and a Scrum Master in an organisation that followed the Scrum Framework and Agile Principles but fortunately I have never had the kind of experience you described. But I can imagine that it must be painful for you.
Unfortunately some people use Agile and Lean processes and frameworks as a tool to get ahead in the political game by suggesting it's use, but what they really care about is their own own name and fame, and what ends up happening is they don't follow through and don't do justice to Agile and the Team following it. It sounds to me like either it is a political strategy from someone higher up or there is a lack of understanding and experience of Agile principles. I think your organisation needs a "real" full time Agile Coach not influenced by higher powers in your organisation.
In my last project I was Scrum Master of a Enterprise Project Team of around 30 engineers. And I also have a web developer background. We followed the Scrum framework and worked in 2 week iterations. Each iteration had a list of Product Backlogs which were nothing but a bunch of user stories written and prioritized by the Product Owner. The user stories always need to represent vertical slices of the product rather than horizontal. Imagine a multi layered cake, if you cut it horizontally, you would just get one layer at a time or maybe two but you would never get all the layers in the piece, but when you cut it vertically, you get all the layers for sure, in the same way your application or website or tool or whatever it may be definitely runs on a technical architecture, which must be having multiple layers like the GUI, the security layer, the server, the DB, middle ware and so on. As per the Agile Manisfesto success is measured by working software and a working software is not a set of static front end screens without the back end nor is it a set of database tables without any front end. So a rule that I learnt which you could suggest or remember is always work in vertical slices so that you have potentially shippable products in the shelf to push to production.
In a nutshell - I think the solution to your problem is having proper user stories whose done criteria should be more on the lines of having small vertical slices of the end product and not build one horizontal slice at a time. So for example it should be feature based , like for example, building the login functionality and not just building the login.jsp!!
Remember, always cut small vertical slices of the cake, it tastes better that way!! ;)
你就在这里。他们所要求的是与敏捷相反的。
事实上,一个团队中只有一名前端开发人员,而其他开发人员只做服务器端工作,这会导致灾难。
正如 sjt 在他的回复中建议的那样(我对此表示赞同),敏捷团队应该在小的垂直部门中工作。
为了让它发挥作用,您应该是“泛化专家”。团队中的每个成员可能在特定领域都有优势,但应该在所有方面都做一些工作,并在任何需要的领域获得其他团队成员的帮助。
您应该学习并做一些服务器端工作,服务器端人员应该学习并做一些前端工作。
You are exactly right here. What they are asking for is counter to Agile.
In fact, having only one front-end developer in a team with other developers doing only server-side work is a recipe for disaster.
As sjt suggested in his response (which I've upvoted), an Agile team should work in small vertical slices.
For this to work well, you should be "generalizing specialists". Each member of the team might have strengths in a particular area, but should do some work in all parts, getting help from other team members in any area needed.
You should be learning and doing some server-side work and the server-side people should be learning and doing some front-end work.
你所描述的不是敏捷,而是那些想要规避敏捷的人,因为他们不信任它。
What you're describing is not Agile, its someone who wants to circumvent Agile because they don't trust it.
sjt 的回答非常好,与您的 scrummaster/团队讨论他/他们认为完成以及可能可交付对他意味着什么?
您在 Scrum/XP 中的目标是在冲刺之前或结束时创建潜在的可交付产品,因此这意味着确保您的用户故事反映了产品的垂直切片或示踪子弹,如 sjt 所解释的那样。
sjt's answer is excellent, discuss with your scrummaster/team what he/they think DONE and potentially shippable means to him?
Your goal in Scrum/XP is to create potentially shippable product before or by the end of the sprint so this means making sure your user stories reflect a vertical slice or tracer bullet through the product as sjt's explained.