Web Statistics

Friday, July 14, 2006

Anyone want my slot?

This post is long overdue. The interview with the UP ITTC Admissions was more than 2 months ago yet here I am just about to post the outcome. I have already posted this at Because I am the Woman I am but somehow forgot to post it here. Anyway, here it is, for what it's worth to that someone who has been particularly searching for UP ITTC and have come back to this blog, I assume, to know what happened during the interview. To those who have no idea, read previous post Whee! I passed!

Indeed I passed the UP ITTC interview. And I only have till this Friday to enroll. As happy as I am to have passed both exam and interview, I'd have to let this opportunity pass me by. I don't have the molo, the dada to fund a year of schooling. The ad was misleading. There was no scholarship per se, only sponsorship, and that is only during the 2nd quarter, after you have proved your worth to the sponsoring companies by being on top of the class in the first quarter. No problem with that except that a quarter costs 25% of a hundred grand. Given you have enough cash stashed away, what about everyday living expenses? Eight to five classes eliminate the possibility of earning during these months. Call it cash flow in hibernation. The only solution was to find someone to fund me. Unfortunately, I found none. My trusty mother denied me. So much for sad news, there's a bright side to all of this, if you happen to be on the wait-list, call UP ITTC, there's a slot waiting for you. :)

Thursday, June 22, 2006

SDLC in Reality

Earlier, one of the veterans from the technical department in the company mentioned that before, the programmers that the company hired were really very good. They were able to generate the programs at the soonest possible time, sometimes as soon as a day and at other times, a week, depending on the scope of the program. And I don't question that. It's her own subjective perspective, that of someone who's responsible of getting the program to the client at the soonest possible time, if possible, beat the deadline. I, on the other hand, have seen their code and I am saying that it is a mess. Of course, this is my own subjective perspective, that of a systems developer who has to plow through their thousands of lines of code and make sense of what I am reading. I don't mean that the code is unreadable and therefore impossible to understand, just ugly to look at and it'll take some time before one'll understand how it works. What I couldn't fathom is where did they find the patience to read and maintain programs, thousands of lines long, without functions, read from top to bottom, without getting exasperated. Oh yeah, I forgot they've already left. And they were written in Perl, a language I know nothing about and by the looks of it, I should be studying.

So anyway, this led me to compare the software development life cycle I learned (and touted) in school and the actual software development life cycles as applied in developing systems in companies (in my current company anyway). This made me think about planned development versus speedy "instantaneous" development. I majored in Software Engineering in college so I took courses such as advanced software engineering where I learned UML and the need to document, where we looked for a prospective client, developed a system according to their needs and requirements, did the necessary testing for each module, integrated modules, performed integration testing, and outputted the necessary paperwork: overview, background, diagrams, testing results, and user manual. The biggest difference between school and real world development is the timeline. In school, when one starts on a project, before anything else, the professor asks for a timeline. This timeline is broken down to the specific stages in software development: requirement definition, design and planning, implementation, testing, modification, integration, testing again, modification again, testing again... it's a cycle and it just recurses. Usually, the recursive process of testing and modifying and testing and modifying till one deems the software passable takes at the very least a week. Requirements definition phase also needs a significant amount of time, unless one is so familiar with the system that is to be developed. Design and planning a week too at the very least (unless of course these are really very simple programs). Implementation and development requires a considerable amount of time, testing and modifications too require a certain amount of time. And even when the program has already been rolled out, bugs are bound to surface, and it's back at the developer's table again for fine-tuning. A different version will be rolled out, and the process is repeated.

Working in the real world, specifically in the 3rd world, SDLCs are but a dream*. It's an effective framework but I pretty much have no use for it for now. Requirements definition? A new requirement gets added every now and then even when the initial release of the program is yet to be rolled out. Planning and design? One does that by one's self, as one is coding. So now we have done away with 2 initial stages. Of course no one skips the implementation. It's actually the first step. Testing and debugging? Not enough time to do that. The program gets rolled out and errors are bound to crop up and accumulate. What can you expect with a spur-of-the-moment, not-even-well-thought-out program? The output? I don't even want to know. To begin with, I was given a program to finish which will generate a report for different users, on different servers, and there was no timeline, just a deadline. Added to that, there wasn't any decent documentation. The documentation that was forwarded to me for this specific report didn't indicate the data source(s). I asked the system analyst about this and apparently, the system analyst too didn't have any idea where the developers were sourcing their data from. There was no mention of design, no one asked me how I was to go about in generating it, I didn't know the particulars of the business process, I didn't have any idea how the users were going to use it. I didn't know a lot of things. The only thing I knew, aside from some formulas to use, was the deadline.

