Iman Tumorang
Iman Tumorang
Software Engineer - Writer - Open Source Enthusiast - Startup Enthusiast
May 1, 2018 7 min read

How can I ever be a shit as a software developer

And what I can learned and improve by being a shit.

Become software developer is not a title, but it’s a responsibilities we must faced. When it’s not good, then say no, otherwise say yes. Don’t be the sh*t programmer.

Surprised by the Unexpected Things

On my second grade when still in college, a few years ago. I got a chance to work as intern in One of government office as an software developer interns. We are 3 student’s included me and my friends.

We work under a freelancer vendor (only a single person, I will called him boss). Our task is create the client system in that office, like HR application, Informations System for documents etc.

Well, we paid daily and it’s pretty much to each member by our boss, with working only for 2 months, 8 hours/day.

At that time, the first I think was, we will only coding the system, so we didn’t required to do requirement gathering anymore as our boss said in the beginning. Well, the reality, is so surprising.

The system is already running, that written in PHP, but for a few function. That was an abandoned project by the last vendor. The last vendor fled and disappeared. WTF!!!

Tangled Thread taken from google images search

More surprised, the need for all the functions, still not gathered yet. Whaaaaat??? Yes, so instead coding the application, we also gathering the requirement, and doing analyst for each function. WTF!!!

You know what? We also have another a very very surprising news. The project doesn’t have any structure. NO FRAMEWORK, NO ARCHITECTURE or PATTERN USED, NOTHING. It’s only contains a lot PHP file, and *bla-bla folders that I don’t know what the hell is used for.

At the time, we offer an option to rewrite it using a new framework (Yii2 Framework) the easiest framework and the fastest delivery time at that time. But our boss said, it will cost more extra time. Because some of function already live and used by the client. So our options is only continue the abandoned projects without structure and architecture.

Client Didn’t care

As the vendor, that will build the systems with no data gathered yet. Our main task for a first month is gathering the requirement. And also doing some of demo to each client ( the employee at the Office) who will used it. We are using waterfall method to develop the system at that time.

Then, we started to interview some of our client. To shorten the time, we only interview the lead of each divisions. We are only 3 programmers (internship) and we divided into 3 division. I will handle the document management divisions. So my task will to interview the lead, to know the current system, analyzed it, design it, and coding it. And the final results is to digitalized, also to ease them to used it and no more conventional management for documents.

whatever ; taken from google images search

Well, when doing interview with him, it’s frustrating. He always make appointment to me, but he never come. When he was there, if he not busy, he was playing a game. And cannot bothered. WTF!!. The inner me : “why I must creating a system to a people who doesn’t care?”

To fix this problem, I called my boss, so I can interviewed him.

Being Used by the Boss

The first month was the requirement gathering phase has passed. And in the next month, we will going to show some of prototype to our client.

Our boss never said the deadline and never know that we were struggled on our job. Also, he never touch the codes. You can imagine, 3 students with no experiences in real big project, struggle, don’t know what they have to do. We always trying to tell this, but he always change the topic, and motivating us, that we can do it. YOU CAN DO IT!!!!

Explotation of worker taken from google images search

One day, our boss make the appointment for demo phase with project owner. And he tell us about it, the day before it.

We are panic, nothing was done. Nothing worth enough to be demonstrated. Even the layout didn’t finished yet. He told us, that the appointment already settled. And we must finished it. He offered us come to his house. We agreed. Then he gave us the Internet, and big monitor. Then we must finish it. WE DIDN’T SLEEP. WTF!!

Well, if he was there, with us, help us or just chit-chat. That’s no problem. But, He just slept with her wife in his room. And leave us in the living room, finishing the prototype.

Until 8 AM, without sleep, we finishing the minimum prototype we could done.

Is it normal to Internship students to do this? I don’t think so!!!

Last Day and New Offering to Remote Working

At our last day as an internship, our boss then offered us to continue this project. Because finding another team, will cost to much resources in time. But how?

Then he introduce us about remote working. We using FTP. With the file in the server. The flow is was like this :


At the time, neither of us know anything about Git or version control yet. We used this method, so we can work from our college.

Also, for more faster delivering the project, we will add more team member. From 3 to 6 person. And all of us work remotely.

We also didn’t have the staging server. So we are coding directly into production that used by our client. Seriously that’s a really challenging task.

Being a shit

So when our boss offered this, I’m just saying Ok. Because I don’t think too much at the time. I was only think that I will get extra money. 😈

No Integrity, taken from google images search

A few weeks passed, we are working from our college, and paid daily as usual. Download the file using FTP, edit in our local, and upload, and look for the changes directly into web production.

Until, the disaster happen. I forgot, my requirement is not finished yet. So I tried to call the client, the Document Management division’s lead, for more explanations. Well, I found nothing. His number never active. WTF.

I told to our boss. Then he give another number, this one is not the lead, but he know the workflow. Well, I’m trying to asking him by phone. But, It’s too abstract. It’s too hard to do requirement interview from phone. I offer to use skype, but he doesn’t understand to use it. And prefer to use call by phone.

I got frustrated.

When our boss asked it. I just bluffing that there a lot to do more in the function, blah blah blah, and he believed it.

So for 2 month, I not doing anything but get paid. Holly shit!!!!

Later, I’m tired playing the drama. I was wrong. Then I confess my fault to my boss. Tell the real truth, that It’s really hard to doing interview by phone. Because I need to make a sketch, or draw that can seen by both of us.

And I gave up. I stop. And I don’t want it anymore.

Lesson Learned

  • I’m a fool at the back days. Money oriented. I never think clearly at the time that It will be a very hard task to done, especially gathering requirement from client by using phone.
  • That was my big failure. A very BIG failure I’ve ever made. From that time, I promise to myself, I wont’d do that again. Never. Especially when I’m getting paid but not do anything to the project
  • If you are a freelancer vendor, that got a chance to build a big system for some of company. Please don’t be like our boss at that time. He attract the students, and used them for his own purpose. If I was him, I’d rather hire a more expert/senior programmer than a internship students, who still need guidance and learn.
  • Having skills is a good thing, but having integrity is another thing.

_Original Posted:

comments powered by Disqus