aspose file tools*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Refactoring, extreamProgramming, Agile Modelling, SCRUM Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Refactoring, extreamProgramming, Agile Modelling, SCRUM" Watch "Refactoring, extreamProgramming, Agile Modelling, SCRUM" New topic
Author

Refactoring, extreamProgramming, Agile Modelling, SCRUM

s penumudi
Ranch Hand

Joined: Nov 17, 2004
Posts: 113
Hello All,

I am just in a state of confusion putting all these together.
This is just my understanding.

Refactoring: Is the processes of improving the software so that the external behavior remain same but internally imporves the code readability and logic.

Question:
In the software development process, in which phase does this refactoring falls in. Does it is something that can be done for an on going project or refactoring is done on project that is in production.

Extream Programming: I guess this is like one of the software engineering process which defines different phases that goes into s/w development life cycle.

Question:
1. I am not sure what are the complete phases of this process. I just know some of them like. Planning, pair programming, continous integration, unit testing
This is where I get confused with Agile modelling. I read similar concepts in agile modelling too. I am not sure what is difference between both.

Agile Modelling: exactly don't know what it is? Confused with extream programming.

SCRUM: Is the one of the s/w development process.

Question:
I would like to what are all the phases of the SCRUM process. I just ead abt it and knew what it is and how it works. But like RUP where it has 4 different phases like inception, evaluation, contruction and transitions, I would like to know what are the phases and activities of SCRUM.

Finally I would like to know how all these concepts can be put together.

your input will be a great help to me

Thank you in advance
Udayan Patel
Ranch Hand

Joined: Oct 14, 2004
Posts: 94
Originally posted by s penumudi:
Hello All,

I am just in a state of confusion putting all these together.
This is just my understanding.

Refactoring: Is the processes of improving the software so that the external behavior remain same but internally imporves the code readability and logic.

Question:
In the software development process, in which phase does this refactoring falls in. Does it is something that can be done for an on going project or refactoring is done on project that is in production.

Refactoring is ongoing effort. the more you write code you take sometime to organize(refactor) it.

Extream Programming: I guess this is like one of the software engineering process which defines different phases that goes into s/w development life cycle.

Question:
1. I am not sure what are the complete phases of this process. I just know some of them like. Planning, pair programming, continous integration, unit testing
This is where I get confused with Agile modelling. I read similar concepts in agile modelling too. I am not sure what is difference between both.

Agile Modelling: exactly don't know what it is? Confused with extream programming.

See Scott Ambler's posts in RUP section

SCRUM: Is the one of the s/w development process.

Question:
I would like to what are all the phases of the SCRUM process. I just ead abt it and knew what it is and how it works. But like RUP where it has 4 different phases like inception, evaluation, contruction and transitions, I would like to know what are the phases and activities of SCRUM.

Finally I would like to know how all these concepts can be put together.

your input will be a great help to me

Thank you in advance


Scrum is a development process. part of extreme.
[ January 17, 2005: Message edited by: Udayan Patel ]
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Originally posted by s penumudi:
Refactoring: Is the processes of improving the software so that the external behavior remain same but internally imporves the code readability and logic.

Question:
In the software development process, in which phase does this refactoring falls in. Does it is something that can be done for an on going project or refactoring is done on project that is in production.

Refactoring can be done every five minutes, every couple of hours, even every 3rd month. It's just that if you do it every 3rd month, you'll spend the whole month doing it. The recommendation is to consider refactoring as something you do all the time, in small steps.

Originally posted by s penumudi:
Extream Programming: I guess this is like one of the software engineering process which defines different phases that goes into s/w development life cycle.

Question:
1. I am not sure what are the complete phases of this process. I just know some of them like. Planning, pair programming, continous integration, unit testing
This is where I get confused with Agile modelling. I read similar concepts in agile modelling too. I am not sure what is difference between both.

XP promotes very short iterations (increments) of 1-3 weeks in which the team together with the customer basically go through all the phases of the traditional waterfall lifecycle. An iteration starts with a requirements engineering session which XP calls the Planning Game where the team estimates features and the customer prioritizes them. Once this is done, the rest of the iteration is spent on implementing those features, relying on the customer being available for clarifying what she wants from the features. Simultaneously with implementing the features, the team is writing acceptance tests (either automated or not) and when the iteration is finished, most of the acceptance tests should be passing. What hasn't been implemented is put back into the backlog. Then, the next iteration starts all over again from the Planning Game.

