This post is about Yankoltuk, an application we had started developing with friends but ended in failure and what we are planning about to do about it. Technologies and problems mentioned here may no longer be a up-to date, but may be a little helpful for starters.
Yankoltuk is a Facebook application, first developed by my classmate Arda Başoğlu from Software Engineering MS / Bogazici University. He developed the application as final project and graduated peacefully. Yankoltuk application (meaning passenger seat in Turkish) is about sharing rides with people, helping our earth by saving CO2 and buying us more time from traffic jam. Arda had developed some features but wanted to take it further. He told us about to project and we formed a team for development. Our team included 2 more classmates, Gizem Gürbüz and Lerzan Akbulut. We formed our team in September 2009, coded (20%) and increased our know-how (80%) for most of the time. However we couldn’t release a public beta for several reasons that I am about to explain in this post.
As technical speaking, Yankoltuk is designed as a Facebook application, coded with Ruby on Rails and deployed to Heroku, a Ruby cloud platform. Data is stored on PostgreSQL as database, because of its compatibility with Heroku. GIT was used for Heroku compatibility.
As I mentioned before, I will try to describe the main problems that made us fail, or at least lag behind on this project:
- New Technologies
- Project Management Issues
- Real Life Issues
We used many technologies unfamiliar to us when developing Yankoltuk. Ruby on Rails was the only platform we all had some primary knowledge on, because we had developed our group project with Ruby. Ruby on Rails may be very simple and easy when you are fully capable of it, but was painful and time consuming for us (I haven’t checked recent versions of Ruby on Rails, we used Rails 2.x). We also spent a lot of time to integrate some plug-ins to Rails, like RFacebook and GeoKit, that were also really time consuming. We earned lots of experience though, you know what they say, it is the best way to learn when you dig your way through.
Yankoltuk was my first Facebook application and I had no idea how hard it may be to debug a Facebook application. First we tried deploying our application to Heroku and view changes in Facebook. But that method was time consuming and slowed us too much. Later Arda dedicated one of his PC’s to be a server and we directed Facebook to this server. For development, we remotely connected to server, so we developed “on server” and refreshed only Facebook to see changes. However I couldn’t develop on a remote machine as it was responding slowly. I needed speed when developing so we had to think of something else. Finally we noticed that we didn’t request much data from Facebook, so we commented out codes that requested data from Facebook. We had been developing with this method lately.
GIT is a widely used version control system, like projects Linux, Ruby on Rails.. etc. We had experience with other version control systems, SVN in common, but Heroku forced GIT to be used. So we had to learn some GIT commands and play with command line. We increased our know-how in GIT too.
Google Maps was another integration point in our application, because we needed coordinates to define departures and arrivals of rides. Arda had developed search mechanism based on text search and we agreed that this wasn’t the right method, because the application had to be global. So we changed ride search method from text-based to coordinate based. We needed to edit some of our tables in database and define new models and methods. At last our application could search ride departure and arrival points based on coordinate calculations.
To sum up, we can say that we used (or had to use) time consuming and new technologies. Research is inspiring, but now when you had nothing in your hands after months. This was kinda like learning derivative to sum up a shopping list.
Back in MS group project, we used a platform with integrated wiki and TRAC, that was supplied to us by our university. We all kept the wiki alive, and issue tracking was used well. We decided to keep the same method in our project, Yankoltuk. Arda bought a package from Repository Hosting which is quite cheap and included everything we need. We tracked our issues here, keep “important and easy-to-forget information” on wiki and track any source changes in past.
It is always to hard to keep motivation alive. Back in Software Engineering MS program in Bogazici University, we met every Saturday in campus and worked on the project together to increase motivation. We also worked solo on weekdays and merged new code in weekend project meetings. In this project, we tried to continue these meetings and work on project together every week. However it was not easy to be motivated when you won’t fail a course or if you don’t care about budget. Too much integration, research and little output gave us negative motivation.
To keep our motivation alive, we took photos in most meetings and Arda published them in his blog. You can check them here. We met in different places, mostly coffee shops.
Real Life Issues
We all had a primary job to do, to continue our lives. There is no one to blame about it. But we were doing fine anyway. It was lack of output in our project affected us in a negative way. This way we can undestand how customer feels when less output comes out. We lost concentration, motivation and passion.
I left to serve my military obligation in December 2010 for six months and Arda founded a software company with a partner to develop a new software on a tight schedule. These were the last events which made our group disband.
What Are We Gonna Do About It?
Recently we started to develop with friends from my college, Yıldız Technical University / Mathematical Engineering. We always named our friend group as “Dubluve” between friends, so we decided to give the same name for our software development group. You can check our projects and work here.
We all had some projects in our minds and talked about them. We came up with the idea that we can rewrite Yankoltuk application with a different perspective and using a more familiar technology like PHP, for both Facebook and mobile platforms. We also have my past experiences and a comprehensive wiki whenever we need them🙂