I have run development/consulting businesses for about 16 years I even have a beard to prove it! Working with clients on their projects is awesome, turning a vision into reality really makes me tick. and while technologies have changed over the years, my desire to please my clients and deliver on budget has not.
The last 12 months however have been a little different, and I know Meteor is the reason… So here are a few things I have noticed while running a consulting business who’s primary technology of choice is now Meteor having been (in the past):
- A ruby on rails shop, focussing on full stack web applications
- a .NET (c#) shop, focussing on rich smart client apps, full stack web and intranet apps
- a Java shop focussing on thick client apps and corporate intranets
- a Visual Basic shop focussing on thick client apps
- a Delphi shop focussing on thick client apps
Productivity is off the charts
If you have read anything about Meteor (never mind using it) you will have an idea that it’s a productive environment to (at the very least) prototype applications with, and it is! for the first few weeks of my Meteor life it was about on a par with Rails or ASP.NET MVC, but once It clicked I became (in my mind) super human and building things in hours that would have previously taken me days or weeks (sorry Java).
Your clients will get freaked out by your productivity
This is a funny one, and it took me a while to learn how to manage it but, your clients can and will become very suspicious of your productivity! remember they are used to dealing with developers who have to use platforms like WordPress or frameworks like rails (i love you both BTW) and here you are adding functionality every hour! those daily scrums (stand-ups, slack calls, status updates, whatever your shop calls them) that used to take 10 minutes are now 30 minutes because you built so much!
This is a fragment of a conversation i had with a client a few weeks ago (names removed to protect the innocent):
Hey we implemented the user profile pages and all those admin screens we talked about 🙂
Oh great! BTW… and this is totally fine… it’s really amazing that your able to re-use code from previous projects for us, we wondered why your timescales and cost estimate was so low!
Previous project? what do you mean?
Well your clearly not building all this just for us, it would take much longer than it is! we just want to make sure its built to the standards we agreed…
Thais right folks! we have a suspicious client! she didn’t think we could deliver what we were in the time we were delivering it, her only conclusion was that we were using parts of other apps we had written! This isn’t the first time a client has been (lets say) shocked at the speed of which we have been able to iterate, and when your using Meteor this will happen to you, be it your client, your boss or even your peers, you are going to get some raised eye brows when you start hitting user stories out of the park.
To mitigate this I now explain to my clients (who don’t know about Meteor) that i’m using it and that its super productive, nobody (yet) seems to mind shorter/cheaper development cycles 😉
All of a sudden, you are ‘mobile app’ shop
I have been able to produce native mobile apps for about 5 years and while it isn’t my sweet spot, I and my wider network of associates that i work with on client projects have developed a number of IOS, android and (even) windows apps however I never thought of myself as a mobile app developer, rather a full stack developer who could (if the project required it) throw together a mobile app.
Now that I’m using Meteor and i can:
meteor add-platform ios
I’m a mobile app developer! say what you want about native vs hybrid but in my experience clients who want business apps, e-commerce apps, logistic apps, asset managements apps, (you get the idea) don’t care about native vs hybrid and whats more wouldn’t notice the difference if they did.
This is massive for me! i’m now in a space where mobile apps is my sweet spot (because it’s just Meteor) and my clients are all benefiting.
You will enjoy coding again
This one is the big one, the mother ship if you will. Having spent as long as I have building apps for all sorts of people, you will forgive me for this but it became mundane, almost sterile! I stopped loving what I did and started just doing what I did, it’s a massive difference and i hope you never experience it!
Don’t get me wrong I still got the initial buzz when i used new technologies like Angular or Swift (everything really) but unlike those experiences it didn’t disappear after a month, it’s still with me! I still after 12+ months of Meteor development, LOVE IT! and guess what? it really shows… my clients notice it and because they notice it I get more work, my happiness is selling my business and that’s all down to Meteor and the goal of MDG to focus on developer happiness! I thought it corny when I first read it, but with hindsight I actually think its Genius, well done you lovely geeks at MDG!
You will have to explain to people why you don’t miss SQL much (even if you really do)
Look, nobody likes change! and if you’re resisting it you will come up with a bunch of reasons why… must people who are resisting Meteor will come at you with something like this:
Meteor sucks, it doesn’t even work with [ADD RELATIONAL DB VENDOR HERE], you can’t build “production” quality apps with a noSQL db!!!!!!!!!
Click on 10 random posts in the meteor forums you will find something like the above in at least one of them, look at the comments on any Meteor related Hacker News thread… yup, you will find it there too. It’s the most common negative thing I hear about Meteor, and yet it’s just wrong in (almost) every way! of course you have to empathise with whoever is saying it and almost always they have a use case in mind that just doesn’t (in their mind) fit in to the world of Meteor. But of course, software architecture isn’t so simple and certainly isn’t so black and white. I love Postgres (there i said it!) and I really like MYSQL too (this is excellent therapy!), but the truth is, I take productivity, happy customers and paid invoices (these are all related by the way) every time.
But here is the interested thing, when you scratch away at the prejudice towards Meteors ‘lack of db support’ and explore the use cases,you often reveal a profound truth! the people who want other DB support quite often only want it to support integration with the other technology they have, quite often its a case of:
We can’t use that because our CRM is mysql!
Oh yeah, lets just abandon 10 years of Oracle investment…
and of course, anyone who knows Meteor will know that talking to other databases is perfectly possible, talking to API’s, ESB’s, Micro Services, you name it… its just node after all! what you don’t get out of the box with meteor is the type of “pick your db” and everything will be the same as you do with say Rails, but honestly most of the time it really doesn’t matter, what you save in man hours will more than make up for the time it takes your architect to draw a dotted line between the box that says “Meteor” and the one that says “Legacy system”.
As you can tell, I’m pretty much sold on Meteor the platform and the goals MDG have been working towards, is it all sunshine and rainbows? no, of course not… MDG have been terrible when it comes to transparent and consistent communication, we have had the whole BLAZE IS GOING TO DIE debacle and more recently the “FREE meteor hosting for life… oh scrap that you have 2 weeks before we release the hounds” episode… and much more in between but for the most part I try to ignore the hysteria and get on with what I love, building stuff
Speaking of which, did you know you can hire me? I really recommend it!