| Christian Sepulveda's Blog | |||||||||||||||||||||||||||||||||||||||||||
|
July 23, 2003
NBuilder: Iteration 0: Retrospective
Iteration 0 was really short, so there isn't too much to say. I had set an 8 hr time box which I cut to 3, since I was able to make a few decisions quickly and my research didn't take too long. First, for the small logistics, NUnit and NAnt are definitely going to be used. I am going to pass on Cruise Control.NET for now. I was researched MS Visual Studio / CVS IDE integration and found this article, which gave pretty good instructions. After overcoming the frustration of not getting it to work in the past (and as the article's author points out), I realized the Microsoft SCC (Source Control API) is not really compatible with CVS. For example, you must explicitly check out files before working on them. I find CVS tools and semantics to be better, so I will stick with WinCVS. IDE integration doesn't get me too much, though I admit I really like using it in Eclipse. The most significant part of Iteration 0 was selecting a project. I have decided to use the construction of NBuilder itself. I realize this is a little on the metaphysical side and a little "trendy" (using a tool to build a tool, like xUnit), but I was looking for a project that would allow me to explore my requirements and was realistic. I don't want to invent some fictitious situation, as it would be harder to consider the real needs of an application. I fear I would start to meld the app's needs to satisfy the assumptions I have about how NBuilder should work. Since the usage of the application should allow requirements to emerge, I think this is a good strategy. More later, with Iteration 1 planning game, though I will be out of the country and won't touch this for a week or two.
Posted by csepulv at
06:28 AM
July 16, 2003
NBuilder: Iteration 0: Planning Game
QUESTION: I plan (hope) to make frequent postings about NBuilder to organize the project and provide a basis for reflection. For xTeamWorks I started a separate blog in anticipation of it becoming a distraction for anyone reading my normal blog. Anticpation is bad (not to mention my arrogant presumption that people read me blog), so I am not doing this for NBuilder, at least not yet. If anyone cares about this, let me know if you would prefer a separate blog for NBuilder or for me to post NBuilder entries on my normal blog. Thanks. I have the following stories for Iteration 0.
I plan to have this iteration be short (one day). Since I rarely have a whole day to spend on personal projects, I am time-boxing the iteration for 8 hours. In a retrospective, I will monitor my velocity for actual time spent working vs. the time that transpires due to lag between work sessions. As far as the development environment goes, there are specific tasks / considerations. I will be using MS Visual Studio 2003, NUnit and possible NAnt. I have not used Cruise Control.NET and may look into it. I need to decide about configuration management. To this point, when working on open source projects with .NET, I have used Tortoise and WinCVS to update files. I want to use something that integrates with the IDE, but have not had success setting up Igloo yet to work with SSH. I also have the complication that a lot of my work is done offline, be it on planes or in hotels. I like to use MS Visual Source Safe locally to provide version control when offline. Ideally, I would have source control IDE integration, that I can use with CVS when online and switch to Source Safe when offline. (It would be really nice to synch the incremental checkins from Source Safe to CVS. If anyone has any ideas or experience with this, please let me know. I will be very grateful.
Posted by csepulv at
07:00 PM
Vision for NBuilder
In a previous entry, I noted that I am beginning to work on NBuilder again. As I am starting a new, I am trying to be quite disciplined in adhering to the principles of XP and TDD. (I hope to be critical and consider if I follow these principles as well as I presume to.) So, in order to provide a monitoring and reflection mechanism for myself, I will try to diligently blog my thoughts. These are my primary goals:
There is one significant requirement / motivator for NBuilder, that I don't want to make a core goal but is in the back of my mind. I would like the persist the objects with different mechanisms, such as XML vs. a relational database. One of the practical drivers have been the need to refactor and tune database schemas, be it for performance or space consideration. There are a variety of other specific features in mind, but I don't want to clutter my thinking, get ambitious or do much anticipating. I want the vision to be simple.
Posted by csepulv at
07:00 PM
NBuilder: It Begins..(again)
"NBuilder is an application framework for developing enterprise and information system applications. It provides support for the development of an object-oriented persisted domain model. It includes tools for modeling the domain, generating code for the domain entities and application, and a series of base classes that allow the rapid development of a stable, scalable, high performance application that easily supports automated testing and reusability." The above appears on the Source Forge site for NBuilder and pretty much reflects my original ambition. Basically, most of the code I write needs to be persisted in a database and .NET doesn't have the nifty tools for object-relational mapping that Java does. (I can't believe I used the word nifty!) So, I (and the teams I have worked with) have generally crafted custom code generators / metadata managers that provide persistence and related services for Microsoft .NET projects. There are a few motivators for me. First, I hate duplication. I (and other team members) have built such a custom tool several times now. Each time we learn something new, experiment and tweak for the specific circumstances in which we were working. So frustration is the first motivator. Impatience (and frustration again) is next, as I can't wait anymore for someone smarter than me to do this. I have come across a few tools that address similar issues (some free and some commercial), but they don't address my needs terribly well. Finally, there is vanity. Part of me (a larger part than I really want to admit) is convinced I can achieve some level of generality for the tools application. I actually tried this a few months ago, wrote something fairly quickly that I thought was useful. (It is actually being used for production code by one of my clients.) It has a variety of flaws, which I won't go into here, except for one. The largest flaw was in the approach and ambition. I assumed to know too much (I have done this multiple times before, I can fast forward to..) which leed to anticipation and some flawed design decisions. I also started with the ambition of writing too general a tool. So why will this time be any different? It probably won't. The rationale part of me can smell some bad signs already. But, there is the vanity thing and vanity isn't rationale. So, being a glutton for punishment, I being again the search for my white whale. There are a few things that keep me hopeful (or delusional). I think of Kent Beck's reflections on the money example of Test Driven Development. Beck notes how he has written the example numerous times and found that with a new metaphor, he discovered the cleanest implementation yet. I am hoping the powers that be take pity on me and provide this inspiration. I also hope to be as disciplined as possible in XP and TDD principles as I can (which I did not do so well last time around). Next is a practical hope. I have a few current "issues" I need to address in a couple of different projects. Some are client related, some are not. This will limit the amount of disclosure I can provide in my blog entries, but being a pragmatist I will quickly abandon all lofty ambitions for solving the problems that pay the bills. If I do this well, this attempt will definitely make it worthwhile. Finally, I will learn something, probably a lot of somethings. This new knowledge may prolong my vanity and delusions, but continued learning is better than being stale and complacent.
Posted by csepulv at
07:00 PM
|
cs@atdesigntime.com Syndicate this site (XML RSS 2.0)
Search
Archives
November 2005
October 2005 September 2005 August 2005 October 2004 March 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003
Recent Entries
NBuilder: Iteration 0: Retrospective
NBuilder: Iteration 0: Planning Game Vision for NBuilder NBuilder: It Begins..(again)
Links
Browse By Category
| ||||||||||||||||||||||||||||||||||||||||||