Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Scrum possible without test driven development? [closed]

I have now witnessed two companies move to agile development with Scrum.

In both cases the standard of coding was good enough when each part of the application was only being worked on by one or two developers with the developers spending a reasonable amount of time working on one part of the application before moving to the next task. The defect rates were also reasonable.

However with Scrum the developers are expected:

  • to all be able to work on all the bits of the application.
  • to only work on one area of the application for a few days at most before moving to the next area
  • to mostly work on code they did not write

Code qualities became an issue in both of the Scrum projects.

So is there a way to do Scrum that does not lead to these problems, without first getting all the developers to do test driven development?

Have you seen Scrum work well on a large project without test driven development? (If so how?)

like image 441
Ian Ringrose Avatar asked Mar 03 '10 17:03

Ian Ringrose


People also ask

Is test driven development mandatory in Scrum?

To answer the question, yes Scrum is possible without test driven development. TDD is a worthwhile/recommended practice but the results will vary depending on team/context. For example was TDD in place at the start of a project or are you trying to inject the methodology in at a later date.

Can Scrum and TDD work together?

In conclusion, adopting TDD goes a long way in ensuring code quality is maintained in the long run and changes can be done to the codebase ensuring continuously working software. This essentially gives control for your Scrum teams to manage the software better and address the end user needs quickly.

What is TDD in Scrum?

In layman's terms, Test Driven Development (TDD) is a software development practice that focuses on creating unit test cases before developing the actual code. It is an iterative approach that combines programming, the creation of unit tests, and refactoring.

Is BDD part of Scrum?

Behaviour-Driven Development (BDD) Helps in Optimizing the Value of Work Done by Scrum Team. Behavior-Driven Development (BDD) is a well-known practice for collaboration and teams use it to bridge the gap between product management and the software development team.


1 Answers

I'd like to expand on what Dan said.

It's a very common misconception that Scrum / Agile dictates software engineering principles. This is a fallacy for many reasons. As Dan mentioned, Scrum is a software management process, NOT a software engineering process. That being said, very often you will see many engineering principles associated with Scrum; methodologies such as TDD, XP, etc tend to complement the management methodology that Scrum promotes, but are not required.

The reason that CI, TDD, and other engineering practices are so often found hand-in-hand with Scrum is that in general, many are good practices to follow no matter what management methodology is used.

I'd like to address a couple other fallacies in your OP:

However with Scrum the developers are expected:

* to all be able to work on all the bits of the application.
* to only work on one area of the application for a few days at most before 
  moving to the next area
* to mostly work on code they did not write
  1. As mentioned above, Scrum doesn't dictate what type or kind of work a developer works on. The developers themselves decide on what work to commit themselves to; if a database-heavy dev wants to only work on the DAL and associated stories, there's no reason that they cannot.

  2. Again, Scrum doesn't dictate anything about how to build the application, so your second point is moot (see point 1).

  3. This is a fallacy, since there is nothing that says a developer should only work on code that isn't theirs, or anything about how a developer should develop. If a developer on a Scrum team finds his/herself only working on others' code, that would be coincidental, not because of the scrum process itself.

See this question/answer for more information on the qualities generally expected in a developer working Scrum.

like image 116
Josh E Avatar answered Oct 13 '22 03:10

Josh E