Session E-REFA
Extreme Agile Refactored Methodical Programming
Contents
It seems like the world is filled with new buzzwords talking about a revolution in the way that software is developed. Or is this all a trick by a few clever authors trying to sell books? How do you adopt a new methodology and what should you be considering? In this session, Ted discusses many of the ideas put forth by the „Agile Alliance“ and various authors, and describes real-life experience at bringing these theories into practice.
Check out the book lists on Hentzewerke.com or StevenBlack.com for nearly every book I would recommend. There are new books coming out all of the time – watch web sites and magazines to find out about new ones.
There are many magazines you should consider. Industry specific magazines, such as FoxPro Advisor, FoxTalk, UT Magazine, and CoDE, are required to stay up on what is happending in the FoxPro world. Consider also more general magazines such as Software Development, Dr. Dobb’s Journal (www.ddj.com) or general computer magazines such as PC Magazine.
An online presence is nearly required to keep up with everything going on. Consider the FoxPro Wiki (http://fox.wikis.com), http://www.foxforum.com, http://www.universalthread.com, CompuServe (http://www.compuserve.com), the Virtual Fox User Group (www.vfug.com) and the latest entry, FoxCentral (http://www.foxcentral.net).
Certifications can serve many purposes. You can use them to self-validate your level of learning, You may need them in your work environment to establish standards for your workers. Some programs you get involved with, such as the Microsoft Solution Provider program, may require a certain level of certification. And, finally, you can use a certification as a marketing advantage over competitors who lack the certification.
Degree programs can offer similar advantages to an industry-specific certification, with the added benefit of being recognized outside of that industry, as well.
In light of the many security problems that have occurred because of programming glitches, and a growing body of evidence that failing to follow commonly accepted practices of good software development leads to expensive and sometimes dangerous failures, it is likely that governments will consider starting to regulate or license the practive of software development. If you have already started a program of continuing education, and have achieved industry certification or a university degree, it is possible that you can be “grandfathered” into the program without as much effort as someone who had not documented their educational efforts.
It’s impossible to keep track of everything going on the software development world. Here are a few items that have really caught my attention over the past year.
Extreme Programming (“XP”) comes from a zealous group of Smalltalk programmers, who have spent nearly 10 years refining a methodology.
Kent Beck is the ringleader of a group of programmers who developed a major software application for Chrysler Corporation. These programmers have gone on to write a half-dozen books for Addison-Wesley with the “XP” logo.
Martin Fowler was also a member of the C3 project at Chrysler, and contributes to some of the Addison-Wesley books. In addition, his own book, “Refactoring” is the equivalent of design patterns for performaing maintenance on existing OOP code. The idea is that there are ways to “refactor” – modify, merge, rename, reassign – method code that works, and there are other ways that are problematic. This book covers the most common pattersns, when they apply, the problems they can cause, and the step-by-step instructions of how to start with working code, taking small steps to convert it, testing along the way, and ending up with better, more reliable working code.
The Agile Alliance was a great excuse for a business expense. Held 11-13 Feb 2000, at Snowbird Lodge, in Utah, US, leaders in the development disciplines for many of the major methodologies came together and set forth these declarations:
We
are uncovering better ways of developing
software by doing it and
helping others do it.
Through this work we have come to value:
Individuals
and interactions over processes and tools
Working software over
comprehensive documentation
Customer
collaboration over contract negotiation
Responding to change over
following a plan
That
is, while there is value in the items on
the right, we value the
items on the left more.
Kent Beck |
James Grenning |
Robert C. Martin |
©
2001, the above signatories
this declaration may be freely copied
in any form,
but only in its entirety through this notice.
C2.com is the Original Wiki. What’s a Wiki? A Wiki is a web site with a clever piece of software, often a database and versioning repository, that allows visitors to the web site to change the content. As an interactive web-based bulletin board system, in the hands of the right community, a wiki can develop phenomenal collections of knowledge and wisdom. An entire community can capture its knowledge and wisdom on a web site! Cunningham & Cunningham are the two C’s in the web domain. This wiki has tons of material on programming, Extreme Programming, links to great sites on patterns, wiki software and many other topics.
Testing modules is nothing new, and the term Unit Testing has been around for many years as a description of testing individual modules. Unit Testing, as used in XP involves a framework that can support test each or all units. The key with XP is that you write the tests first, then the code. In the process of writing the tests, you discover all the “What if…” cases rather than when you are writing code. When you have completed developing your modules and it passes your unit tests, you integrate your tests into the main testing matrix, and then integrate your code into the main code stream. By having a machine set aside to do this integration, you can immediately test then you can use all tests to verify your code didn’t break something else
© 2000