Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Tuesday, September 12, 2006

Thought Processes

They say that we are the thinking brains and hence we have risen to wherever we are today. Now, if someone wishes to stop that thinking process and make us all into just workers, what will happen. This is the thought that has been crossing my mind for a long time now. Specially since there have been many new developments at my workplace which are leading me along that path. I have often wondered on the aspects of Software Development, is it only just coding and testing that code that goes into it, or is there something else also involved. I always had the thought that it should have a lot more than just the coding and testing aspects. Then came the day when I entered the world of Software Development. Luckily for me the experience started with a lot of thought process going into it and also along with that a lot of logical reasoning and documentation.

The process in initialization into this field was not an easy one and that is what I had thought the way it should be. Just when I had started to feel that I had started to learn what goes into making and creating good software, I was introduced to the life of a mundane worker, who just is a glorified typist. This person has to follow whatever is being ordered of him and follow those instructions to the T. Forgotten were the previously taught things about logic and applying your own thinking power to create something. It all boiled down to deadlines and the best possible ways that you could go ahead to the challenge of meeting these and appeasing the top bosses. Although in this regime, you never got the credit for the long typing hours you spent trying to get tunnel carpal and eye fatigue. All the credit went to the guy who showed the top bosses the snazzy presentation slides made out of mindless mambos of jargon and technical quotes which neither the guy presenting it nor the people listening to him croon, could make any sense out of. But, all just nodded their heads in the fashion that they really were doing something great and had finally got near to achieving this too. [never understood till now that it was just another bonus cheque in their pockets]. This is when I revolted and ran to the next place which came across as a place where I would be allowed to think. And so it turned out to be until the time came when that same type of people again flocked back over me...

This is real frustrating when the person above you informs you to please shut down all thinking senses and start working according to set down rules and regulations!! What can one do in this case except change and expect that the new place will be a lot better and let you think??!!

Saturday, April 8, 2006

Documentation

Back to the crux of all things - documentation. I suddenly realized why we need the documentation when suddenly a lot of people started to leave and the things that they had started here went for a toss as they have as yet not created any documentation in a Word Doc but only in their minds...

My PM came over today and the thing on his mind was to assimilate and get all the work that had been done by the people, into a single entry point on the version control system and then work on integrating the same for all the products and applications. Currently, the task I am doing is majorly centered on the Windows platform, but now I will have to check on all the products and all the platforms and see where all optimizations can be made so that re-work is not required. It takes a lot of effort and thought to create something but only a little bit of negligence to completely destroy the same. A prime example of the same is the test framework I am currently working on. Now we had a perfect version checker written in Perl, which used to check the version of the product installed by us and the version of the product as given by the executable. But the build and installer person decided that [or rather forgot] that he has to update the version number in the installed package. This made the situation that the version obtained from the package was different from the version given in the setup directory name and again different from what the user was entering it as. So came the problem that when we installed the product, the versions would not match and the product was again uninstalled, but as we were not checking the product version when installing, just the executable file was being checked, we used to install the product again, reboot and then get the version from the command line tool. This was matched with the version given by the user and again a loop as no match means uninstall the product... :-D

