Thanks for the feedback @bealers The target has always been enterprise but I use it personally for my own development. The three things that I personally use it for and has turned into crack for me is the revisions tree, the context aware searches and tree diffs.
The revisions tree basically takes all the commits in my search and turns it into a navigable tree. I tend to iterate at a crazy pace and I commit very often for safety sake. So when something stupids happen, I’ll normally just tell the tool to show me all the commits that were made in the last 48 hours and convert that into a tree. With the tree I can see what files were modified and how often. The tree also lets me quickly point and click to select revisions to diff.
The context aware search lets me do a commits, diffs, text, and code search against what I’m looking at. For example, if I’m looking at all the commits from the last 48 hours and do a search, it’ll just search those commits and changes. If I’m looking at a diff between two trees, it will just search the two trees. This makes it very easy for me confirm if something exists at either points in time. This feature is actually the result of my work in enterprise where the code base is generally massive, with a lot of contributors.
Being able search across more than one point at a time, makes debugging easier I find. And it is important to note these points can come from different repositories. In enterprise, a product is usually made up of multiple branches from different repositories and because my tool is repository agnostic unlike GitHub and other browsers, they can easily construct a logical view with different branches from different repositories and search across them.
And the diffs tree is basically how I do code reviews. And unlike GitHub and other solutions, it is designed to review massive changes which happens from time to time in enterprise. It also supports reviewing diffs at the directory level so you can easily sign off all the changes below a certain directory.
It’s standalone in that I don’t care if you use GitLab, GitHub, BitBucket, etc. Its job is to just break apart what is in your repositories and present an easy way for you to interact with your changes. I think of it as Business Intelligence for Git and software development.
For example I generate code churn metrics (lines added, changed and deleted) and outside of Microsoft, I believe I’m the only other commercial product that does this. And I’m pretty sure I’m the only one that offers SLoC code churn metrics, which ignores comments/blank. For example, if you make a few hundred files changes and update the copyright date from say 2013 to 2014 in your codes comment line, my SLoC Churn will show 0. This type of metrics is very important for release primes and senior architects.
I also have what I call Smart Attributes, which are basically programmable context aware metadata. You attach these to diffs, commits, GitHub pull requests, etc. and you can program them in JavaScript to react to what they are attached to.
For example, you can program a Smart Attribute to raise a pop up box that say DO NOT USE THIS COMMIT if it has failed a build and if user Bob is looking at it. I have bunch of examples in my GitSense Navigation Tutorial that contains Smart Attributes and you can view their source and run them against test cases.
One of the things that I would like to do is create a market place for people to sell their Smart Attributes.
I definitely want to make it very affordable for startups and individuals but price accordingly for enterprise. I’m think about doing what Atlassian does, where I make it dirt cheap to use if there are less than 10 users. The catch with my pricing model is I have to consider the number of unique blobs. I charge by blobs because half my product is an indexer and the more blobs you have, the more things can go wrong.
I believe this is how most Business Analyst software price as well. They charge by how big your database is. The bigger the database, the more complex the number crunching.
Yeah I really need to but my resources is being stretched to the limit. I really want to create learning channels that says if you are developer, go here. If you are a team leader or manager, go here. If you are graphics artist go here and so forth.
I’ve been thinking bootstrapping may not be the right route for me. My product is similar to Atlassians https://www.atlassian.com/software/fisheye/overview and I think they have 30+ people working on it. I’m obviously biased, but I believe my product is far superior in usability and features.
It might just make sense to apply to YC or spend my time looking for VC money. Also GitSense is just a by product of my research, as the real technology lies with my Information Flow Control System. With this system I can see better bug trackers, better code review tools, etc. In fact it works so well right now that I can integrate better with Atlassian’s product than Fisheye, which is produced by Atlassian, can.
Thanks again for the feeback.