Li and Process in Software Development

Li and Process in Software Development From Wikipedia: Li (禮 pinyin: Lǐ) is a classical Chinese ideograph which finds its most extensive use in Confucian and post-Confucian Chinese philosophy. Just like other ideographs of the Chinese lexicon, li encompasses not a definitive object but rather a somewhat abstract idea; as such, it is translated in a number of different ways. Most often, li is described using some form of the word ‘ritual’ (as in Burton Watson’s ‘rites’,[1] and Henry Rosemont and Roger Ames’ ‘ritual propriety’),[2] but it has also been translated as ‘customs’, ‘etiquette’, ‘morals’, and ‘rules of proper behavior’, among other terms. ...

August 8, 2007 · 4 min · Jay Flowers

CI Factory 0.8 Final Release!

CI Factory 0.8 Final Release! Announcing the final release for CI Factory 0.8.0.165. It can be downloaded here and the release notes can be viewed from here. Update: jeremyn11 and Doug Seelinger found an annoying bug in the installer. Here is a fixed version 0.8.0.166. There have been a few surprises in getting the final out the door. Due to a confluence of issues I did not complete the documentation. I have said this before and it bears repeating. Documentation for CI Factory is a nice to have. There are enough examples of success not only in setting up new factories but creating new packages as well with what little documentation there is. If you do find yourself in need of help just post to the user group. I generally answer questions in less than 30 minutes. ...

July 8, 2007 · 3 min · Jay Flowers

TestDriven.Net FitNesse Runner

TestDriven.Net FitNesse Runner I would like to introduce a new plugin to TestDriven.NET. This test runner executes FitNesse tests. Notice the attribute FitNesseUrl above. This specifies what page the runner should execute. The output of the test is a little different than what you get with a unit test: the metrics are page based. I have included a link to the live FitNesse url as well as a static html report of the test run. Of course the Test With menu items work with this so you can Debug and get code coverage. ...

June 15, 2007 · 1 min · Jay Flowers

What do MSTest and a congested highway have in common?

What do MSTest and a congested highway have in common? By the time they have been upgraded they are out of date again. Naysawn Naderi, the PM for MSTest, posted about improvements that they are making to MSTest to bring it more inline with TDD usage. He details 6 enhancements: Better execution times- Run Tests context menu item- Short cut keys to run tests- Disable deployment- Inheritance of test attributes- Hot stack traces in the failure report Where does this put MSTest? On par with an older version of NUnit and TestDriven.NET. Don’t get me wrong I commend the MSTest team for making these changes and heading in the right direction. Will these changes get me to use MSTest? Not willingly. TestDriven.NET and MbUnit are far superior. I want to use the best tools available to me. The biggest difference to me is that TD.NET and MbUnit are extremely extensible. There easy to extent as well. I have written several extension for MbUnit including an object provider fixture and with Jamie’s help a FitNesse runner for TD.NET. Being able to write extensions is critical to MSTest, I believe more so than it is for MbUnit or NUnit. Microsoft releases software on a much large time scale than the Open Source community. Both MbUnit and NUnit have made several releases since the last release, only release, of MSTest. Oddly for free MbUnit/cheap TD.NET I get more value on a more frequent basis. One would think that for the money that MSTest costs you would get everything that TD.NET and MbUnit had to offer and more. ...

June 7, 2007 · 3 min · Jay Flowers

Noble.NET

Noble.NET I would like to comment on the name ALT.NET. I agree with what David Laribee meant and Ayende clarified. I think that others are getting off track and forgetting that the central principle is to focus on the solutions that the tools enable. This requires and open mind: to be available to change no matter where it comes from. This is an inclusive frame of mind. The word ALT pushes away from the core of what David tried to capture in the label. I would like to propose a change in the label: Noble.NET. Everything that David describes is noble. There is nothing about the word noble that depends on excluding. ALT depends on some people being IN and some people being OUT. This creates the us and them mentality which is always an unhealthy place to be. Everyone can become a Noble.NET developer.

