Well, tell us what your key milestones were. What do you think you have achieved? If you were drinking with friends and somebody said "I made the first ever *****", and you said, "Oh, I can do better; I once *****ed," what would you be saying? When did you first learn to connect a GUI to a database and get it working for somebody else? Or get a multi-threaded application to run without deadlock? Or tell people what to answer in an interview?
Joined: Jan 31, 2009
Campbell Ritchie wrote:Well, tell us what your key milestones were. What do you think you have achieved? If you were drinking with friends and somebody said "I made the first ever *****", and you said, "Oh, I can do better; I once *****ed," what would you be saying? When did you first learn to connect a GUI to a database and get it working for somebody else? Or get a multi-threaded application to run without deadlock? Or tell people what to answer in an interview?
It is worthwhile searching these boards; about 3 months ago there was a long discussion about "what is a good job?" Read that and see whether it gives you any ideas. You will find similar topics to your other questions.
What do the company make? What skills does that require? Can you program/analyse/design? Can you sell code to the users? Can you extract from likely users what their requirements would be? Can you translate their requirements into code?
What sort of manager would you be happy working with? Do you want lots of direction or little? Do you expect them to understand your job? Do you want resources supplied quickly? What should they do about additional training?
Read books about development, eg "Code Complete" by Stephen McConnell (Microsoft Press). See what it says about the development cycle and work out how you can contribute.
What are the key milestones/success you have achieved during software development?
What were the lessons learned/challenges faced?
You need to reflect back on your past jobs and anylyze the challenges faced, problems solved, etc using the SAR technique. SAR stands for Situation, Action and Result. Here is a different example extracted from my job interview companion
Q 82:Give me an example of a time when you set a goal and were able to achieve it? Give me an example of a time you showed initiatiative and took the lead? Tell me about a difficult decision you made in the last year? Give me an example of a time you motivated others? Tell me about a most complex project you were involved in? FAQ
Situation: When you were working for the ZCC Software Technology Corporation, the overnight batch process called the “Data Pacakager” was developed for a large fast food chain which has over 100 stores. This overnight batch process is responsible for performing a very database intensive search and compute changes like cost of ingredients, selling price, new menu item etc made in various retail stores and package those changes into XML files and send those XML data to the respective stores where they get uploaded into their point of sale registers to reflect the changes. This batch process had been used for the past two years, but since then the number of stores had increased and so did the size of the data in the database. The batch process, which used to take 6-8 hours to complete, had increased to 14-16 hours, which obviously started to adversely affect the daily operations of these stores. The management assigned you with the task of improving the performance of the batch process to 5-6 hours (i.e. suppose to be an overnight process).
Action: After having analyzed the existing design and code for the “Data Packager”, you had to take the difficult decision to let the management know that this batch process needed to be re-designed and re-written as opposed to modifying the existing code, since it was poorly designed. It is hard to extend, maintain (i.e. making a change in one place can break the code some where else and so on) and had no object reuse through caching (makes too many unnecessary network trips to the database) etc. The management was not too impressed with this approach and concerned about the time required to rewrite this batch process since the management had promised the retail stores to provide a solution within 8-12 weeks. You took the initiative and used your persuasive skills to convince the management that you would be able to provide a re-designed and re-written solution within the 8-12 weeks with the assistance of 2-3 additional developers and two testers. You were entrusted with the task to rewrite the batch process and you set your goal to complete the task in 8 weeks. You decided to build the software iteratively by building individual vertical slices as opposed to the big bang waterfall approach [Refer subsection “Enterprise – Software development process” in Enterprise – Java section]. You redesigned and wrote the code for a typical use case from end to end (i.e. full vertical slice) within 2 weeks and subsequently carried out functional and integration testing to iron out any unforeseen errors or issues. Once the first iteration is stable, you effectively communicated the architecture to the management and to your fellow developers. Motivated and mentored your fellow developers to build the other iterations, based on the first iteration. At the end of iteration, it was tested by the testers, while the developers moved on to the next iteration.
Results: After having enthusiastically worked to your plan with hard work, dedication and teamwork, you were able to have the 90% of the functionality completed in 9 weeks and spent the next 3 weeks fixing bugs, tuning performance and coding rest of the functionality. The fully functional data packager was completed in 12 weeks and took only 3-4 hours to package XML data for all the stores. The team was under pressure at times but you made them believe that it is more of a challenge as opposed to think of it as a stressful situation. The newly designed data packager was also easier to maintain and extend. The management was impressed with the outcome and rewarded the team with an outstanding achievement award. The performance of the newly developed data packager was further improved by 20% by tuning the database (i.e. partitioning the tables, indexing etc).
Now, see if you can answer your own questions from your past experience.