Working with entrepreneurs from the Valley sounds exciting. Actually, it is, but be prepared for a hard work. I’m sharing my story on how our software development team helped a B2C startup (RSS blog to Twitter service) who were facing technical issues with their web application.
After @MitovStoyan spend some time in San Francisco, learning to be superhero in the Draper University, he got deeply involved in the startup community there and came back with that interesting opportunity for Dreamix dev team.
The web application was down most of the time, the users could not login and this was only the top of the iceberg. The author of the code was involved in another project full time and the rest of the founders didn’t have the technical skills to fix the problem.
Three things helped us convince that we are the right people to complete the mission
- We had the right team, the right expertise and we were a Team, meaning that we were working together from some time so we started to work immediately. See the technology stack here
- Hiring a software developer in the Valley is way more expensive compared to Bulgarian software developer possessing the same skill set
- And last but not least – the entrepreneurship spirit in Dreamix is way beyond the average. Most of us have entrepreneurship education and experience. Startups, innovation and entrepreneurship present in our everyday discussions.
The project was divided in two phases
- investigation, assessment, inventory, estimation and
- actual fixing
We needed a week to get an overview of the system and we found that it was a design problem. We needed to redesign the system and change the persistence layer entirely. More technical details on the problem and the solution can be found here. It was really interesting for me to learn more about implementing strategies for user acquisition, engagement, enlistment and monetization.
Few things to consider
- Consider rewriting from scratch. Since the author of the code was gone we were in hostile environment. Anytime we tried to fix a thing another got broken (the JUnit tests were out of date). Estimations and deadlines in such environment do not work and we missed all of them. Rewriting from scratch is a good option considering that we’ll be comfortable with the aftercoming support. Still after the changes we’ve made we are reusing most of the code, especially the one that interacts with external APIs.
- Consider shutting down of the service. Since we needed to keep the system alive supporting of the users was one more thing we had to deal with. It consumes time and brings distraction. On the other hand we had more than 5000 active users who were testing the application. And they didn’t go away. After we finished the maintenance all the users were still there and enjoying the fully operational system.