Welcome to today’s edition of “what has Vitamin been launching lately?”. As promised, every once in a while we’ll give you some insights into what projects we solve. And this one was a doozy.
We’re extremely proud to introduce you to directimo.
This is a unique real estate concept for the Romanian market. It’s a platform that connects buyers, sellers and real estate agents under one clean, easy to use interface!
Here’s what the client had to say:
“From scratch to launch in 3 months of well planned 2 week sprints. Vitamin’s team is like a technology creating machine. They help you understand the product you are developing, are constantly proactive, and offer 24/7 support in tight spots.”
— Alexandru Dan, Veteran Technology Leader, ROMANIA
So, how did we do it?
First off, we helped the client understand what they really needed to build. Initially, like in any other big project, the requirements were unclear here and there, and the product team needed better alignment. To clear things up, we used Moqups, a beautiful online tool for creating mockups. We built an initial set of mockups and then refined them.
Moreover, the deadline was really tight. There was no time for the waterfall approach that developers feel comfortable with, where you do the designs first, and then implement them into a working web app.
So we had to employ a radical solution: we started design, implementation and API work in parallel. We needed some mechanisms to decouple them, so that they could progress simultaneously:
for the design and user interface part, we chose to implement a throwaway user interface with minimal investment. This was enough to give us an idea of functionality
for the UI and API, we built an API simulator tool. We created a Google Spreadsheet with the entity definitions, and hooked it up to a script that simulated a REST API on top of that.
This separation was both efficient and difficult at the same time. It was efficient as it allowed different teams to not depend on each other, and deliver the best possible results. It was also difficult, since it wasn’t clear from the beginning how the end product would look like to the internal stakeholders.
#3 Wrap it up
When the product neared completion, we focused on touch-ups and on final marketing tweaks. Even though the client initially proposed only 2 intermediate releases over the course of 3 months, we found great benefit in working in smaller sprints. Sprints allowed us to analyze how much time was left, and what the priorities were for the remainder of that time based on real business needs.
What technologies did we use to make it all happen?
Webpack (and its Isomorphic Tools) in order to achieve server-side rendering of the same widgets
React Router for the routing part
Redis to cache pre-rendered pages on the server-side.
An embeddable Markdown plugin to render Static pages. This serves as a very easy to use CMS (Content Management System) for the marketing team together with automated version control, because we use Github.
AWS (Amazon Web Services) to deploy the whole setup, together with the API (which was developed by another team)
For the cloud part
To organize ourselves
Github for source control, tracking deliverables in Milestones and code review
Slack to synchronize team members (together with some nice Slack bots that posted information about what was happening on Github and which deploys were going on)
Jenkins for automatic deploy on push to designated branches (master for production, staging for staging)
Google Spreadsheets to track estimates for each individual task. We’d have a quick team meeting 2 to 5 times a week (depending on how pressured we were), to track the remaining number of hours for the remaining tasks.
What did we learn from this project?
Remove blockers at all costs. Especially when you’re under time pressure. If needed, decouple the work of multiple teams by establishing clear protocols and implementing throw-away solutions for the integrations between their work.
Steer clear of waterfall. The main allure of waterfall is predictability and cost efficiency (everything is well spec’ed from the beginning and it only has to be executed). But what most people don’t realise, is the tremendous amount of energy involved in specifying a product to the last detail. Above all under market conditions that keep changing very fast.
Don’t be afraid to be proactive and help out in other departments too.Over the course of the implementation, we’ve come up with marketing and copywriting suggestions, and even helped debug the API a couple of times. Did we mention we helped streamline processes in departments like prospecting too?
Sprints are a tool for team alignment. They force everyone to understand the sense of urgency and prioritise the remainder of the work. This way, it’s easy to track progress and everyone gets to see a live product all the time.
The Bottom Line
We’re proud to have worked on this product. We believe in the business model, and enjoyed working with the product team in order to shape it.
Last but not least, we’d like to share some words of wisdom from the father of Andrei-Adnan Ismail (Partner @ Vitamin Software):
“A well organized team can execute twice as fast”.
Needless to say, everyone was extremely pleased with the speed at which things progressed.
Until next time, dear readers. We’re off to face our next challenge…