As a chief architect, the fun begins when you are asked to find a technical solution to what seems like impossible business requests. And today, these situations tend to occur more and more frequently.
This is true for startups or more traditional sectors alike. You are now told that you must support multiple delivery platforms, the product is no longer allowed to experience downtimes, you need to be concerned about security and… oh yeah, did they mentioned you’ll only have 6 months and a team of 3 developers to execute on the mission?
Your only chance to ever succeed nowadays it to offload as much work and responsibilities to someone else. And this translates to going outside your comfort zone by considering alternatives you may not be familiar with or even trust.
Before jumping into what makes Meteor a transformational tool, I must reiterate a few words of caution… The biggest productivity gains will not come from a trendy technology stack. In my experience, you should focus first on removing all the friction and blockers from everyone’s daily activities. This will often produce amazing results. But this seemingly easy solution is the hardest one to put in place as it requires a change of culture.This is the subject of another article but, think about what would change if:
- entire projects were managed by teams of no more than 7 persons;
- you no longer had project managers or team leads;
- everyone was a full stack developers adopting a TDD/CI/CD approach;you gave all team members admin rights to the tools and environments used, including production databases and servers;
- all team members were client facing, giving them full authority but requiring accountability in return;
One of the great enablers we recently started using is Meteor. This platform embodies all of our philosophies about relying on external providers for anything that is not core to our business or project. It allows us to quickly build enterprise quality applications accessible over the Web or mobile platforms. Our recent success building ATHLEX, a sports team collaboration platform, would not have been possible with traditional technology stacks.
Meteor leverages other well known components such as NodeJS, Cordova and Amazon AWS. Moreover, the Meteor community is thriving, well organized and is overlapping the still bigger Node eco-system. Thus, many commodity use cases such as data persistence, user management, reactivity and emailing are all taken care of out of the box.
Distribution of the application is also supported by automating the Cordova packaging and providing managed hosting on the Amazon AWS public cloud. Many successful startups are now coming along to offer additional capabilities. Kadira is a great example with their amazing production tools and services to handle monitoring, alerting, optimizing and debugging Meteor applications.
“We did a complete application rewrite to address many technical issues we were experiencing using a traditional Web stack. Meteor allowed us to complete the project in half the time and half the costs with an amazing increase in quality and performance.” – Julien Proux, CEO at ATHLEX
It’s called the bleeding edge for a good reason. A project can fail if you are not careful. New technologies can be awesome accelerators but, you need to be aware of the risks. Meteor has come a long way and can now be considered enterprise ready. But other similar stacks are suffering from:
- Instabilities with each new releases as APIs evolve or are being deprecated;
- Community packages of variable quality;
- Crude tooling compared to more mature technologies;
- Harder to find bugs hidden in the depths of obscure and seemingly magical components;
- Missing or incomplete operational capabilities;Lack of qualified developers, compounded by often less than stellar documentation or training;
Because these new tools rely on new paradigms (reactivity, single page web apps, etc), you could be tempted to forgo common architectural and coding best practices. The fact that you are in unfamiliar territory, are using untyped languages or immature tooling will mandate that you put forth a mindset focussed on quality. Using a development pipeline that is as structured than if you were doing more traditional development is key.
Good Business Cases
Many of these new tools are still evolving and may be a better match for a PoC or an MVP. Generally, the accompanying tutorials and guides are geared toward these types of development. But if you are to gamble your project, product or even your startup on a technology stack, you better be sure you’ll be able to meet criteria such as quality, evolution, performance, security, scalability and operability. From our own experience, we can attest that Meteor can meet these requirements if your team adopts the proper development best practices and solid architectural and design principles.
The decision to use accelerating platforms will be influenced by your need to accomplish a lot and do it fast, having limited resources, market pressures or all of the above. If you forgo these enabling technologies, others will find ways to rely on them and may run away with your customers. Today, you absolutely need to consider these alternatives.
In the innovation race, velocity is king.