« The Trouble with Templates | Main| Site Update news »

Check This Out


Bookmark : del.icio.us  Technorati  Digg This  Add To Furl  Add To YahooMyWeb  Add To Reddit  Add To NewsVine 

CIAO! is one of our most popular products, from a governance and change control perspective it is almost vital, but it is also the one that we hear the most grumbling from customers about. Most often the grumbling is from the fact that it’s perceived as an added step that just makes developing much more painful and time consuming. However, we also hear a lot of feedback about how much people love it and rely on it though. To me, CIAO! (any source control really), is an essential tool for any developer. When I don’t have to check-out/check-in code I feel like I’m doing something wrong. This doesn’t come from being brainwashed (I don’t think… but I guess I’ll never know) but from realizing that the act of checking in does something so much more than just make the form or script library available for the next developer to make a change, but from the fact that at the end of the month, I know exactly what changes were made. From that I get a complete fix list I can send out with my changes that show exactly what was changed in the new version of the template and why the change was made. So without CIAO!, I would be grumbling about that every time I released a new version because that is *way* more painful than the check-out/-in steps. And this is despite the fact that, for most projects, I’m the only one working on the template at the time, so technically, the check-out doesn’t actually matter because I don’t have to worry about someone else making changes at the same time.

So I have two sets of questions and I want completely honest answers. This is true even if you just want to trash the product … though I reserve the right to rebut to anything untrue.

First, for those that don’t like CIAO! (or source control in general)… Why? What is it exactly that is bugging you most?

Second, for those that do like CIAO!, what was it that got you to use the product, and what made you keep using it? Did you seek it out or was it forced upon you? Do you have any advice for others that are trying to implement a source control tool and make it stick?

Comments

Gravatar Image1 - Unfortunately I never had the opertunity to use CIAO (too much money for a hobby), but I really miss the safty net called "go back one version" or "branch". Also I would imagine, that the number of open source apps would be higher if there was some possibility to do work on the same database without being in the same office or even on the same continent Emoticon

Any possibility to get a CIAO Server on OpenNTF and Clients to connect to it?

Gravatar Image2 - This is an excellent topic that I don't see discussed much.

I've been writing code in various languages for over thirty years now. (Damn, that's hard to believe!) I've been using (and not using) source control at various companies with various levels of success and pain. Here's my take on this subject:

1. First you need management support for a quality development process and the creation of a quality product. In my experience this is not often present. Oh management will give it lip-service but when you ask for resources (money, time, talent) you discover the truth. It seems like even what appears to be otherwise enlightened management believes that if your not writing code your not making progress.

2. Next you need a set of development policies and procedures. Prior to my current job, in thirty years I've never worked anywhere that had this ... at least in my department. They/we were always trying to create it but management didn't really support it as stated in item one above. (And some of these were big technology companies you all know the names of and that claimed to have some CMM level 6 organizations.)

My current company has it's act together better than any other I've worked for, although the process isn't as well documented as I'd like. I have to learn the process from my peers on-the-job as I go. (We're using TeamTrack for bug/enhancement tracking and Subversion for source control.)

3. Adding a source control system will not help you if you don't have one and two above. It might even make things worse. This happened to me with CIAO! on one job and ClearCase on another.

At one job ClearCase was brought in for source control. Once in place we could not get our system to build without errors for several weeks. This was because we had no defined process, poor leadership and nobody with ClearCase experience. (That company went under even though we had a mostly working product that the customers wanted, was using and was saving them money.)

My most successful projects have had no formal source control system. They have either been single programmer projects of relative low complexity or multi-programmer projects with extremely good technical management. In both of these cases we controlled our source informally using just disk files and documentation.

It would be really helpful if someone would come up with a set of templates (Word?) of written policies and procedures for a Notes shop. This was lacking when we brought CIAO! into our small department. I asked TeamStudio for help with this at the time but got nothing useful. We used the other TeamStudio tools but CIAO! was abandoned after a few months of trying to integrate it into our informal processes.

My day job aside, I continue to support my side-job customers in Lotus Notes. I know this is considered bad policy but I make changes to production systems all the time. This is one of Notes greatest strengths. I can implement simple enhancements while talking to the customer on the phone. This keeps their cost down and gets them results fast.

I've only had a few screw-ups when doing this in the twelve years I've been using Notes this way. If I'm making larger and/or riskier changes then I make a copy of the current database, make/test the changes on the copy, then create a template from that and replace the existing design with the modified one.

I know ... I know ... I'm a bad man. But my customers love me. Emoticon

Peace,

Rob:-]

Gravatar Image3 - I like using CIAO for one reason: it's a safety net against "Oops!" moments -- like accidentally deleting code, or incorrectly modifying the hide-when formula for a bunch of cells in a table on a form or something. It happens to all of us. Otherwise, I end up making "Copy of" and "Another copy of" design elements before changing them, and it starts littering up the database.

BTW, does CIAO have a diff engine? That would be really cool, to see (for example) the code that changes between versions of a script library.

- Julian

Gravatar Image4 - @3 Whether it's an 'oops!' moment, or just wanting to try another way of cracking that nut, having another version of that agent, form, view, whatever is extremely valuable. CIAO lets you decide when to create that version, but we also have a tool that does it for you on every Save of the design element. Snapper has saved me on more than one occasion. And both Snapper and CIAO include a piece of our Delta tool to show the differences between versions (end of commercial).

Gravatar Image5 - I prefer source control for the reason Julian said - those "oops" moments, plus the fact that often times when developing a complex system one simply "barks up the wrong tree" for a few days and it's very nice to be able to roll back to time "X" and bark up a different tree. (grin)

CIAO! isn't perfect, but in recent years it's matured enough to be a viable system for Domino development. It's primary strength is it does what it says ... source code control, and it does it pretty well. Its primary failure (at least last time I checked) is it doesn't work well for anything but templates, and even then if the user doesn't have CIAO! loaded on their workstation it's too simple to bypass source control (again last time I checked). But when used within its limitations it's a fine product, and the best there is for Domino. It's been a godsend overall.

I would like to see CIAO! interoperate with a Subversion server for unified code control storage. I develop systems that use a mix of Domino and non-Domino code that interoperate; the non-Domino code uses Subversion and the Domino code uses CIAO!. If CIAO! could talk to the Subversion server I could conceivably have all of a project's source under the same branch of the same source control database instead of sprinkling it around like I have to now.

Good work, Team Studio!!

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)