A Short Background
The Lead Programmer (L.P.) was my professor at a college I attended. Then the Operations Manager (O.M.) was a student of the Lead Programmer.
A year ago (February 2016). A start-up company has been founded by the O.M.’s cousin (with more of a Civil Engineering background than a software one). The O.M. hired the L.P. probably because he was her professor at the college she attended.
So fast forward November 2016, I was looking for a company to finish my On-the-Job Training then my professor/L.P. encouraged me to try where he was working. Fast forward again I chose the start-up company for some reason, mostly personal preferences at the time.
The company by the way has four employees: one which is L.P., coming from many backgrounds such as Multimedia, Game and Software Development, and the other three which was originally into Game Development.
Days as an Intern
I was assigned on a project where I have to continue working on the L.P.'s primary project (a new software for the Founder's main company). He turned me over his progress (incl. documentations) and I saw this kind of code structure almost all throughout the project files:
<?php // some PHP code placed here, mostly includes. ?>
<!-- lots of internal CSS placed here -->
<!-- lots of JS code placed here -->
<?php // some more includes. ?>
<!-- then HTML elements -->
<?php // then some other PHP code for processing data. ?>
<!-- then some HTML elements again -->
I immediately saw problems raining down on me regarding the L.P.'s ways in my first day as an intern. I'll just enumerate the following that I have observed during my Internship:
- The source was literally full of spaghetti code - I mean, it did not even followed basic directory structure for MVC, which in my opinion a big problem when it comes to maintaining and expanding the system in the long run.
- The project did not use a framework - This project is developed in PHP by the way. This particular project involves a complex business process (a lot of construction material types are being tested and computed manually and the Founder wants it to be computerized). I believe a framework is necessary for a project of this scale.
- Version control system was nonexistent - It is way too hard to track changes on the code of the project without VCS.
- Incomplete business/code documentation - Some business documents were lacking for the project.
My observations in number 1 and 2 were addressed during my Internship and the number 3 and 4 during my time as an employee. I was somehow able to get his attention on these problems and act on it.
Days as an Employee (March 2017)
While my time as an intern discovered technical difficulties, this time I encountered behavioral difficulties with our Lead. The very next day after I signed my employment, he was absent from work for four (4) consecutive days. That was when my colleagues (including my O.M.) opened up about the absenteeism of the Lead and they told me the work situation.
When I asked the O.M. how come she did not get strict on the absences of the Lead, she said that it was because she feels embarrassed (and awkward) to reproach the Lead that once became her professor.
My Question Then Is This:
With this kind of situation in mind, I am not having a second thought to leaving this company for good and pursue a chance of a better career on another one.
But before I do that, I would like to talk one-on-one to my Operations Manager about the situation(s) regarding our Lead. I would like to ask the following: (1) how should I deliver my concerns in detail to our O.M.? and (2) is it really a good idea to do this? why or why not?
P.S. I would like to see this start-up company grow and thrive, even if it means I have to leave it.
P.P.S. I'm a fresh graduate so I really have next-to-zero experience in dealing with these scenarios.