In effect, this got me wondering how much the company was spending on maintenance. Everyday, my inbox is flooded with patches. These patches are the company's way of correcting those bugs which we never seem to run out of. They call it fire-fighting. It's a boring, exhaustive maintenance job. How much would it cost a company to invest in a requirements definition phase, a design and planning phase, and testing phase as opposed to going immediately to development and implementation and roll out then deal with all the bugs that are sure to crop up afterwards? Of course, maintenance is there to stay. But how lesser will the maintenance be if these initial stages are actually followed? Questions like these make me want to measure and monitor the company's expense on maintenance and cost of initial deployment. Questions like these make me want to go back to data integration and business analytics. But more than these questions, realities such this make me want to abandon software development altogether.

* Am sure outsourcing firms are in (much, much, much, way, way, way) better shape than ours. I am not currently working for an IT company but one still wishes that certain standards and processes still be followed.

Wednesday, May 10, 2006

Whee! I passed!


If I could do cartwheels, I'd be heels over head right now. I passed the UP ITTC entrance exam! :D

Got no idea? Read Taking the UP ITTC Exam.

Interview this Monday. I wonder what questions they'll ask.

Monday, May 08, 2006

Taking the UP ITTC Exam

Date: Saturday, May 6, 2006
Time: 8:00 am
Venue: Room 303, Math Building, UP Diliman Campus, QC

First things first, if you're wondering what ITTC means, check out this site. If you're too lazy to click the link, read on.

UP ITTC is the acronym for Univerisity of the Philippines Information Technology Training Center. Its goal is to "fill the IT industry gap in the Philippines" due to "inadequate practical training and industry experience". Ouch!

So there I was last Saturday together with more than a hundred people, ages between (based on the wrinkles, frownlines, and number of white hair) 20 and 40, aspiring to be one of the final 75 who will study for a year, choose among the three tracks: embedded systems, application development, and network administration, and hopefully be UP ITTC certified by 2007. Out of the 75, 50 will be on scholarship grant, and also learn Nihonggo at the same time thereby increasing one's chances of working in Japan. Wakarimasu? (I know it's supposed to be wakarimasuka but I'd like to say understand? as in "understand?" with a question mark in English :D) My friend, who's so interested (bordering on obssession) with Japan's culture, would die with envy if he heard about this, and would most probably not talk to me for a year for not telling him in the first place.

