YOUR FEEDBACK
Werner Keil wrote: Java 6 update 10. If I'd be running Apple, I'd probably really drop dead...


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP LINKS YOU MUST CLICK ON


i-Technology Opinion: Why Use Extreme Programming?
It's Not Just Another Development Methodology

Key Concepts of XP
This methodology is designed around the typical common sense approach to development; however, these fundamentals are outlined in detail to ensure your understanding and to highlight their importance.

Planning
Planning is the cornerstone of any project's success. During the planning cycle, it is important to communicate with the customer to determine the scope and the schedule of the project. These two factors are used in your typical triangle approach (scope, schedule, resources) and will help to determine which elements have a higher priority. This information will then be used in laying out the release planning. One of the fundamental differences in the planning phase used in XP is the implementation of user stories as a way of capturing use cases. User stories are written by the customer and are simple requirements that must be met by the software. It is important to note that user stories captured during the planning phase should be high level and should not include any technical jargon. In addition, stories should be small enough to implement in no more than three weeks. These stories should not be longer than a few sentences and should provide enough detail for the developer to estimate the time required to implement. During development, the programmer should ensure the understanding of the user story by communicating his or her version of the implementation with the customer. This information will be used to generate acceptance test code, thus making sure that customer requirements are met.

Designing
The design phase should be a time to validate overall functionality while also focusing on the details of the individual user stories. One of the key concepts to keep in mind during the design phase is to keep it simple. It is extremely important that developers do not add unnecessary complexity during the initial design. XP promotes the idea of refactoring code; refactoring should be an integral process, shared by all developers during development of the software. Therefore, a simple approach is the best approach for initial design. It is also important to outline naming standards during the design phase. At this stage, it will be easier for developers to agree upon and understand the naming conventions. It is important to select names that all team members can relate to without learning detailed business rules. This will ensure a quicker understanding of the overall system.

One of the pillars of the XP design process is collaboration. It is critical that collaboration meetings are held. This is referred to as Use Class, Responsibilities, and Collaboration (CRC) sessions in XP speak. During this time, the developer of an individual component will explain how his or her object will communicate with other objects in the system. This will provide a means to quickly uncover problematic issues and shortcomings in the design. The CRC sessions are written on cards that can quickly be converted into collaboration diagrams if a more permanent record is required.

Coding
The key difference in coding with the XP methodology is communication with the customer. During the coding effort, developers should never try to guess or implement solutions they think meet the requirements of the user story. Instead, they should talk to the customer. This is why XP works. If the developer does not fully understand an implementation, he or she should feel confident in explaining and validating his or her understanding with the customer.

Another key difference is the priority placed on testing. During the coding phase, the developer should always build the test case first, even if the test case is only a written process that can be implemented into a testing tool. Creating the test case first makes it easier to write the code to pass the test case. In addition, because several of the test cases are captured in the user stories, the individual module should be very close to the customer requirements. Another benefit of creating test cases is that it provides an understanding of how the code works. This also means that other developers can ascertain how the code works by reading the test cases.

One of the problems people have with XP is pair programming. This is because it is different. Developers have a strange ownership issue when it comes to code, and XP tries to break that trend. Remember, the code is written to be rewritten, especially if the refactoring rule is upheld. Therefore, it should be natural for two people to work on the same module. Also, having two people per module will make the system better, because it is built using collaboration. Obviously, only one person can type at a single moment, but more thinking is involved during coding than in actual typing. When developers are having issues with a particular implementation, they have an extra brain to utilize. In addition, two developers are more likely to capture issues and voice concerns to each other, whereas single developers tend to make an educated guess and move forward.

The final component during the coding phase of XP is ensuring no overtime. Several articles have been written about the effects of overtime on a project. Using overtime to complete a project's task tends to tire the team and leave them more prone to making mistakes. Overtime brings down overall moral and provides little if any benefit to the final release. XP provides a mechanism by which to communicate with the customer. Instead of forcing overtime on the team, the release plan should be modified or the scope should be reduced for the current iteration.

Testing
Testing in the XP methodology is one of the main things that sets it apart from other methodologies. Of course, all methodologies require the testing phase. In XP, however, the team thinks about testing from the beginning straight through to the end of the system life cycle. Tests should be automated and included with the actual code. Testing should be completed before the code is integrated and test suites should be created that test all classes and methods within the entire system. The automation of testing is critical because as the system date approaches, manual tests will be cut short. By implementing testing automation, all tests can be replicated and regression testing can be completed quickly and easily in the maintenance phase of the system. By requiring that all code pass all tests before it is implemented, the development team is ensuring a higher-quality product. Any bugs found during testing should become additional unit tests. Another key difference in testing is that acceptance testing scores should be published. This enables a higher level of quality assurance. The customer will have the ability to review the test results and prioritize the issues found during testing.

About Troy Holmes
My name is Troy Holmes, I live in Northern Virginia. I have been working in the IT industry for 14 years currently working as a J2EE architect using Websphere 5.0. I have completed several large scale J2EE applications using both BEA and WebSphere. I am a certified Java Programmer, currently preparing for SCWCD and SCJA. I have been working in the java environment for 5 years. I am proficient in Java, C++, Power builder, VB, Unix Shell. I have more then 5 years experience in Oracle and 2 years experience in Informix. My professional background ranges from System Administrator to System Architect.

LATEST LINUX STORIES
Hans Reiser’s children Rory, 8, and Niorline, 7, represented pro bono by Morrison and Foerster, the big-time San Francisco law firm, have sued their father for the wrongful death of their mother, seeking unspecified damages for being deprived of her “love, support, companionship, c...
Two years ago this weekend Linux programmer Hans Reiser murdered his estranged wife. Friday he was sentenced to 15 years to life as part of a deal that reduced his first-degree murder conviction and its mandatory 25 years-to-life sentence to second-degree murder in exchange for taking ...
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted to be...
Red Hat CTO Brian Stevens, Citrix CTO Simon Crosby, Egenera CTO Pete Manca, Allen Stewart, Group Manager, Windows Virtualization at Microsoft, and Brian Duckering, Sr. Director of Products and Alliances at Symantec were the top industry executives who joined Jeremy Geelan in the 4th Fl...
Microsoft is going to pump up to $100 million more into Novell for additional certificates that it will sell or give to customers to redeem for SUSE Linux support. Novell should get the money on November 1 right before the second anniversary of the widely loathed Microsoft-Novell pact ...
IBM introduced a series of new products, services and initiatives that further expand IBM's commitment to Linux and open source by enabling the next generation of Linux. As the company marks ten years of support for Linux, IBM announced a number of cross-company initiatives to driv...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE