Code Collaboration in the MV world?
Will Johnson started a great thread in the U2 forum, asking about where people go to find and support FOSS for the MV DBMS. Well, there are precious few resources for collaboration in this market. Here are my thoughts on the matter.
I’ve been trying to foster collaborative efforts in the MV community for over a decade, usually with very little success. I can summarize my perspective on this in three points which all dove-tail.
First, with a broad generalization it seems to me that people who have jobs aren’t motivated to work on FOSS projects, and people who are self-employed don’t have the time.
Second, many people believe that all tools should come from the DBMS vendors and not from the community. As someone who has made a career of providing solutions that don’t exist elsewhere I’ve been mesmerized at how people will wait forever for solutions that never come from the DBMS providers, while not being willing to pay anything to get solutions right now. Regardless of how well I’ve done my job, I’m just saying this market largely doesn’t use tools that don’t come in the box, and people would prefer to wait for something that may never come than to spend a few bucks to get something now.
And third, there is a huge sense of pride in this community that we can do anything with the Pick model, and yet that belief isn’t exercised. In other words, one of the strongest objections I get to some of my initiatives is “I can do that by myself”, but then people never do. Companies go without solutions for years because they know they can “do it themselves”, if only they can find the time to do so. The belief that someone is self-sufficient precludes interest in collaboration on someone else’s projects, even when people ultimately don’t create the solutions that they know they can create, and perhaps solutions that they need for immediate projects. Unfortunately the result is often that the Pick IT departments get replaced with expensive platforms where add-ons are the norm and internal development is used not to create components but to glue existing ones together.
Will asked about using a medium more suited for collaboration than the old software running PickWiki. I did migrate PickWiki.com into a prototype environment based on MediaWiki a couple years ago but lacked the time to complete a full migration effort. While still a wiki, MediaWiki is better suited for collaboration than the existing software – for example an issue tracker module can be integrated with the environment:
But for non-wiki CMS… Years ago Glen Batchelor maintained collaborative sites for this community. One was PickSource.com (now gone), based on the PHPNuke CMS. Another was MV Dev Central based on GForge (a personal SourceForge), and I worked with Glen extensively on that one. There were forums, issue trackers, and a project page for each project. It’s my impression that he was constantly frustrated that with the numerous projects hosted there that only a small number of people wanted to use free code, and few offered anything back – even much commentary. These sites died a lonely death.
Aside from community-supported sites, there are projects on SourceForge. Here’s another project that died a lonely death for reasons described above.
Ironically, this market isn’t even very good about following blogs. The few of us who do blog get such little traffic from the MV market that these sites are largely used more for personal catharsis than as central repositories for information. The resources are horribly under-used in a market where many people hunger for knowledge on some topics – “demand” just isn’t interested in “supply”.
The problem is not in where these projects are hosted, but in the mindset of the MV community. Anyone can post a project anywhere and point others to it, but “build it and hope that they will come” doesn’t work at all in this community. It’s the Who, not the Where problem that needs to be solved.
8 thoughts on “Code Collaboration in the MV world?”
Great post Tony. I completely agree that the who is the real question that needs answering. The where is merely an implementation detail that can be relatively easily solved.
I also have a project for MV on SourceForge – ‘UniBasic Code Coverage’. I previously wrote this for my employer, but got permission to rewrite it and release as open-source and have just started looking at it again.
As to who, I am putting my hand up. The last few weeks I’ve been taking notes on what would be required to make an open-source repository for MV databases work.
For anyone who is reading this, feel free to contact me if you wish to collaborate. Important to note is that you must be willing to actually work on, or support the administration of, open-source projects in the MV stack.
I wanted to publish a program on PickSource.com, but I couldn’t figure out how. After repeated visits, I finally figured out that I had to “Add News” to post program code. I was probably one of three people to figure that out. MvDevCentral was, unfortunately, more of the same.
I didn’t understand the motivation behind the MVWWW project. I know I can create html in java and other languages, why not BASIC too, right? In my own experience, we had a similar project (tool) and every time the web guys wanted to change the html they had to get a PICK programmer to make the change. So in my own bias, MVWWW did not deserve my attention.
Aside from those issues, think about the dynamics of collaborating on a specific project. In other environments, I use some sort of source code “checkout” tool, or perhaps the IDE itself, to get the source code from the central repository. I modify, build, and test my changes within the IDE’s debugger, and commit them to the project. Similar steps for a PICK based project are clunky at best; a person has to be pretty motivated to go through the pain and agony of collaboration.
This really is a “social interface” problem. Building tools and infrastructures that “work” but don’t model the natural way that PICK programmers would otherwise collaborate are a waste of time and energy.
Thanks Rex. There are indeed two issues being discussed here : interest in environments which host FOSS, and interest in FOSS itself.
To your points on the first matter:
PS was phpNuke and MVDC was GForge=Sourceforge (history), and since these are industry standards, inability to navigate must be a “localized” problem. Sure, those environments have their problems, but tens of thousands of people “get it” and use them every day. I was really just citing Glen’s noble efforts as examples – I can’t think of any other MV initiatives that use industry standard CMS.
That aside, I think the larger issue is that the MV market has enough people to quietly kick the tires on a community site, but not enough people to care enough to post notes to a forum or to admins about UI issues, and to see issues through to usability. Every effort in this market is a personal initiative by one or two people working in a vacuum. So there is little collaboration on environments. And when projects hosted at these sites get zero collaboration to enhance the projects hosted at these sites, there is just no motivation to keep maintaining the resources for admins or authors who post code.
As to your notes about checkout, etc: sure those are valid considerations. It’s easy to toss a single program around, but there are no standard protocols for passing around multiple programs and dict items. I wish we could elevate the discussion to the improvement of our distribution and collaboration methods, but with little interest in FOSS itself, is it worth it? Maybe this is a chicken and egg scenario, but no efforts to “fix the egg” have led to any chickens, and few chickens are laying any eggs, so it’s tough to justify any community efforts to solve this problem of MV-integrated CVS, etc.
To the second matter:
As with any utility, MVWWW wasn’t for everyone, but again that was just one example. None of the code at PickWiki gets enhancements and I’ve never received updates to my own freeware either. People are discouraged from posting FOSS for open consumption, not so much because there’s nothing coming back, though that’s significant, but usually because authors almost never get any feedback at all. Tell the author there’s a bug or that it doesn’t work in a specific environment. Tell us it’s great or that it sucks. Anything. Commentary is collaboration. Usage is collaboration. If it doesn’t look like anyone is using published FOSS there’s no motivation for even publishing it.
As another example of lack of interest for FOSS in this market, rather than copying code from author sites to PickWiki, in some cases I posted links from PickWiki to the authors. Along with some links I commented that it would be a loss if those sites closed down because we would collectively lose the wonderful resources. No one took initiative to do anything about that. Sites did close down. No one cared. You see, it’s not the environment, at the core of our issue here is a total lack of interest in the concept of FOSS.
I’ll agree with your summary, but don’t think that’s what’s stopping this market from collaboration. I hope we get an upswell of people who say I’m wrong. (Wouldn’t be the first time that’s happened. 😉 )
Actually, I agree with all of the above. (Sorry Tony, I couldn’t resist.)
Personally, I am interested in things like Pick code-sharing, but I get dizzy trying to keep track of the newly born and newly dead sites. I was hoping U2 would be a central repository, but then I have to go to Neblog to see Tony’s cool stuff, and Ladybridge, for the Tip of the Week articles, and to YouTube for Dawn’s Cache’ classes, etc.
Besides that, I’ve been busy looking for work, getting work, learning Python, and learning D3. D3 is so not(UniVerse). I’ve also been trying to carve out time to learn Cache’.
Maybe we need to use for a central repository is what most everyone uses everyday, like Facebook, where you could put programs in Notes, and have people comment on them. Keep it simple.
Our Seattle Area Pick Users Group (SAPUG) group is getting motivated to help educate the world about multivalue, and we are talking about posting links to classes (like Dawn’s), and to do some Multivalue University stuff ourselves to get people excited and educated. There are so many brilliant people around, it is a shame not to use them as teachers of the coolest language in the world. In the past couple of months I tried to learn Python by myself, and got to where I could cut and paste to create programs, and sort of figure things out, but I have since signed up for a beginning Python class, and have learned more by leaps and bounds then I did in self-study. There is something about a teacher telling you what is important, and teaching in a logical sequence that beats reading books about programming all to pieces.
We should do the same thing with multivalue.
p.s. In my first Python class session I realized that Excel was a multivalue database. Just enter data in a cell, then press the Alt+Enter keys in a cell, enter more data and you have an example of a multivalued cell. Whether or not you can easily extract that data is another question, but it demonstrates that people know about multivalues already — they just don’t know they know.
Good post, Tony. So good that I reset my forgotten password so that I could post this comment. 🙂
While there are many aspects of FOSS itself that I am not a huge fan, I agree completely with your top three reasons for the lack of its success in the MV community.
As for collaboration, the DIY mentality that you identify as part of the problem with the adoption of FOSS in the MV world can be extended to partially explain the failed efforts of MV centric code sites. I appreciate the good intentions and great effort that Glen B. and others put into PickSource, MVDevCentral, etc., but those sites themselves were prime examples of that “roll-your-own” mentality; they were destined to never reach beyond an existing MV market.
While SourceForge was all the rage back in PickSource.com days, “modern social developers” are collaborating via sites such as GitHub, BitBucket, Google Code, and a few others. Of course, using such sites would require that MV people started using a VCS/DVCS that they didn’t write themselves, if they’re using any at all.
etc. ad infinitum
If we can’t even agree on a central repository, how does anyone expect to collaborate? And when searching the internet for information, it doesn’t help that we use some of the most common words in the English language to name our products: PICK, UniVerse, RECALL, INFORM, Cache.
ScribD is just a free file storage site and I suspect occasional files found there were uploaded for a specific event. The document Louie cites was created by Columbia Ultimate Business systems (one of my clients), for workshops they do for clients.
The rhinocerus website has no content of it’s own. It’s a mirror cite for Usenet newsgroups. comp.databases.pick, which I haunt, is one of the groups. CDP is just one of many Pick-based forums. I think it’s healthy to have many forums for focused discussion (and CDP for anything else).
I think it would be as healthy to have a number of community collaboration sites, but I suspect if we had ten sites to appeal to ten tastes there might be ten people in total from this community using the resources, one for each site. Of course I jest, but we are that factionalized, and that disinclined to use such resources. And thus as a marketplace, here we are.
Thanks for your comments guys!
@Louie – I don’t think the issue should be getting community agreement on using a central repository. Collaboration should be dictated by the owner of a project, not where the MV community thinks is best.
The focus should be encouragement to drop the DIY mentality and use what are considered mainstream repositories, resources, and tools; not only to aid the old hands, but give MV better exposure to new blood. Host code & collaborate at Bitbuck, Github, etc., and post questions/answers at Stack Overflow (SO).
There is a bit of MV activity at SO with questions tagged as “multivalue-database”. There are also questions tagged with Universe, Unidata and U2. Unfortunately, the tag “multivalue” itself seems to have already been associated with an aspect of some SQL databases.