Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm just starting out on the implementation of a large enterprise-wide system, which has complex requirements and many stakeholders.

The company has been through high-level evaluation and tender process and determined to purchase a highly configurable "off-the-shelf" product rather than building an entirely bespoke system. The system will replace several existing systems and will require a significant amount of data migration.

I'm thinking that the implementation of this system (which is expected to take over 2 years) could be run in a similar way to a Scrum software development project.

With the first sprints targeted at building the minimal possible functionality needed (across all functional areas), and then iteratively deepening the level of functionality according the stakeholder feedback. I think this will de-risk the project and help ensure a balance of stakeholder needs within the available time.

The user stories are still the same, it's just that to implement them we have work within the constraints of the pre-purchased system. When it comes to 'building stuff', instead of writing custom code the team will be configuring the off-the-shelf package, writing data conversion scripts and the like (and it should be a lot quicker!).

Does this sound like a sensible approach? Does the Agile approach makes sense here?

share|improve this question

2 Answers 2

up vote 2 down vote accepted

As AlexBottoni already mentioned SCRUM can be used because even customizing is software development.

But for your approach to do several sprints in creating basic functionality is the wrong way. Get one of the existing systems and replace it with the new solution. This should be done in only a few sprints. Select only few user stories at first to implement. When the first system is replaced get the second one. Don't try to replace everything at once because then it is more likely to fail. Even if it seems to cost more time it is worth to replace one system after another. Also then the management will see faster what will be achived.

If you take two years to replace everything the current systems will be developed further and you have a moving target...

share|improve this answer
    
"Even if it seems to cost more time it is worth to replace one system after another.": But does it only seem that it costs more time or does it really cost more time? Because one of the goals of SCRUM is to optimize the total time spent on a project. –  Giorgio Nov 24 '12 at 12:54
    
"It seems..." does not say it is so. The advantage is that you have steady results which can be evaluated. Also you can make better estimates after each sprint. In most cases SCRUM is faster but that is not a law... –  Uwe Plonus Nov 24 '12 at 13:56
    
Thanks. 1) So identify all of the systems that are being replaced (and any large subsystems within these). 2) Use scrum to completely replace the old-system/sub-system that is smallest and has the fewest dependencies. 3) Repeat. –  AndyM Nov 25 '12 at 6:22
    
@AndyM That is exactly what I meant. So the users can work continuous... –  Uwe Plonus Nov 25 '12 at 7:43

Despite the use of an off-the-shelf product, this is a software development project and will have to be run accordingly (withs SCRUM, Agile and/or other methodologies).

As you said, you will have to write migrations scripts, configuration files and so on. This is software development. Anything else.

You will have to use a source code versioning system like GIT, Hg, Subversion or CVS. You will have to keep track of bugs and requested features. You will have to document what you are developing. You will have to test your system.

This is just "software development", so your approach is more than sensible. It is mandatory.

Agile development almost always make (at least some) sense. Sometime it has to be used together with others (more formal) methodologies but it is almost always a good starting point.

share|improve this answer
    
+1, for identifying it's a SD project. However SCRUM works for non-software projects, so would be suitable even it this was not. –  mattnz Nov 25 '12 at 3:15
    
Well, actually SCRUM works for SD and non-SD projects as well: Scrum is an iterative and incremental agile software development method for managing software projects and product or application development. (from en.wikipedia.org/wiki/Scrum_%28development%29 ). You can use in your project, for sure. –  AlexBottoni Nov 25 '12 at 10:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.