gladly.
i think the single biggest contributor to our success has been the fact that we are in close contact with our customers.
if we lose a sale, we have the opportunity to learn why we lost. during a webinar, we hear the reactions of customers. with RFP's we get a list of the features they want.
when we win, we stay close to them during implementation. we learn what works/what doesn't work with our products.
based upon this feedback, we're able to constantly refine our products and messaging to what our customers want.
we started with a product guy who could pump out code (me), and a phenomenal sales guy. the two of us essentially built the initial business.
we never took any funding.
the most surprising thing is how long it takes to build a solid product. how long it takes to get momentum. everything just takes a lot longer than you'd expect. it's also a funny thing. once you've achieved a small amount of success (and mine is small), people start thinking you actually know what you're talking about. in my experience - apart from geniuses like jobs, gates, musk, etc - there's nothing that separates you from me. it just takes time, dedication and hard work.
edit: most people find us. we also have business associates who resell to their customer base and customers sometimes give us nice referrals.
advice: b2b is great because people actually pay for shit. lots of b2b software is just awful, i think you can differentiate by providing an excellent product. it'll stand out and give you a solid niche.
i'd also say that you should not give your software away for free in b2b. but you should give it to a trial set of customers initially who can help you work out the kinks. stay close to the customers, they can help guide you and tell you where they look for software like what you're selling.
online advertising works great. use landing pages, a/b test them. all the things that you probably already know, just put them into practice. they exist because they work.