Three Dimension Inspections between Scrum and FDD

There are many Agile development methods emerged after the famous Agile Manifesto being published at 2001, those includes Crystal Clear, Extreme Programming(XP), Feature Driven Development(FDD), Dynamic Systems Development Method (DSDM), Scrum, and many others. The difference among those would be interesting if looking from different dimensions, e.g. Scrum and FDD, since all of them are quite outstanding and both related to the keyword “feature”.

1.Roles-Simple V.S. Complex

Scrum has three roles: Product Owner, Scrum Master, and Team. The Product Owner is responsible for all the features and priorities of the product. The Scrum Master acts as a facilitator for the Product Owner and the team and works to remove any impediments that are obstructing the team from achieving its sprint goals. The team is responsible for implement all the features, typically organized around features and includes members with different skillsets software engineers, analysts, testers, UI designers etc.

FDD has six primary roles: Project Manager, Chief Architect, Development Manager, Chief Programmer, Class Owner, and Domain Expert. And there could be another bunch of supporting roles being setup in the FDD depends on the situation. Generally speaking, all those roles looks like the ones in the traditional process like the Project Manager is responsible for setup teams, maintaining a feature list and developing plan, Domain Expert is responsible for creating and refining the initial Domain Model, and Chief Architect is responsible for creating and refining the initial Object Model and the relevant notes, while Chief Programmer for refining the Object Model and assigning the development to Class Owners.

Roles required by Scrum are definitely simpler.

2.Team-Autonomy V.S. Bureaucracy

Both Scrum and FDD has “feature team”. But there’re two fundamental difference, firstly the “feature” in Scrum stands for a composite of user stories and each user stories should be able to provide specific customer values, while “feature” in FDD just stands for those specific functions that could be delivered to customers. The granularity of Scrum feature is bigger than a FDD feature. Secondly feature team in Scrum is composed with person with different background and skillset required to implement a specific feature. Typically there’re no architects in the team because the team should be able to figure out the architecture by working together. While the feature team in FDD is mainly composed of Class Owners, and the Class Owners around a specific feature should work together to implement everything defined in the object model refined by the chief programmer and the architect.

High autonomy could be achieved in a Scrum team.

3.Activities-Close Loop V.S. Open Loop

In Scrum there’re THREE primary activities. Starting from Sprint Planning where all the product backlog items are reviewed/prioritized and selected for the Sprint, and then Daily Scrum where progress from every team members are communicated and actions to address issues are identified and Review & Retrospective to present and demonstrate the working software to stakeholders and reflect on the Sprint process to identify the continuous improvement actions. There’s typically no initial phase in Scrum to create an overall requirement model and design model, because the requirements, design as long as implementation are being kept evolved as the team moving from Sprint to Sprint.

There are FIVE main activities in FDD. The first is Develop an Overall Model that is a high-level object model and notes. The second step is Build a Feature List, grouping them into related sets and subject-areas. Then Plan by Feature, that results in the development plan includes the identification of class owners, and the identification of feature set owners. The last two activities are where all the features are implemented, called as Design By Feature and Build By Feature, including tasks such as detailed modeling, programming, testing, and packaging of the system.

Activities in Scrum are simple and close loop for continuous improvement.

Conclusion

Comparing with FDD, Scrum looks much simple, straightforward and intuitive if inspected from those three aspects, and it should be a good start point for team that want to adapt Agile as their development Philosophy. However, there should be some ways to introduce best practices from FDD into Scrum and also from Scrum into FDD that could help to improve both.

Please leave your comments or email to [email protected], if you want to share some thoughts.

Thanks.

Joseph Yu

何海明

名鼎酒庄 打杂

9 年

看不懂

回复

要查看或添加评论,请登录

余水清的更多文章

社区洞察

其他会员也浏览了