June 6, 2007 · 1 min · Jay Flowers

Causality

Causality I have been reading a bunch of books recently and just found Peter M. Senge. He is a champoin of Systems Thinking. I have finsihed the Dance of Change and am about halfway through The Fifth Discipline. There is a passage in The Fifth Discipline that just screamed agile at me: Many feedback processes contain “delays”, interruptions in the flow of influence which make the consequences of actions occur gradually. Delays are interruptions between actions and their consequences. Delays can make you badly overshoot your mark, or they can have a positive effect if you recognize them and work with them. Delays exist everywhere in business systems. We invest now, to reap a benefit in the distant future; we hire a person today but it may be months before he or she is fully productive. But delays are often unappreciated and can lead to instability or even breakdown, especially when they are long. Adjusting the shower temperature, for instance, is far more difficult when there is a ten-second delay before the water temperature adjusts, then when the delay takes only a second or two. During the ten seconds after you turn up the heat, the water remains cold. You receive no response to your action; so you perceive that your act has had no effect. You respond by continuing to turn up the heat. When the hot water finally arrives, it is too hot and you turn back; and after another delay, it’s frigid again. Each cycle of adjustments in the balancing loop compensates somewhat for the cycle before (see figure 4). ...

May 16, 2007 · 3 min · Jay Flowers

Software Configuration Management Ecowarrior

Software Configuration Management Ecowarrior There was a post on the XP Yahoo user group not to long ago asking: What do you call the “CI and automated test guy”? I recently started a new job in this capacity. The title I was given? Automation Engineer. Before I left Northrop Grumman a co-worker and ex-boss tried to help me start a new group: Software Development Lifecycle Services. It never happened, yet I liked the idea so much I have been living it at my new job. ...

May 16, 2007 · 2 min · Jay Flowers

MSTest Died!

MSTest Died! We have been encountering this from MSTest intermitently: [mstest] Passed Dod.Chcsii.DataLayer.DataAccessHelper.ReaderPlayerTest.GetCharInvalidIndexTest [mstest] Run has the following issue(s): [mstest] The connection to the controller was lost. [mstest] Final Test Results: [mstest] Results Top Level Tests [mstest] ——- ————— [mstest] Passed (run aborted) Dod.Chcsii.BusinessLayer.BusinessEntities.AntibodyTest.ConstructorIdNegativeInvalidNcid2Test … [mstest] Not Executed Dod.Chcsii.Shared.ParametersTest.Clone2 [mstest] 0/598 test(s) Passed, 292 Passed (run aborted), 306 Not Executed [mstest] Summary [mstest] ——- [mstest] Test Run Error. [mstest] Passed (run aborted) 292 [mstest] Not Executed 306 [mstest] ————————- [mstest] Total 598 [mstest] Results file: c:\Projects\dod.ahlta\Current\Build\Unit Test Reports\dod.ahltaUnitTests.xml [mstest] Run Configuration: Local Test Run ...

March 9, 2007 · 1 min · Jay Flowers

Update/Fix AsyncExec Task and Post Build Extension

Update/Fix AsyncExec Task and Post Build Extension In a previous post I introduced the task AsyncExec. For the way I was using it in that post it worked great. I hinted at using it to execute a process, letting the child process continue after the parent had exited. The task was not in fact capable of this. The ancestor task ExternalProgramBase spawned two threads for collecting the Standard Out and Error Out streams. These threads as well as the one spawned for calling the base method ExecuteTask were not background threads. These three threads plus the call to WaitForExit on the System.Diagnostics.Process object were causing the parent process to hang around. So four things needed to be addressed to allow for the desired behavior. ...

March 9, 2007 · 4 min · Jay Flowers

200 OK

OK The document has moved here. Apache/1.3.37 Server at www.jayflowers.com Port 80

March 7, 2007 · 1 min · Jay Flowers