Collecting requirements

29 06 2008

When reading about exodus of staff from Google to Microsoft I have found very valuable information about how to make a great connection between software team and the client.





‘Questions every Candidate should ask a potential new employer’

29 06 2008

It was my plan to create a software organization for some time now. I have been collecting interesting writings on the subject. About a year ago I have found a set of questions that every candidate should ask their potential employer. I knew it would be fun to answer them myself from the employer perspective ;-) . Here they come along with answers.

  1. Explain the company’s development process at a high level.
    Phase 1 – collect underpants, phase 2 – ?, phase 3 – profit
  2. How are releases scheduled/planned, do you utilize iterations
    We try to have releases every Thursday but so far that proved to be a bit problematic due to short deadline, lack of automated builds, lack of unified skills, too loose coupling of components. As for the 2nd part – sure we try to use iterations.
  3. Do you have dedicated environments (development, qa, stage, production)
    Not really. We have a server dedicated for testing but it is not very formally defined.
  4. Do you follow any formal methodology (agile (what flavor), waterfall, etc)
    I am trying to implement Scrum. Currently we were only able to implement morning Scrum meetings and they proved to be vary valuable.
  5. What is the company’s philosophy on team member involvement in the SDLC process
    SDLC-what?
  6. Do you have a continuous build environment setup
    Nope.
  7. Do you follow some form of TDD
    We try to. Actually I have assigned the task of “getting through” the testing of components in Seam to 3 people on the team but none of them was able to complete task. It might be my fault since I tried to push quicker implementation of the components that we needed rather than exploration of tests under Seam.
  8. How do you track/follow bugs/issues
    We have successfully implemented and used Jira. Not all team members had enough knowledge to us it but I believe that we are slowly getting there. I would like to push Mylyn.
  9. Do you perform code reviews
    Not yet. Last Friday we have delivered so so ready first version of our product. This week we should be able to install it at the customer’s site and after that we will do formal code review.
  10. What type of development tools do you have
    Apart from Jira we use SVN and Red Hat Developer Studio. I am really thinking about using Mingle but that costs quite a bit of money and I really should have time to investigate it a bit longer. Last week we have started to play with VMWare as we have to test everything on different database and directory server than in development environment.
  11. What type of hardware for the developers to you have
    Dell Precision M4300 Core 2 Duo T7500 (2.2GHz,4MB) with Base Discrete FX360M Graphics with 4GB of RAM.
  12. Is QA involved from the onset of development
    Yyyy not really?
  13. Do you have a knowledge center for the team such as a team portal, wiki, etc
    Nope. We have setup document repository based on Alfresco but I did not have time to show it to the team.
  14. Do you have up to date specs on the application
    I am not sure if we need it. We are working more in R&D kind of way. There is some initial, high level overview but that is about it.
  15. What form of stake holder involvement is there in the development cycle
    They pay ;-) .
  16. Do you have documented coding standards, are they followed
    One of the team members has actually created such a document but I need to look at it further and possibly make some adjustments.

Uff… that was rather painful reality check. Lets make things harder — in the comments to the original questions I have found some more suggestions about how to make a better code. Lets try to go through those as well.

  1. Do you use source control?
    Yes.
  2. Can you make a build in one step?
    Kind of. If exporting an EAR file from IDE counts as one step then yes.
  3. Do you make daily builds?
    No.
  4. Do you have a bug database?
    Yes.
  5. Do you fix bugs before writing new code?
    Nope. We do not have very rigorous testing so we do not know what kind of bugs are there.
  6. Do you have an up-to-date schedule?
    No.
  7. Do you have a spec?
    No.
  8. Do programmers have quiet working conditions?
    Yes – it could be better. Our next office is not going to be on the 2nd floor on the city’s main street. The building is nice but it is kind of distracting when one opens a window.
  9. Do you use the best tools money can buy?
    Not yet.
  10. Do you have testers?
    Kinda – rather not.
  11. Do new candidates write code during their interview?
    No.
  12. Do you do hallway usability testing?
    No.

4 out of 12 – ouch again. It looks like there are still quite a few things that should be improved ;-) . I guess I better prepare some plan with the things that should be done. See next posts.