Step by Step Administration Procedures
These procedures for the first time allow multiple people to pursue multiple projects at the same time. That's one advantage of this administration system. No one should find their changes wiped out by someone else. Everyone's work will be frozen at the end of testing, before the final checklist is performed. Otherwise, you could run through the checklist and someone else's work could change things. I think the "worst" that can happen is that someone would clean up after their work and reference a frozen dated file in a testing master page. In fact, to simplify this, for now at least, it looks like we're going to perform cycles of testing, that will halt development momentarily while we push changes across the site in "waves". The pages are frozen and then testing can restart. The only downside is that if errors are found in the testing checklist, the page will have to "fail" testing, continue to develop on the new template and go around again when whatever bugs are cleared up.
After working on this for awhile and studying more about project development methodologies, Earth Chronicle makes sense to build using iterative development. It's not a website that will ever be "finished", so changes need to be made to the live site. UI changes should not be made frequently to avoid confusing people; you'll note that even with the magnitude of the changes that have just happened, most of the Beta page layout has not changed. It's been optimized, I've played with the colors to better communicate visually with. The behavior of components has been altered for optimum cross-browser, cross-platform, and cross-display compatibility, but the UI components don't look significantly different.
[chroniclemaster1, 2009/09/20]
The first thing to note is that once a page is dated (e.g. BetaMainMaster20090125.master) it's Done. It shouldn't be modified ever again except to keep workingLinks in line so you can navigate in and out of the page. In this arrangement, it's a little deceptive, but the files which compose the live pages are also effectively dead. The workflow, the lifeblood of development for Earth Chronicle now flows through the Testing files, (e.g. BetaMainMasterTesting.master). The Testing pages are the only ones we make modifications to. Dated pages are frozen; any changes to them would be lost to the live files and it would alter the frozen state of the page. Live files have a limited life expectancy too, as they are lost when the new Testing is saved over them. So here is the "circulation" of the Testing files.
-
Begin Testing
-
Start a new page (ie copy the testing page template and the holding page template to the appropriate folder in the website where the content page will live)
-
Rename the holding page file to the filename you want.
-
Open the holding page and replace "ThisPage" in the @Master Title attribute and the <h1> tag with the page title.
-
Open the index which will point to the page and add a link to the new page. (plus any accompanying text and explanation)
-
Make sure the link works in a browser and displays the holding page.
-
Give the testing page template the same name as the holding page, but with a ~ in front.
-
Make sure you can manually insert a ~ into the URL in front of the holding page name to access the testing file.
-
Conduct Testing
-
Don't modify dated files!
-
Copy the most recent dated file to a Testing file, and change references from dated files to the Testing files. You can then modify the Testing files instead. Testing files are the only ones that should ever be modified.
-
When testing is complete...
Record
-
Copy ContentDemoTesting.aspx to a dated file, delete unfinished items. (Delete finished items from ContentDemoTesting.aspx)
-
Add the new file to OngoingTesting.aspx and update references. Compare the new dated file with the previous version and make sure the ContentDemo page accurately explains all changes.
Freeze
-
There are three calling files, files which may call other testing files: the nested master certainly will, and the primary stylesheet & main master page might. Rename any of these testing files to a dated file, e.g. BetaMainMasterTesting.master to BetaMainMaster20090406.master.
-
Rename all other Testing files referenced in the calling files to new dated files. This freezes development. Be sure to update each file's date in the <head> of the dated nested master, e.g. BetaMainMaster20090406.master.
-
Change all references in the three calling files to the new dated files. There should be No references to Testing files in the calling files when you're complete, and no Testing files should even exist at this point. (The downside is that testing isn't "really" ongoing, it has a definite end.)
-
Copy the dated nested master back to a Testing file, e.g. BetaMainMaster20090406.master to BetaMainMasterTesting.master. This ensures that the Testing template doesn't collapse for want of the file, although all the references will now refer to dated files.
Check
-
Run the page through the checklist.
-
If necessary, correct any errors in new dated files and resave them. Rerun the checklist. Repeat until finished.
-
Implement New Changes Live
-
Compare the Resource Dates in the <head> of the current BetaMainMaster.master to the resources in the new dated master, e.g. BetaMainMaster20090406.master.
-
All resources that are newer than the versions used by BetaMainMaster.master should be saved over the "live" resources thus taking the changes live. EXCEPT ecBetaPrimary.css! This should only be saved over if files are moved which should be very infrequent.
-
Open BetaMainMaster and reset the resources from folder/2009/file20090504.blah to folder/file.blah. Otherwise they will still be referencing the frozen test files. (You actually can't tell a difference and it works. We'll have to consider this, but for now, I want to keep all resources in the locations specified on the table above.)
And you're done; that's the flow of a testing cycle. And implementation doesn't get much easier than that. The only wrinkle is for pages that have .cs files. In that case, when you save the pages, you'll need to update the partial class name in the .cs and the parent file to match the new filename. Just one reason why we are very glad that most of our pages reference NoCode files. (since the partial class names will remain "NoCode") Phew!