The point behind such iterative and incremental development is to fail fast rather than late, meaning that when each iteration is just a couple of weeks, the customer actually has control over what she's getting for her money and the organization doesn't end up scrapping the project as yet another $50M project that managed to put 0 lines of code to production.

That's really a rather simplifying description of what XP (or agile software development) is about so I'd really urge you to pick up a book if you're interested in the topic. Or, ask more questions


Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31077
    
233

Refactoring is done during any phase of development. It is best to refactor as soon as possible so the code doesn't get too messy. This type of refactoring is done during the development phase. It is also done during the maintenance phase if you see that it would be easier to add a new feature after a refactoring. Refactoring may also be done for the first time after the code is in production. This is typically done when code someone else has written is dumped in you lap. Search this forum for "working effectively with legacy code" for more on this.

Scrum and Extreme Programming are different development processes. You would use one or the other, not both. There are differences in iteration length and other factors. Refactoring can and should be done regardless of development process.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Originally posted by Udayan Patel:
Scrum is a development process. part of extreme.

Actually, Scrum is a management process. Also, (and I'm not sure if you meant to imply this but...) Scrum is not part of Extreme Programming although they can be combined together rather nicely (XP provides the development process that Scrum is missing).
s penumudi
Ranch Hand

Joined: Nov 17, 2004
Posts: 113
Thank you very much for all your responses.
I really appreciate them.

All these concepts seem to be very interesting to me. I would like to explore more on this.

I looked at the post which Uday was suggesting. Even I was not able to open the link which Scott Ambler has provided. I would appreciate if you could provide alternate link where I can read the article.

I am still not very clear on the concept "Agile modelling"
I would appreciate if you could give me some more details on this

Thank you very much..
I really appreciayte your replys
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
A nice short intro to XP can be found at http://www.xprogramming.com/xpmag/whatisxp.htm

The AM homepage is at http://www.agilemodeling.com/


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
A little more on the relationships of all these ... XP describes a minimal (given certain quality goals) process for generating software. SCRUM is more about management stuff. Since SCRUM doesn't really specify how to code, you can slip XP in as the coding part of SCRUM without too much folding and mutilating. With XP or SCRUM or any other method you may need to spend some time modeling. Agile Modeling has some great tips on how to do it well and how to do just enough without doing too much. My most lasting takeaway from Scott's AM work is to think about the cost and value of every model or document and see if it's really worth doing.


A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Udayan Patel
Ranch Hand

Joined: Oct 14, 2004
Posts: 94
Originally posted by s penumudi:
Thank you very much for all your responses.
I looked at the post which Uday was suggesting.


Make sure though, My last name is not Hussain.
s penumudi
Ranch Hand

Joined: Nov 17, 2004
Posts: 113
I am sorry Udayan, I did not mean to change your name. It was a typo.

I am really gald to get responses from all you experts.

Thank you very much.
[ January 18, 2005: Message edited by: s penumudi ]
Udayan Patel
Ranch Hand

Joined: Oct 14, 2004
Posts: 94
Originally posted by s penumudi:
I am sorry Udayan, I did not mean to change your name. It was a typo.

I am really gald to get responses from all you experts.

Thank you very much.

[ January 18, 2005: Message edited by: s penumudi ]


Nothing serious man, I was just joking.
Ashik Uzzaman
Ranch Hand

Joined: Jul 05, 2001
Posts: 2370

Have a look at the following link -

http://groups.yahoo.com/group/JPGroup/message/667


Ashik Uzzaman
Senior Member of Technical Staff, Salesforce.com, San Francisco, CA, USA.
Scott Ambler
author
Ranch Hand

Joined: Dec 12, 2003
Posts: 608
Agile Modeling (AM) is a partial methodology which focuses on how to be effective at modeling and documentation. It's "partial" because the assumption is that you'll tailor it into another process such as XP or RUP to help improve your modeling and documentation efforts.

Agile Model Driven Development (AMDD) describes how to take an agile approach to modeling on a software development project.

- Scott


<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Refactoring, extreamProgramming, Agile Modelling, SCRUM