The main thing I next need to learn from this was never to trust anything where a human can make an error, as the famous words go, "if anything can go wrong it will" [along with "to err is human"] and the axiom added by my Project Manager from the first organization I worked in - "the thing that goes wrong will happen in front of the customer", which is this case was the QA team who were supposed to execute the automated framework. They took the build and the process went into a loop... :-(

So coming back to the documentation part now, I was as is by habit creating all these documents, but could not comprehend this eventuality of the loop as I have given above. So exactly what does the documentation do? Well! for the first part, it got us immediately to the solution of this problem. From the given documentation we already knew that something was going wrong in the comparable algorithm as every time we got the message that 'Version not Match' and then uninstallation of the product and after that again an installation of the same. On going through the comments [code documentation] for the installation, I realized that I had not catered for human error and thus the solution to the problem was to cater for this, a major thing which I realized for Automation of anything was FAULT TOLERANCE...!! This has to be built into the system, else all our automation efforts fail, if we are just spending time in monitoring the application which has been automated.

As for the documentation part of all the other tasks being done for the automation, I realised that none of the others had any sort of documentation to go with them, except the typical programmers prospective of code and go, the logic and document is within the brain of the programmer who created the wonder of an application in the first place and as I have said earlier an unmaintainable application which if not understood and needs change might be discarded later. Thus, I am now to get down and create a document or ask the people who created these applications in the first place to create the same... [ the second option definitely looks appealing... :-P ]

More coming' up...!!

Monday, April 3, 2006

Batch Scripting

Did you know what all you could do with DOS Batch files??!! Did you think all you could do was start another batch file, call a few commands to run in sequence!! Well! With DOS and batch commands you can do a lot more, right - you can even read and write to a file, and also it has a somewhat restricted sense of sub-routines in it. So, finally I was introduced to the world of DOS Batch Programming. I learned that Batch processing is a lot more than I would have ever thought it to be. Can you image my surprise when I learned that you can do file manipulations using DOS??? And to add to that, even binary files can be manipulated using the simplest batch commands of DOS?!! Ever heard of the command FOR in DOS! Well! If you add the /F switch with the same, you get a wonderful file handling capabilities for DOS. Read up more on the posts by Mic, an avid and resourceful DOS Batch person, who I think would be able to answer all DOS Batch related questions you post to Batch World group on Yahoo!: Batch World

Well! I have had a fine time trying to work out what all I could to with DOS to help in my Automation work; as currently what I have created is a PXE server which can boot a machine into DOS, from here I have to carry on and cal the Acronis Command Line tool to accomplish my work, but all has to be done using DOS commands only as the environment into which the system is booted into is PURE MS-DOS with a few network enhancements. I now had to work out a way by which I can get my system to work by calling the Acronis Command Line tool and install an image for the system which will be Windows platform and configuration as selected by the user, as this is a dynamic thing, I have had to do a lot of work to create dynamic fiels which would do my work and heer I learned about DOS and Batch File commands. Currently, I have managed to get a working script which will help me in installing images stored by me on a server and a user configuration in which user selects his choice of OS file system to install and execute his test framework on:
@ECHO OFF
SETLOCAL
FOR /F %%y IN (c:\OSCount) DO CALL :READ %%y
SET /A countWr=%my_return% 1
ECHO %my_return%
> c:\OSCount echo %countWr%
ECHO %countWr%
GOTO :END

:READ
SET /A v_sum=%1
SET /A count=1
FOR /F %%x IN (c:\MyFileA.txt) DO CALL :ABC %%x
ENDLOCAL & SET /A my_return=%v_sum%

:ABC
SETLOCAL
IF %count%==%v_sum% ECHO This File %1
ENDLOCAL & SET /A count =1

:END

The above script is reading a file (MyFileA.txt) and getting the line number to be read from another (OSCount) file, which is then incremented for the next execution (the file is written to, we can also append to the file by using double greater than symbol - >>). Also, the variables are being passed as parameters from one sub-routine to another and then returned. So, finally, when we reach the first sub-routine again, the OSCount file is contains an incremented new value and when we run it again, we can get the next line in the file MyFileA.txt.

Although with the above script you can find out many things you can do with DOS batch commands - read a particular line in a file, write or append a line to a file, and even sub-routines in DOS!!! I never knew these were there. The SETLOCAL - ENDLOCAL actually defines a sub-routine in DOS. For debugging DOS batch files, you just do an @ECHO ON at the beginning of the file and execute the script through the DOS command line and viola, you can actually pin-point where you are going wrong - which line or variable is returning what value and where and when.

So, folks all I can say is that get your Windows machines pumped up and start using the powerful features of DOS which you might have never know existed... (PS: I have not added the code sent by Mic here as the link should take you to that, which is more nicely structured and concise!! My code is just a bunch of statements more meant to give an idea of what all DOS is capable of doing...)

Saturday, April 1, 2006

Automation - Where, When and How?!

So I finally realized what doing work is!! It is a good feeling and you are all tensed up and ready to get heckled up at any single pretext. I have been going through a lot of these learning phases as one can call it. It all started when our PM asked me when I had just joined this company that there were a lot of problems with the current setup and we had just toooo many platforms on which to test our builds for. I finally got to know what these toooo many platforms were, when I realized that they were calling each Service Pack installed and each file system (3 for each OS - FAT16, FAT32 and NTFS) a separate platform.

So counting all the OS and their respective platforms I came up with the 'magic number' of 51 and then suddenly realized that it was more (about 74) in all, on which we ultimately would have to execute our test framework. Coming to the framework part, this is another interesting story; and typical of the was a software development project works: First comes a super geek, who just sees the problem, codes and leaves with the basic framework setup completed, at the time the application was conjured. Then comes another who has to upgrade it to the latest version of the framework and the product. This person along with a few other underlinings, checks the same and does a modification of the existing framework. Now along comes me... :-) [I know self praise can be harmful, but everybody must take it sometime or the other, as in small doses, it really helps... :-D ]

