The Five Dysfunctions of a Team http://link.sheidaei.com/umirp. A great video on teams from Patrick Lencioni.



Sorting Algorithms in Action

This is a nice visualization of the sorting algorithms and how they do with different sets of data.


Agile, Short & Sweet - The Best Cheat Sheet on Agile

Are you hearing that? Everyone is going Agile? Do you want to get on-board fast? This is a really quick guide for you to follow and figure it out. Obviously it lacks so many things in it. It might not even touch the basics. However, if you claimed you know Agile and you don't, this is the best cheat sheet you can find out on the net.



Interview Questions for an Intermediate Java Developer

Looking for real life interview questions for a Java Developer? These are the ones from the one I have conducted recently. The length of the interview was limited to an hour.

B = Beginner
I = Intermediate
A = Advanced

-Introducing him and what he has done + his experience

Technical questions:

OOP related questions
1-What are the OOP's main characteristic? (B)
1b-how do you support polymorphism in Java? (B)
1c-When do you use inheritance in Java (instead of using an interface)? (I)

JAVA related questions
2-What is Overriding and Overloading?
2b-and when do you recommend to use each?
3-What is a thread? (B)
3b-How would you create a thread in Java (3 ways you can do that) (I)
3c-Which one do you prefer to use for creating a thread (A)
4-What is the difference between a synchronized method and a synchronized block (A)
4b-which one do you suggest to use and why? (A)
5-What is an Iterator ? (I)
6-What is hashCode() and equals() methods ? (I)
6b-When do you override these functions and why?
7-Describe a particular shortcoming in Java you've encountered? and how did you resolve it? (Any Java Shortcoming?)
8-What is the meaning of Transient keyword and how is it used?

JEE related questions
10-What do you know about JSP?
11-What is a layered architecture?
12-What is MVC? Have you used any framework MVC in your past experience?
12b-Any experience in an MVC architecture? Please give us an example of your work.
13-Talk about different JEE framework you used and tell us their advantages and disadvantages? Which one do you prefer and why?
13b-What are the design patterns used in Spring? (Dependency injection)
13c-Dependency injections implementations? (By Method, By Construct ...)
14-Any experience with EJB? do you know the difference between stateless and stateful EJB?
15-What is SOA? Is it related to OOP?
15b-What is a web service?
15c-Have you experience with SOAP webserice? How about REST? Can they be used interchangeably?
16-What is JMS?
16b-What is the difference between queue and topic?
17-What is the difference between EAR, JAR and WAR file
18-What is a JavaBean?
18b-Difference between JavaBean and EJB?

DB related questions
20``- What is a primary key?
20'-What is FOREIGN KEY?
20- What is normalization?
21-What is E-R model?
22-What is Object Oriented model?
23-DDL and DML, what are they? (I)
24-What is difference between DELETE and TRUNCATE commands?
25-Define Join and explain different type of joins?

-OR Mapping related questions
31-What is Hibernate Framework? iBatis ? (what is OR)
32-What is Java Persistence API (JPA)?
33-What are the advantages of OR over JDBC?
34-iBatis ? xml customization and auto generation (A)

Continuous Integration
41-What is a source control? (have you any experience using that)
42-Why do you think we need a sourc control?
43-Maven vs Ant? Any experience?
44-Any experience with test suites? TestNG? JUnit? What are those? Any one you prefer?
45-What is continuous integration? Any experience with Jenkins? Continuous Integration Tools?
46-Experience with Bash? (Linux commands?)

Agile questions
51-What is your experience with Agile?
52-What are the main attributes of the Agile?
53-Can you name some of the methodologies under Agile? (scrum, extreme programming, kanban ...)
54-If something goes wrong in the development process who would you go to first? (the best answer is it depends)
55-Do we have different roles (such as QA, Developer) in an Agile team?

General Questions: (20 minutes)

what will he bring to this job and why this job is suited for him?
Why do you want to work for us?
what is he seeing himself in 5 years?
What are your major strengths?
What are your greatest weaknesses?
Tell me about a time that you failed at something and what you did afterwards.
Describe a time that you works on a team project. What was your relative position? Were you satisfied with your contribution? Could it have been better?
Why did you choose this field of work?
Tell me about a situation in which you had to resolve a conflict / failed.
What do you know about our team?
Do you have any questions for us?
Tell me about a project that you had either at work or school. Describe in detail how you managed it and what was the outcome?

Candidate's questions:

Any questions he might have for us?


Why can't you convert user stories to sub-tasks in JIRA?

The answer is really simple. You should be able to do that unless the user-story you want to convert already has sub-tasks under it. You can not convert it to a sub-tasks with sub-tasks underneath.

So check if there is any sub-tasks, and if there is, probably you shouldn't be changing the user-story to a sub-task. The user-story has sub-tasks, meaning that it was not that small. So rethink before deleting the sub-tasks and converting.


Affects version vs Fix vestion in JIRA

Affects version = where the defect/new feature has been identified.

Fix version = where the defect/new feature is planned to be fixed.

Affects version is not heavily used - it's very useful for what it does, but there's not a huge amount of useful reporting you can do on it beyond the basic "where did it break" or "how many bugs did this version contain" questions.
Fix versions however, is for planning, releases, tracking velocity, monitoring progress, as well as it's core "it was fixed in" intent, and others, so it's used in a lot more of the widgets and reports. Try Greenhopper/Agile on a project where it's disabled, and you'll find 90% of it doesn't do much!
Difference between fix version and affects version
In Affects Versions you would enter the version where the problem exists and in Fix Version you would enter the version where the problem was (or will be) fixed.
Jira How to add issues to a version


Notepad++ Regular Expression

To find all matching cases before =

such as

tool.firstName=First Name
tool.lastName=Last Name

use the following for regular expression: .*\=