Monday, July 2, 2012

Software House, How It Should Be (part.1)

Welcome to this era, the last thirty years was a very impressive human progress than the last three centuries. What does thing cause it? It's called technology information. The thing makes economy, education, and many processed faster. Btw It's just some facts. China's economy moves fastly although it has been colonized by Japan few tens years ago. But China has wide streets, from their city to village. It explains how important a fast things transfer is. Wide way means everything sent faster without get jammed by traffic and economy processed faster as well. More things sold, more items used, economy moves fast. My geography teacher told me that.
Information Technology
But today many things processed digitally, business process as well. Many company try to computerize their business process. We know every company has one and usually it's a secret thing, if they want to computerize it then they have to rent professional trusted men. So there is Software House. There are many different type of computer technician. The very basic are, hardware and software. It's hard to find a man who can do those things at once goodly. But Software House can do both and also has complete specialists inside.

Before we go further i want to tell you that i only talk about the software things here, because i work on that field and also where the problems are. Back to few pharagraphs before, about business process computerizing. If we want to do that, firstly we have to collect every data which is processed and make a logical form about the data flow. We know the form as a blueprint but in algorithm form. It has to be done by a System Analyst and then discussed with the client. If it's right then we can go to the next step. Database Making.

Algorithm
Database making is also important, once you change the database structure then you're doomed man! After data collecting and form (algorithm) making then we make a database, to classify data. Then it has to be discussed with the client too. It's done by a Database Analyst a.k.a Database Designer. If you compare it with building construction field, we can say they both (System Analyst & Database Analyst) are architect.

Ok we have the blueprint, so we can make it! Nope, wait a second. How could you show the blueprint without a prototype? Next step is designing. The Designer makes it, designer makes a picture that shows the entire programme. Describing when it's already running, module per module. Obviously there are many form of prototype, not only a picture. It also has to be discussed with the client. You know sometimes people don't understand if they haven't seen the prototype or something like you won't believe if i only tell you an odd story but you see it directly. This step also can be done first while the system analytic, according to the agreement between software house and client.
Common Software House Structure
We have two important things now, blueprint and prototype. So we can make it. People who make it called by Programmer, they work in a division (team) and there are a few classes of them. Lead Programmer, Senior Programmer, Junior Programmer and it can be more (according to the software house needs) or less (it's a worst condition). Lead Programmer who manages them also builds the core programme assisted by Senior Programmer. But the senior one also make the data transaction, Junior Programmer make the whole input data. Every progress and trouble reported to the Lead Programmer and discussed by them only. But it's only the general one, Programmer Division always has a different way in this step, according to the software house's business process.
Programming
There's also a beta session. The programme finishing is about time, the programme is tested by Beta Tester (It can be a division or a single person). A Technical Test. Usually whole steps finished by three to six months according to the difficult level of the programme and also the agreement indeed. When it's done, there's a time when the programme introduced to the client also a time for the client to check the programme systemly. It's done as a guarantee that software house gives to the client. It usually takes 1 - 3 months or even a year, according to the agreement.

Yeah then we can launch the programme for the business process which company needs. But that's the right way, badly the wrong way used by many Indonesia software house companies and i will talk about that on the next post.