I wandered off and built an IDE
blog.querystorm.com
blog.querystorm.com
https://news.ycombinator.com/item?id=13114421 (64 comments)
https://news.ycombinator.com/item?id=15670030 (34 comments)
https://news.ycombinator.com/item?id=11583488 (111 comments)
https://news.ycombinator.com/item?id=10991747 (1 comment)
https://news.ycombinator.com/item?id=9783022 (64 comments)
https://news.ycombinator.com/item?id=9359128 (10 comments)
https://news.ycombinator.com/item?id=9399119 (6 comments)
Congratulations anakic, I hope it takes off.
That was an enjoyable read! I have also tried qutting my job as a developer, tried making money by working for myself (and focusing on developing features instead of actually making money, same as you), then returning to a "proper job" as an engineer. There were many recognizable moments in the blog post.
I once took a course in entrepreneurship, as a distraction from computer science, and the bottom line is that to make money you should first try to find someone willing to hand you their money, and then put the effort into making the product or service. But, as a developer, it's soul-wrenching and just feels wrong to try to sell something before something proper has even been made. But I've seen it work many times, you just need sales people that are not afraid of making up products while they go, with both the profit and stress that follows.
I'm glad you found a good opportunity with an accelerator, good luck with the next adventure!
This has been my biggest struggle.
You imagine the potential buyer as a hyper-critical power-user that will expect everything to be perfect.
But what if the above isn't true at all? What if the potential buyer is buying something more abstract? Like a solution to a problem; or even the chance at future resolution of a painful problem?
And what if they aren't power users? But just need basic help today that could grow into something better tomorrow?
Like, what if they just need a partner to help them solve a painful part of their work, and would be willing to put up with a lot of incomplete stuff to get that?
In that case, reaching out to them to "sell" them in the early days is basically saying "Hey, I'm starting to build XYZ that solves problem ABC. My goal is that it would help by doing DEF. Do you have that problem? I'm early on in the process, and looking for lots of feedback from potential users. Would you be interested in checking out my prototype / designs / thinking on this?"
That doesn't seem "soul-wrenching" or disingenuous or anything like that. It feels very authentic. You're making yourself somewhat vulnerable and portraying yourself as eager to learn and help.
IMO early stage entrepreneurship consists of finding a problem bad enough that non-trivial amount of people say "sure, let's talk" to that pitch and then working with those early users to build something useful.
I am an engineer and tinkering with tech brings me pleasure from creating, I crave mental stimulation, and I get immense satisfaction from havingright things in right places”. Polishing the code is like polishing the car engine for a petrolhead.
But those are my problems and triggers. I am feeding _my_ needs, then implicitly expect other people to give me _their_ money for doing this. Because look how hard I toiled! Yet many people do not care how polished their car engine is. And I have never seen clean code that was generating revenue.
The critical shift was to accept that people and have needs I don’t have, and they are desperate to solve them. And their professional lives are often painful - I get frustrated when I spend a day with almost any professional outside of tech. “This is the shit you have to put up with to get anything done??!” I haven’t had that problem since teens, if ever, and I can fix it. Automatically, empathy takes over, and I want to rescue them from the daily dread. So I wire together a minimal app that will make them glow with delight for 6 months, and they’ll give me dollars in return. Today was a good day, because two strangers supported each other and did not focus entirely on themselves.
If it were up to me, everyone would get a juicy steak. But when going fishing it’s more effective to bring worms.
This is hard for a certain class of problems, though- ones where people have to be convinced that the (1) there is a problem and (2) they should care about doing something about it. The first (modern) electric cars and the first home computers come to mind.
But that's really just a nitpick. I believe your point overall is correct- you're selling a solution or a dream.
I’ve worked with “seasoned” business experts, MBA’s who run multimillion dollar companies themselves, etc, who had a problem with this just out of principal. I once put up a website for a personal startup project with a “give us your email and we’ll send you the white paper” form — and the white paper didn’t exist (although the raw data that would be used to produce the paper did). When one of my mentors who was examining the website wanted to see the white paper, and I said “it doesn’t exist (yet), I just want people to show me that they are interested in it, otherwise this project is not really solving a big enough problem. So far nobody has requested to see it.”... they were LIVID. They could never trust me again after that, even after I tried to explain the reasoning.
So what if the first person asks for it and it takes a day or two to arrive? If only one person ever asks for it, it’s not a big enough problem anyway. But the mentor was seeing it from the perspective of how it would look if they did that in their multi-million-dollar company with their fortune 100 clients. But their rules did not apply for my situation. My situation was that I don’t even have a profitable company with customers. That I want to build things that people want, and the sooner I can figure out it’s not worth pursuing, the sooner I can move on to other ventures. So if during this journey I create a white-paper request button, and nobody ever clicks it, did it even exist?
It's the distinction between building something you've built before and architecting a new bridge or building. The latter is a creative effort with lots of variables that are extraordinarily hard to pin down into estimates that would be acceptable in spec house construction.
I have a friend that is like he's born for being in sales. He loves money and have almost no moral qualms when it comes to selling (but paradoxically have a heart of gold when it comes to charity and being nice to people).
Some people actually enjoy making lofty promises for money. I guess that's part of why being in a team is a good idea.
So the proper sequence is:
1. Sell.
2. Build.
3. Pitch to investors.
4. Repeat with more resources.
Inexperienced non-technical founders sometimes get the steps 1-3 backwards.I'm curious about 1 before 2. Any attempt I've made in the past to understand market interest without having something that people can actually touch has always been really squishy. People aren't that interested to talk, when you do they always say something like 'well, sure, I guess that sounds interesting'. People that seem really interested usually don't have enough bandwidth for a beta product evaluation, even though they will say they are really excited and want to help. Often, product uptake comes from an unexpected direction/vertical, just by accident.
So while in principle getting customer-based design information up front is ideal, in practice it seems like you don't get that much no matter how much you try.
Maybe you're suggesting iterating on 1 and 2 until you feel like you have a solid case for 3?
I think that is why point 1 is "Sell," not "Interview" or "Imaginary sell." For example, some people put up a web page, run some ads, and have a complete signup process that once the CC is entered they get a "thanks for your interest- we'll be in touch when we get it built and by the way we didn't really charge your CC."
We've had discussions before on this board about whether or not that's ethical, IIRC.
I think the question boils down to: would you be willing to spend the next few years of your life on a 'well, sure, I guess that sounds interesting'?
There are all kinds of people. Early adopters are usually who a startup would want to start off with. If you can’t find even a few people who are excited about the value that your nonexistent product would add to their life (not even yourself as a user?), should you be excited about building it?
Money talks. You want people who are excited enough about what you’re building to give you money for a nonexistent product/service. Via Preorders, kickstarters, etc. Words can be cheap, but once they’ve bought in you can value their feedback.
I know I could solve whatever problem it is by leveraging a lot of my existing patterns and code. Once you know enough about a domain the coding and configuration becomes an afterthought.
Developers rarely know what users really want in advance. Hell, even users don't know what users really want. Re-writes are time consuming (and, to me, boring), it is easier to do the minimal amount of work first, demo that, take feedback, and then build it out.
However, going into this you need to have faith in yourself that you can deliver something good, and on time. If you have that confidence in yourself that you can deliver the functionality expected in a reasonable time frame, you can possibly be more comfortable selling ahead of your delivery schedule.
For example: https://www.youtube.com/watch?v=6reLWfFNer0
It's pretty good so far
Note, if you were a marketing person your lesson would be correct: you find the idea that someone will pay for and build it, then you HIRE the technical people who can build it. Marketing people are great at figuring this out.
The above are two very different, but successful approaches to creating a business, with different results. The technical first approach asks "what can technology do" and creates the next revolution. The marketing first approach ask what will people pay for, and creates the next evolution. Both are very valid approaches that can lead to riches. It is very common - even in business schools that should know better - it not recognize that a technical approach can work.
Even if you have a revolutionary idea, and even if you can build it, it's still a waste of time if nobody will buy it. No matter how revolutionary your idea, you can try marketing it. If you are eventually going to sell it via a website, just build that website. If you're eventually going to sell it in person, just sell it in person. If you need a video demo, just make the demo. Then see what people do.
There are two reasons for this. The obvious reason is that you can save years of your life building something that nobody will pay for. But the subtle reason is that finding out what people actually want will usefully inform what you build. You can spend those years building the revolutionary product that people will buy, rather than the not-on-target product that they won't.
The techniques for this are not hard, and the Lean Startup literature has plenty to get people started. E.g., the Alvarez book on Lean Customer Development: https://www.amazon.com/Lean-Customer-Development-Building-Cu...
(And this is not to say that people shouldn't obsessively build things that interest them. I like doing that. It's a great way to learn and explore. But they shouldn't pretend that's a good way to start a business, any more than amateur musical noodling in one's basement is likely to produce the next #1 pop hit.)
I'm working on a thing now which no one believes is possible in the AI space (and to be honest I didn't either).
So I built a tech demo which proved to myself that it really does work.
Now I do the "I'm doing XXXX", get the cynical "yeah right" look, but the idea is interesting enough that people are prepared to see the 30 second demo.
The demo is pretty cool.
After the demo I've had people ask if they can invest, without me asking, and I think every person I've demoed to thinks they would either buy it or know someone who would.
So I'd caution that not all advice is correct in every situation.
From what you say, you did some technical exploration (which again, I'm all for). Then you didn't make a full product, ujust a 30-second demo. Next you went and tested the "people want this" hypothesis. That sounds very much in line with Lean Startup advice.
Great tech MUST be sold, once you have the proof of concept you must get someone great at marketing on board to help you sell it. There are plenty of great marketers who can help you with this (for a price...).
My only point is as a great technical person you start with getting it working before trying to sell it. Once it is working great marketing people will come on board and help you sell it - that is partially a matter of finding customers and partially a matter of making you admit those hard rough edges need to be fixed.
For most product ideas, the key question isn't, "Is this possible to build?" It's, "Will enough people buy it to make a sustainable business?"
That is to say, the greater risk of failure comes from lack of demand, not lack of technical competence. The greater risk should generally be addressed first.
This is compounded by the fact that it's usually much easier to test the "people will buy X" hypothesis than the "I can build X" hypothesis. Or, put differently, the cost of reducing market risk is usually lower than reducing technical risk.
Furthermore, even if we're in the rare case of working on something where technical risk is significant, we generally don't need to get a real, working product to reduce that risk sufficiently. Some technical experiments are generally sufficient to put us back in the realm of, "Yes, we can make that product."
As a technical person you are better at getting it working so spending a couple weeks getting a working prototype is worth the effort, it might be ugly but it builds trust that it can work. If the idea is radical your potential investors/customers won't believe it is possible.
The real problem is until you have enough paying customers to pay everybody you are living on borrowed money. How you best borrow the money is the only question, and the answer if different for every situation. Some ideas are so obvious when seen that you can get millions from investors. Some ideas will get the "that ain't possible" reaction until you show them the finished product when they will beg you to take their money. Some ideas look cool but nobody is willing to actually pay for them. Some ideas are cool and will generate sales - but never enough to pay for all the people required to make the product. You have to figure out where you are.
This starts from the (potentially flawed) assumption that your great idea is actually saleable. If you build something and prove that there is at least some market then great. But you might build something and find that there is no market.
If instead you start with the market, then you are unlikely to be pointlessly building something.
The opposite approach has equal risks: you start with a saleable idea that just isn't possible (or is possible but the costs are more than the sales will ever cover).
Either way it is critical have points where you decide if further effort is worth the investment. You have to make some investment in time/effort/money to find that out, if the answer is the product isn't worth the investment all your efforts to this point are wasted.
Ten years later, that first startup scored a 100M funding round.
Ha ha. When my wife and I were new she asked to use my laptop and was surprised that it “had no icons”. (No window system). So I started to show her how to avoid using a GUI. 12 years later she uses a terminal about half of her time as a stock administrator.
So far I've managed to seriously impress my SO with my computing skills just once. People from her old company asked if she'd like a side gig, involving backing up years worth of philosophical Facebook posts of their boss (he's quite a writer), into Word documents (one per post). It would be ridiculous to attempt it by hand, but by applying a small amount of Lisp and pandoc on Facebook data export dump, I was done in 3 hours.
These days I mostly help her when she needs bunch of photos mangled into a format that can be accepted by upstream contractors; it usually involves some ImageMagick one-liners.
It did have an ancient version of Netscape, so I tried to upload the files, but the browser was just too old to handle Dropbox, Google Drive, or any other service I could think of. An obvious solution, then, would be an upload service built for ancient browsers.
So, in about 5 minutes flat I made a sinatra app that used the simplest HTML upload form possible and dumped uploaded files to a folder on my desktop machine.
Maybe there was an easier solution I missed, but she found mine quite impressive.
(I have 2. A TV and Screen. Somehow not connect that both are monitors...)
The face of disbelieve is amazing. It impress the girls everytime. Is super-effective!
---
A better anecdote was when I was in an incubator years ago. I was located in front of the main big-glass entrance. My monitor face it, so everyone that get in see what I was doing.
And suddenly a dozen or more of kids get in in the exact moment when I was moving some screens around the monitors...
WHOAAAA!!!
Everyone say!
https://support.google.com/docs/answer/3093343?hl=en
This has come in handy for me recently, but it's painful to try and edit even a simple SQL query in the cell edit field. However, it's super convenient to have this capability built into the spreadsheet.
Marketing idea for QueryStorm: guides that apply your tool for specific data analysis/workflow challenges. You might benefit from looking for the popular guides for Google Sheets that rely heavily on QUERY(). Then you can translate those for Excel/QueryStorm and suddenly you've got answers for "How to do XYZ in Excel" that promote your tool.
https://stackoverflow.com/questions/15844633/using-excel-as-...
Once you create your ODBC source from the excel files, you can run queries and use the language of your choice (Python,C# ....). I am pretty sure you can also insert/update rows and columns too.
Wondering how this differs from the approach I describe (which has existed for many years).
Good work!
There's more, e.g. the SQLite engine can interact with Excel and fiddle with formatting, but I think the major thing is convenience. As a dev, most times I just wouldn't bother with the ODBC approach unless I really had to. Convenient C# and SQL though, I'd use them at least 10x more often.
Much of this functionality is available already, through ODBC, powershell, c# - but it's cumbersome to use. That's the selling point of this software, it seems to me.
Polish.
If it is the case, you did not even have to install it.
Dropbox did not only solve 'local file system'-mirroring, but (legal) file sharing in general.
Citations please.
"When Dropbox was getting off the ground in 2007, there were hundreds of small storage companies. It was almost a cliche, the way that many people believe mobile photo sharing is a cliche now, he says. “The important thing was, I would keep asking people if they used any one of these hundred options, and they all said no. These are my favorite problems to solve. You can’t focus on what everyone else is doing — it has to be about what’s really broken and what you can do to fix it.”"
http://firstround.com/review/How-to-Win-as-a-First-Time-Foun...
You can find when each of these companies were founded by following the links...
Don't remember the name, but I remember similar service even in late 90s, when dial-up was popular. You'd pay for some amount of storage hosted on their servers (no "cloud" term back then) and they had Windows client integrated as a drive. Not sure if they had "freemium", maybe dropbox differentiated with this business model.
I think I already know the answer to this, but I assume that this IDE is Windows only? I couldn't see any information about platforms on the main product page, which might throw someone off if they use Excel on a Mac.
I think I know what you assume and I assume you assume correctly. Windows only so far, Excel for Mac doesn't have VSTO:(
Not for anything serious, but great for those occasional quick-hack utilities to save you a bunch of cut-and-pasting or data reformatting.
> It doesn't copy the data into it, it actually lets the SQLite engine use Excel tables as the data storage (I implemented something SQLite calls a virtual table - an adapter to let it work with custom data sources). This means you can run update/delete/insert statements directly on excel tables
(from the linked reddit post, I haven't finished the blog post)
I wonder if a similar sort of approach with FDW's could work with Postgres and Excel.
You should do an interview with IndieHackers!
They used to be a lot more focused on interviews, but then Stripe bought them and they somewhat shifted focus a little, but the interviews are still there.
I guess the "right" thing to do now would be to add your product there? https://www.indiehackers.com/products
Either way, it should give you additional great exposure from a community you seem to belong to.
Seriously. Try to do a join and some simple data manipulation/aggregation in Excel without this. Or try to emulate SQL minus/except. You'll Google for simple answers using the UI, and those probably don't even solve your exact problem, then dig until you find some that seem correct, try to implement them, and then realizes it doesn't work for some unknown reason. Then either give in and write VBA to do it (which also sucks), or pull it out of Excel and put in something that uses a good language.
In my experience, non-technical users don't want an outside application. They don't want to set up a database. They just want to open Excel, the program they are comfortable with, hit a button, and have their data aggregated. This tool is really cool.
Congrats on the launch and the joining accelerator, hope it gains traction! It looks fantastic!
Jetbrains doesn't have dominance yet on <Foo>Storm (they only offer PhpStorm and WebStorm) and your website UI is also somewhat different from theirs.
P.S.: Referring to Excalibur for those that have never heard of it. It's the legendary sword used by King Arthur.
Made me laugh.
This thing seems so obvious like it should already be a part of Excel - nice work!
I integrated most commercial db vendors and we even ran queries on imported data in a HSQLDB database. Firebird is just way ahead of HSQLDB, and HSQLDB is similar to SQLite feature-wise.
I don't mean it would be cool to be able to export to Firebird. I mean that you might want to use Firebird as your underlying engine :)
Quick suggestion: If at any point you are looking to offer varying price points based on features, one possibility is to have three versions - Business (for people who know and work mostly on Excel every day), Developer (C#, LINQ etc.) , Complete (All features).
Because having worked with many people who work with Excel for whole day, at least 90% of the users will not understand or use this: "Additionally, imagine how much easier it would be to build prototypes and small applications if instead of VBA you could use C# (and LINQ) in Excel. You could write business logic in C#, load data from all sorts of APIs."
Not to say this will not be useful. This will be extremely useful for me (a developer). Just a thought.
Good luck with QueryStorm.
I have used excel as a data source using VBA before so one problem I had there that I'm curious how you approached was how to automatically determine data types? IIRC the ODBC engine in VBA scans a set amount of rows to guess. Are you doing anything different?
Well done!
1. Surveys on places with lots of Excel users worded to figure out what jobs they have that take lots of manual steps with days of effort. This is your potential market.
2. Maybe immediately create proposals for the ones you could handle easily as a one-man shop. That's some revenue to get you started.
3. Look for any common patterns in them you can abstract into generic functions or generators. This becomes part of your tooling.
4. Also, look for any kinds of analysis that happen pretty often in certain industries. Then, you might create some basic functionality to as industry-specific solutions that your customization work builds on. If not that, it could just be a marketing tool illustrating the value your software provides to that segment.
Those are the ideas that came to mind as I read your article. Good luck.
Might be worth open-sourcing? Perhaps even under a restrictive license (free for FOSS work, otherwise paid).
Personally I did not immediatly think about Jetbrains when reading this name, probably because I mostly use IntelliJ IDEA rather than PHPStorm.
Where are the other professional developer tools with subscription pricing? Not stuff company stuff like Atlasssian or web-SaaS, but, say, a really good local `git` GUI and merge tool.
Besides from that, product looks really nice!
Otherwise, cool system!
I think LibreOffice offers a python/javascript scripts/plugins? Anyone want to get an ultimatum from their girlfriend and build one for Linux?
Resubmitted here: https://news.ycombinator.com/item?id=16773686
I'm a consultant working for corporations and excel is part of my life. Your plug-in has a market. In fact, I'll advertise it inside my company - if I like it, of course.
Even if hiding it for mobile seems like a good idea (not the target), someone looking at the website on mobile would acknowledge they can easily download the software later on.
Have you considered turning this into a web based SaaS product? (upload excel -> do fancy stuff -> export or save the result on cloud)
Is there any specific reason for the current licensing/revenue model?
google drive script, for example, is still too complex to use for non-tech, it doesn't have a ui builder.
but I can't imagine a simpler, drag-and-drop solution that can implement complex data processing logic.
As for PowerQuery, it's designed as an ETL tool to get data into the tabular model and process it, but isn't as expressive or as well known as SQL. It's a bit less technical, I guess. It's useful, but if you know both SQL and PowerQuery you can probably do much more with SQL.
Truth!
I am at zero for 35+ years so far...
At the same time, it can all be done in Power Pivot and Power Query as long as you know how to use them.
More generally, you can do all of this same 'stuff' in any language. This seems like a possibly better way to do the same things tho.
Most of your programming should be DAX plus a bit of worksheet functions. Some SQL to filter your data before loading into Power Pivot.
SQL yes, of course. You run SQL queries to load data into Power Pivot through a native SQL Server driver or native drivers for your DB or worst case ODBC.
Then you do all the BI analytics in DAX and show results in pivot tables. DAX is a very fast, concise and very, very powerful language for analytics. This is the whole purpose of OLAP.
Check out this video when you have time :)
Sorry this could be a dumb question, but,does this plugin work with Spreadsheets in Google docs? If Yes, thats great, just from the perspective that it will add more customers for you. If not, are you planning to add support in google sheets as well?
:)
Lots of fellow makers in there :)
The community is also very welcoming and helpful!
Great project by the way!
I'd bet a lot of the people you're casually insulting do understand that it could be automated, but, unlike you perhaps, they're more cognizant of the costs of automating it (and ensuring it continues to work).
Processing even slightly messy data can turn out to be a basically unlimited amount of work, easily.
I've paid, as just one example, $100 for what's 'basically' just of fancy keyboard shortcuts for just one of the tools I use frequently. If the benefits outweigh the costs, then the price is 'just right' (for you).
If you're working with Excel/VBA/SQL daily, then you might already have a nice 'working environment' in terms of the tools and workflow you use. But this still might be better than what you have now. I know I'd rather use C# and SQL than VBA or whatever it is you have to use with the similar recent-ish Excel add-ons.