I am working in a startup, I develop apps for Apple Handheld Devices. My designation is cool, I am an iOS Application Developer. Compared to the Big Names in IT industry, the place I work at does not have everything implemented, when I say this I mean the technology.

Since we develop apps we have to deal with different versions of the app. Since we work in teams we need to collaborate and integrate the changes done by our team members.

Many people can work on an app together, the app can have multiple versions. The same app can be assigned to someone who has not worked on it before. And like/believe it or not generation gap exists in between Software developers also. The new developers should understand this and the experienced should accept this. I am new in my company, I know some things that are not known to others in the organization. Next year someone else will join in and will know something I may not be aware of. Its not something to be arrogant or shameful of, not everyone is aware of what released today or yesterday. But yes, if you are in technology sooner or later you need to update and change how things work. Accepting the change has always been a problem with people.

Till today we used ZIP archives for any newly added feature or work done on particular day. So its like 30 ZIPs for 30 days and some extra ZIPs for new features. I have seen apps for which the ZIP count is above 50. This killed me for a moment. It is the wastage of memory and trust me it also kills the productivity. ZIPs have no feature to add version details, bug fixes, documentation, directory structure etc unless you put an extra text file describing the files and folders. It can take so much time for an employee like me who has joined recently to understand the 10k to 20k lines of code and complete the new app version.

When I see words like Team, Versions, Integration, Collaboration, my mind thinks about a Version Control System. To be more precise - Git. I was working with Version Control from my college days so I explained all this to our boss, being a knowledgeholic he was very interested to know about this and was impressed with the solution proposed and happily he also ordered a server for this. So now I was responsible for taking control over all Version Control tasks, like training my colleagues for using Git and setting up the Git Local Server(though servers are physically hot but they’re so cool). Today I with one of my colleagues (and also my roommate) setup the Local Git Version Control System in our Company and I believe we have done a great job.

I like to teach and share knowledge but I don’t like to be hated for bringing out a change(which is good actually). Making people ready for using Git was a challenging task. To adapt new habits you need to stay away from your old contrary habits. Now we have to have all ZIPs deleted from all our computers keeping a backup in the backing store. There were a lot of ZIPs around, and not surprisingly multiple ZIPs of the same app and same version. It was a huge amount of data. TeraBytes of storage was getting filled like nothing. It took 3 days to take backups and cleanup all the systems. People hate me for this. But no regrets, tomorrow is gonna be a new day with a better computing power and highly controlled systems.

You might want to check features of Git.