The loneliness and joy of programming
Here I go! This is a story about a new project, but also it’s a story about me! I thought I’d never write about myself, but I think it’s necessary to understand the reasons of the PassPill Project.
2017. The loneliness of programming
I am a software developer.
That’s really cool because I can create original material just using my computer and the magic of the Internet can spread it around the world to let everyone know! ★❤♥⋆⋆⋆
My friends say so:
“You are lucky you can code. If I could code I’d be already rich because I have tons of great ideas for apps, but I can’t make them real!”
Sure I have my own ideas and I always like to make them real. The fact my friends don’t know is that, sometimes, it’s the most ungrateful work in the world.
I have built many of my ideas and I love it, in 2017 I spent my free time building a web app that allows to have video language exchange in the browser. Isn’t it a great idea? Right now it’s completely functional, you would be able to use it to find a Spanish native speaker in seconds and start practicing Spanish straight away… if it was published. Its name was Parlator.
The cause of the fail of that project is that it was too big to be done by one person.
At the beginning it was fun, creating the proof of concept was quick and it’s really exciting to see how it started working. I tried to search for people to join me and I found some that gladly offer their help with the design, marketing strategies and business development.
I spent all my spare time coding and the app started to look gorgeous! The chat was working, videocalls run smoothly and you could see when any of your friends got online. The server-side stuff was a bit boring though. I couldn’t find anyone that wanted to help with it, so I had to configure instances in AWS myself, set up the domains with their SSL certificates, create the APIs, prepare the daemons to send emails… I always prefer the frontend development.
I pushed my team to have a meeting every week. Those meetings’ agenda was usually the same. First check the progress of our work, mainly the in the app, and secondly prepare what we can do for the following week.
For my team mates the project never had the same priority than for me. Every week they apologized about not being able to make progress. Their actual jobs were consuming too much of their time (I could say the same), but they liked the project and they were going to dedicate more hours the following week.
After some weeks having the same kind of meetings I should have realized that the project wasn’t going well. At that point I should have either changed the team or stop working on it. But I liked the idea and the app so much (well, but the backend part, I had started to hate working on it) and I had strength enough to keep working on it and try to make my team work.
The more I worked the worse the things went. Eventually the team quit the project because they felt bad about seeing me working so much, while they couldn’t do their part. They told me that I needed to look for people with more free time, but now I know that it wasn’t a problem of having free time. I had more or less the same time than them, the difference was that I was glad to expend every second working in the app because I was so excited about it. Whenever you start a new project with a team you need to be surrounded by people as passionate about it as you, and you will never get that pushing them to work.
I had another chance then to abandon the project then… but I didn’t. I looked for a new team and I found a new group of busy people interested in the project again :)
This second team was better than the first one, they didn’t have much time either, but they had nice ideas and they progressed in their part. The problem then was me.
It’s amazing how in software projects you get 80% of the functionality working in the first 20% of the development time, the rest of the time needs to be invested in tuning things up to create a polished product. All that tuning work needs to be done and it’s not creative nor much rewarding so having a colleague working by your side is like having a relief valve, a way of make sure that the effort is worth it.
However I didn’t have that colleague and I was getting more and more tired of the project as the development was progressing, up to the point when I didn’t feel like working on it anymore.
Handling all that coding by oneself was crazy. Back then, all what I see in the app were problems, there was always more work to do and not having anyone to discuss technical issues or sharing achievements makes any developer feel very lonely. I got sick of it, I didn’t like the idea anymore and the UI, that I loved at the beginning, looked so boring to me. After spending one year working in the same project, it was the time of wrapping up and decide not to waste one more second on it.
2018. The joy of programming
So sad so far isn’t it? But a new year has started and it’s a good excuse to change things, so my purpose for 2018 is… start another software project! Even bigger than 2017’s one! ★❤♥⋆⋆⋆
I thought about spending my time in something different, not related to computers, but I can’t help it: I love coding and I had a nice idea!
This year I want to enjoy coding. Wouldn’t it be possible to keep all the good parts of programming and none of the bad ones? If it doesn’t make me happy, why should I do it?
On the good side of the coding balance there are a lot of weight:
- The excitement of doing something new and different.
- The joy of discovering clever solutions to complex problems. No matter if I am the one who comes out with those solutions, or I got them by reading some nice article.
- That moment when you understand a topic really well and feel that you can bend your code to accomplish anything.
On the bad side there is the frustration of those moments when I can’t make something work even trying really hard. There are also hours of tedious and repetitive tasks that need to be done.
Having just the good parts and avoiding the bad ones is probably impossible. I won’t get the satisfaction of solving a problem if I didn’t struggle to find the solution. If I need to make both I’ll need to have fun with them.
My mistake last year was making everything alone. I couldn’t enjoy enough the technical success moments because nobody in my team understood them and the bad moments were affecting me too much because I couldn’t talk them out. At the end, without sharing I didn’t like even the good parts, so I have decided that this year my project will be about sharing.
My idea for enjoying is to do the opposite of what I did the last year. This is the introduction to the PassPill Project, an experiment that wants to share all the good and bad of developing a software application. I like to write and I have a lot of to talk about after a year of silent work :)
In order to talk about building software properly I need to actually build it, so I will be creating a web app called PassPill, a secure password manager. Its source code will be open and well documented, as well as the tools generated for it. That means than anyone can make suggestions and contribute with improvements, that way I can learn from you too.
The app will be the live example of the articles, I hope we all can use it to store our passwords but it’s not the main goal of the project, it’s rather a consequence of the sharing process. If you are wondering what’s going to be the architecture of the app, I’ll go through it in the next post.
I guess that just by sharing this article, without writing a line of code, I have just started my new brand project (this is one of the best parts of the development!). From now on, I’ll stop talking about me and I’ll start to talk about building apps.
Welcome aboard, clap if you liked the plan and follow @passpillio on twitter to don’t miss an article.