Building, Developing, and Evolving a product is something really fulfilling, how you work on your next big thing and seeing it grow day by day and you find people want to test your stuff and play with it and pay for it, is my definition of success, but I alone, won't be able to do so without giants who came before me and laid the pass to me and others like me
If I've seen further than others, it's by standing upon the shoulders of giants
Isaac Newton
Daily life of Software Engineers
During a normal day at work at any software project
You start to write code, this code gets iterated on, changed, deleted, or added to
These actions usually need some stuff to happen...
- Versioning
- Cloud Storage
- Secured Access
- Collaboration
Teams thrive on top of these 4 pillars, and losing 1 pillar, might kill the project
So, Why are they especially important?
1. Versioning
Having versions of your work can save you, your team and your company lots of hardships
For example, If i have a project like this
and I wanted to give my friends a copy of it with some special features like easter eggs for them to find
And then I wanted to share it with my colleagues but without any "hidden" features since it can be too personal or too casual for work
For such case, I'd make a copy of my project, and call it "-Colleagues Version" and rename my original project to "-Friends Version"
That would give me an easy way of identifying which version should I send as well as making projects isolated from each other, so instead of not having any versions or labels, and risking some discomfort ๐คฃ
You can just organize your project more by labeling and versioning them
So, now that I made my Great Project with versions for family and colleagues and friends and maybe my cat ๐ฑ
In a twist of events
My hard drive got fried... Bummer ๐คทโโ๏ธ
I lost my work, If only I had a backup!
The backup would've been great in such case, what's even better is a backup that you can access anywhere, and a backup that can not get fried on a hot summer day ๐ฅต
That's where Cloud Storage comes to play
2. Cloud Storage
Now that I have my project versioned and every version is safe and sound on Google's Drive, What else can go wrong?
Then, My Project got its first supporter, My Cat!
3. Security
And not only does he want to support it by blocking me from working on it, but he also wants to work with me on it ๐
And knowing "Mr. Peanut", nothing good come out of it... (Trust me, I know ๐)
So in order to make sure that my project is safe from Mr. Peanut's "little hands"
I need to make sure of the project security by ensuring that...
Mr. Peanuts won't invite his friends to my project so I make sure the damage done is not multiplied by how many cats Mr. Peanut can fit into the project (and I am afraid that is not too little) (2 little hands is always better than more)
So, I can share a password only I know, and Mr. Peanut can't, and also Mr. Peanut can only use it when he is accessing the project only
So, how do I do that?
LastPass is a really great solution for this case because, with LastPass, I can control who do I share my password with, and if they see it, or if they can copy it, see it or revoking it without them having no longer access to it
4. Collaboration
So, a couple of weeks in the future with Mr. Peanut as my partner-in-crime, it's time to merge our work, we got our local drives, and we are ready to sync our work together, I spent 2 days trying to selectively which changes he introduced and mine (I hate to say but, he did come with great stuff in the project)
Surely there is a way to do this in a better way, ryt?
What if I tell you that you can do all of the above with 1 simple system...?
Well... maybe not simple at first... but it gets simpler as you go, I promise
Enters Git
Git can do everything above, literally, EVERYTHING above, and more...
Where to go from here?
Git is a really useful tool to learn, but it's not an easy task to master it, and the more you learn about it, the better and more valuable you become