Anyway, going back to the exam, it lasted for a total of 3 hours (that is without the breaks) and it was composed of 4 parts: verbal aptitude, reading comprehension, logic and reasoning, and math. I am going to break them down here, get to the specifics, and tell you what to expect. I am not so sure about the number if items and the total alloted time for each part (If you were there and know that what I wrote here is incorrect, please correct me). On the other hand, I am sure that the total time (in minutes) for the 4 parts is 180. So if you're not interested in taking the exam, click the X button on the upper right of the window because this post won't do you any good.

  1. Verbal Aptitude (30-35 items 40 mins)
    I remember the very first item was a sentence with a phrase underlined and one was to choose among the choices. There was no instructions what to look for. The clue was just the underlined phrase. Now this wasn't the sort of verbal aptitude test that I was used to. It took me several seconds to collect my bearing and rearrange my thoughts. I had to reread it a couple of times till it finally sank in. Between the lines, the item said "Choose among the choices that would best replace the underlined phrase." Brush up on your grammar: past, present, past participle, present participle, singular-plural, noun-verb, etc. As far as that exam was concerned, its focus was on sentences. One word though, what's hardwired?

  2. Reading Comprehension (30-35 items 50 mins)
    Prepare to read a lot of essays and portions of essays. This one, I expected. Brush up on topic sentences and contexts. Answer it as fast as you can so that you may spend the remaining time sleeping, or if you want, reviewing your answers. I had a hard time keeping myself from dozing off.

  3. Logic and Reasoning (30-35 items 40 mins)
    As far as that exam was concerned, there was no abstract reasoning, no pictures or images to look at. Brush up on Philo 101. Trust me. You'll ace the test if you do. Remember
    No geese are felines.
    Some birds are geese.
    Therefore, Some birds are not felines.
    Think along these lines: What premise would make the conclusion incorrect? Of course, in the above example, the conclusion has already been given but think about premises and given these premises, what would be the conclusion. Think of the premises starting with "always" or "never" and what would negate them.

  4. Mathematics (35-40 items 50 mins)
    Expect algebra, geometry, and trigonometry. Remember these:

    • SOHCAHTOA
    • d=rt
    • a triangle = 180 degerees
    • angles
    • pythagorean theorem
    • permutation
    • slope = rise/run
    • volumes
    • formula for the different shapes
    • 2 pie R
    • radius and radian
    • and etc

    Better yet, grab your high school books on these subjects.

So there's your UP ITTC exam in a post. If you're going to take the exam next year, I'm telling you, prepare for it! I certainly wish I did!

Thursday, May 04, 2006

Programmer? Developer? Engineer?

I recently read an article on the identity crisis of computer science fresh graduates. It was a reaction to an article he read, Techies learn to decode the career code. Essentially, the original article dealt with the difference and prejudice that comes with the titles "coder", "programmer", "developer", and "engineer". The terms coder and programmer are generally interchangeable.

...Programmers are those who are primarily involved in coding very well defined pieces of software, whereas 'developers' are more involved with design issues and have more freedom in their decision. The problem with engineer, on the other hand, is so much weight has been placed on this term, that you'd better know your stuff.
However for US-based George Tomkins the right identity means something, for better or worse, to most people.

He shares, " I went to the first Java One conference, circa 1995 and at an event, I walked past a group of hardcore Java Developers. At least, I assumed they were due to the characteristic, urban safari uniform. Anyhow, they looked at my badge, which said 'George Tompkins' Programmer. I'll never forget the audible scoff when one of them said under his breath 'programmer."


Personally, when I graduated with a BS in Computer Science major in Software Engineering, I really didn't want to be a programmer. There was, for me, a stigma attached to it. I wouldn't have scoffed in Tomkins' face, but I'd have had thought 'programmer'. Programmer to me was just a cut above being a robot. No need to come up with your own design or algorithm. Maybe that's why I didn't go into development initially. I worked for a consulting firm and had ready-made tools/applications to work with. There was no need for me to code/program. I only had to think of a solution and then make this solution concrete by using said applications.

Just the same, right now, I'm back in software development. Unlike George Alexander who fell in love with programming at the age of 12, I went into Computer Science because I couldn't imagine myself spending more than 4 years at school by being a lawyer or a doctor and I didn't want to become like my mother who's an accountant and I didn't want to take a rich kid's course like Psychology and also because I was used to being by myself, a course that requires a lot of interaction seemed like a bad idea at that time. The first 2 years in the university, I was just sailing with the current though I never copied classmates' assignments, tests and programs because my inflated ego couldn't accept the idea that I couldn't do them on my own. It was only in my 3rd year, when introduced to automata theory, turing machine, and lambda calculus that I began to like my course. It was also at this time when I decided to major in Software Engineering because I thought it was "hard". Unconsciously, I'd already set up my future of Programmer? Developer? Engineer? But I agree with them. What matters isn't the position, what matters is what you know and how good you can be.

So here I am now, still in Information Technology. My dream is to be one of the movers and shakers of the field. Lol. I don't have the makings such as this guy but it never hurt to dream.

Thursday, April 20, 2006

Pilot

Several months ago, this pilot post would have had been about data mining, data integration, star schemas and business intelligence but since I've changed fields (for now), I'll be writing on software development and open source systems.