The term methodology refers to a complete description of a system that considers the process, people, modeling language, project management, social structures and products. We however note that not all the systems developed to bear the meaning of this word. They are rather Object-Oriented than being Agent-Oriented. It is with this fact in mind that I have worked developing my experience in software engineering. Through working, I have strived to note the needs of the clients. This has stirred me to expand my experience base to come up with products that have satisfied them.
Since I started working, I have been able to improve my analytical skills considerably. Together with my co-workers in BTR IT Consulting Company, I have been in constant communication with our clients to determine their exact expectations. This is regarding the features they need in particular systems. In this, I have gained experience in avoiding feature creep and in documenting every aspect of a project from its genesis to the end. We have been able to determine what the users are comfortable with, and what they feel we need to make changes or improvements. Likewise, I have learned that I should direct energy to what conforms to clients’ needs, rather than focusing on the requirements.
In DBR Technology, I applied this aspect effectively. The web designs needed by our clients had all-inclusive details about the requirements. On the other hand, our clients had specific needs that we had to meet. This made us make sure we had effectively synchronized their needs and the documented requirements. The final products fit perfectly to the users’ needs, and factored in all requirements.
Still while developing the web in DBR Technology, we first determined the scope of the project. After which, we created a project schedule after estimating the work that would be involved. Together with our project manager, we monitored and controlled the project process. In this, we kept the entire team and the management updated with the project’s progress. To enhance perfect monitoring, we had status meetings from time to time.
It is also very important that clients be taken through training before receiving complete systems. For this to be easier, I have implemented the principle of involving clients in the development stage. My colleagues and I do this when necessary. This quickens their understanding during the product presentation. This worked very well when we worked for Diagram Data Company. It was very important that the personnel who were involved with the system understood the basics of PHP/MySQL and NET/SQL. This resulted in a better grasping of the principle facts used during development. Secondly, it generally caused a warm welcome of the product at the end of the process. Apart from involving some of them, we also trained the rest of our clients after we had completed the project. This made them acquaint themselves with the new design faster.
I am also involved in producing system prototypes. One example is when I compiled the ideas for the web design in Diagram Data Company. The clients wanted to understand fully how this product would work. We made a prototype that allowed our users to evaluate the design proposal we had presented to them. This helped the users point out some requirements, which were not clear to them. We made them clearer and more understandable. In so doing, we controlled the prototype and consequently the whole project. This became the key factor of the good relationship that exists between these clients and us.
My colleagues and I worked on the prototype. Though each one had a different part to work on, we had some common components we were all working on. On the other hand, we had earlier created three versions of the same web site. We worked in close reference to the repositories that we had kept to track the changes and consequently be coherent. Our repositories contained names of source code components, having the revisions and the variations. It also contained versions of linkers used and the various compilers, the name of the colleagues who did the construction and the time and dates of the construction. We all had meetings to discuss the best way to control the version.
In the same work, we had to manage several configurations. This was to help us introduce the changes to upgrade the earlier versions. In this, we were able to work in isolation, shared the artifacts, and finally collaborated to synchronize all the changes we had made. This led to the successful development of the fourth version of the Web site.
We also implemented all the proposals in that our clients gave us in due time. Together with our clients, we made comparisons to see if the prototype matched well with the specifications of the software program we were building. As I have involved myself with making prototypes, I have gained skill and insight in coming up with accurate project estimates. It has also helped me to be able to project whether we could meet milestones and deadlines proposed. The example of the Diagram Data Company was the first one we adjusted the deadlines set by our clients accurately.
We also have found that all the knowledge gain is important for future use. I have learned to do proper documenting and so creating a good repository. I have been doing this with my colleagues in BTR IT Consulting Company. Our project manager also helped us make sure we have carefully chosen and transferred content to the repository after every project.
Through my work experience, I have known that one cannot perfectly learn Software Engineering and Methodology in class but in practice. Through this, I have gained skills in requirements analysis, software testing, formal specification methods, project planning, estimation and control, and creating Prototypes. I have also seen the great significance in teamwork. In the process, I have also used books to gain a deeper understanding of the methodologies. Some of these books are; The Software Project Manager’s Handbook: Principles that work by Dwayne Phillips, Learning Software Organizations: Methodology and Applications by Günther Ruhe and Frank Bomarius, and New trends in software methodologies, tools and techniques By Paul Johannesson. My main ambition in studying those and more books was to apply their proposals and suggestions in my working where necessary. This has also helped me in gaining experience.