With the complete documentation training that I have had till date and specially in my first job, I start with just documenting the code, and suddenly find that there is a lot more than documentation which is pending in the code. So, I get down to revamping the same so that it is workable with my new logic [this might have been the thing that the second person who got the code might have done, but not documented as properly] which is rather a lot of comments than code and the comments soon start becoming clear and the code starts to disappear... :-)

Coming back to the issue on hand - that of automating a system which has already been created by someone whose logic and understanding of the problem might be a bit different from what I have been doing, I came to the final conclusion that until I try and do a complete revamp of the existing code and either update or remake the code from scratch, I will not be successful. So, I start with the basics, which is all test cases should run. Now, the code for executing these test cases should run and finally the code should be in a structured manner.

The lesson I think I learn from the many failures of the system when you are trying to get something working is this thing to add FAULT TOLERANCE. In automation, this is one thing which I think I need to learn, should be built-in so that at any point the tests fail, the framework created should auto-recover and start with the next test case. This will be the final step before I finally automate the said framework for all images...

Next will be the actual automation process I employed for setting/installing and executing the test framework on multiple images and multiple systems at the same time. Which hopefully I should be able to do earlier than later...

Monday, August 15, 2005

Object Oriented Work!!

Well! High time it has been that I visited my page and continued on my Ramblings...
The past year has been a very stressful time with me on the tenterhooks all the time as I am VERY weak on OO concepts and that is what is the work that I am currently working on during the time that I have been employed in my present company... :-)

Actually the work began with me being recruited during the interview for a compiler post and then it being transformed to a OO QA role later sometime. I never knew when it hit me that I will also have to go the OO route for me to be competitive enough in the field. But Managers being what they are I was told to complete the work given and start with the current concepts of learning about OO. The concept stage was easy, but implementation took the cake. To add to the injury, we had team mates who thought they knew all the concepts and ideas and wanted us to not learn mor as then we would advance leaving them in the background... :-(

I suppose the work culture that I wanted and had developed is slowing getting eroded away and soon it will be time when I shall again have to resort to the last available weapon with me - CHANGE!!! :(

Friday, June 18, 2004

Work @ iGATE

Another day goes by without too much activity on my part. I have been put into the group for creating the properties file for the new devices sent by the client. The software is being developed for Nokia Client and is called the NOBS - Nokia One Browser Server. This will be a box which will deliver the content to any phone from the content providers place. So anyone who connects via GPS to the content provider [Hutch, Airtel] would be able to view the web pages on his phone. WAP would not be a requirement for these pages, they would be ordinary HTML pages, which would be converted to the respective size and shape for the phone which calls for the request.
The properties page is basically a set of files which determine how the phone looks like and what content and in what manner [size, etc.] to send to this particular phone.

This seems like a not-too-technical and not-too-mind-intensive work and I for the present am not liking it...

Had a treat from Mr. Nitin Mathur as he keeps on saying that I am earning more than him, even when I have not started with the Macromedia job as yet. I really enjoy it when he says that, but I think he is just ribbing me into treating him, so it feels good when i make him pick the tab for the same... :-)

Tuesday, June 15, 2004

Work @ Acmet

Well!

Seems like a long time ago I planned to start with this... Anyways, now that I have settled down to this new job, I think I can start planning and doing atleast (if not all) the things I had planned for...

What I actually wanted to start off with is what am I actually doing the whole day... But, now I think I will relate to the incidents and my learning a new computer language (new for me, Oldie for all those who are there or have used it... )

I start with my first experience with the computer language Java. It was first thrusted on me with the advent of a JVM for an Embedded Platform, which was to be built for a normal training project. This project was basically to start the new MCA (Master's in Computer Application) trainees who would come to our Company for a basic 6 months of Course training. My Project Manager thought this would be a great way to teach them about the processes that we are following and also get them into the mold which would be followed, if they were to join the Company. Thus, started the great experience... I thought that I would have to start studying Java language and started off with just that... It was a great time as I started with the Java Language reference and then got on to the Java Code... that is where i drew a blank as till this time I was reading only the Preface and the Introduction... :-)

Well! I think that is enough of my ramblings for today will start again tomorrow...