By: Carlos G.
An opportunity came from a colleague to discuss the case of company
“X” for improving the ALM by introducing tools to this company. The challenge
was to decide between Microsoft and Attlasian.
He came to me because I’m a Microsoft kind of guy and he
wanted the opinion from my perspective, not as a consultant, but as a friend of
what he was trying to accomplish. He said that even though I was inclined to a
technology I was able to explore other things and be
“fair”. I agreed to be a part of his research because of 3 things:
- because of my curiosity I'm always willing to learn new techy stuff.
- Sometimes is good to be the dumbest one of the group. You learn so much!
- This was a story that I could blog about. (Of course no names are used in this post).
My first impression was thinking “cool”; let’s compare Visual
Studio TFS vs JIRA. Immediately I got a comment back with: “Sure but JIRA by
itself is more like an issue tracker in simple terms”. That said I noticed that
I knew too little about it and before doing a “battle” between products I
should find out more about them.
My second take was: “I want to implement a solution that
benefits the team and therefor the company”. It was not about what tool was
better but rather about helping the team on having a better collaboration with
an efficient way to deliver better products.
His technical team if formed by: Microsoft, Java,
objective C, Ruby and front-end developers; mostly seniors, with a couple of
Solution Architects and technical leads. The development team (including QA manager
and QA analysts) was a total of 30.
Before We Start
This article is not about going deep into each product. It
is more about what was explored, consider it an introduction for those that are
getting a little curious about this subject and are considering on using some
of these tools.
INSIGHT NOTE: Doing
research, POV, LABS within a group and not by yourself (as I normally have to)
it is so exciting. That is when the right set of people with the right attitude
and similar goals come together. The ideas and knowledge transfer
(collaboration in general) flows naturally. It has been a long time since I’ve
done that and I had to say it felt really nice.
This research took 4 weekends (I joined in the last 2) of
conference calls, video chatting and the cloud (a true collaborative experience
I have to say). The team of now 4 (with me) was divided in 2 groups:
- The 2 with Visual Studio and TFS knowledge (not necessary experts) went through JIRA.
- The other 2 were assigned to Visual Studio TFS.
In this article I’m trying to be as impartial and fair as
possible and also very general. I’m not saying in any way that one product is
better than other, it depends on the scenario. If you have any comments or
anything to contribute please send me your comments and let’s start a
constructive conversation/discussion about it.
The story
As the production team always busy working on designing,
developing and QA’ing applications for their clients the decision was to find
the proper set of tools (ALM, CI, Source Control and others) that could help
them. There are a bunch of tools out there but selecting the correct one, where
one of the keywords is integration,
for your organization is where it gets interesting.
As I said before, consider this more as an introduction
article, so in that same note let’s read some
definitions:
Application Lifecycle
Management (ALM): it refers to the management of a product in all the
different phases involved in its creation. With that we are talking about
project management, requirement management, software architecture, software
development, QA, maintenance, change management and releases/builds.
There are systems (either unified under one product or an
integration of a group) that attempt to provide the tools to make our life
easier when we are going through the process of creating a software solution.
Continuous
Integration (CI): “The practice, in
software engineering, of merging all developer working copies with a shared
mainline several times a day” – quote from Wikipedia. It is intended to prevent integration
problems when going through deployments.
Here are just a few of them:
- Microsoft Visual Studio TFS
- Teamcity
- Jenkins
- Bamboo (from Atlassian)
Version Control System (VCS): a system that allows us to manage the file
changes around the development. The files can be documents, programs (or files
related to an application, website, library), images and others.
Here is a list with the popular ones:
- TFS
- SVN
- Git
- Mercurial
The case
In this case we had:
- 10 C# developers incline to Microsoft technology.
- 10 on the other side of the fence.
- The front-end developers.
- The QA team.
- An already CI system implemented (Teamcity).
- A division in terms of source control: SVN and Git.
- Bugs and issue tracking flying in emails.
Parenthesis: one
thing to keep in mind that we are talking about best practices and tools to
support them but the main thing is that all this is for people to use, therefor
the company and their members should be willing to implement and use it
properly to increase the productivity, otherwise the complete opposite happens
along with throwing away money.
While we were going through the research, and our possible solutions
to bring together communication, documentation, automation builds; we also
started to think about scalability. The first part was to improve the efficiency
within the development team. The future was to see if we could also add the
project managers into the mix making all these groups working together as one:
project managers, QA team, development team, and build/implementation admins.
ALM in Microsoft world:
The Visual Studio TFS has it all for the ALM.
Cool features to know about:
Picture from MSDN |
- You can use it with Git for your source control.
- There is an existing plugin for integrating TFS with JIRA.
- CI/builds
- Collaboration
- Modeling and Design
- Report progress
- Test and track progress for each milestone.
JIRA:
This is an issue tracking system by Atlassian , which defines
it as a tracker for teams for planning and building products, used for
capturing and organizes issues, assigning work and follow team activities.
As an issue tracker it has heavy competition out there:
- TFS (as we have talked in this article)
- YourTrack
- JIRA for issue tracking
- Bamboo for CI
- Confluence for team collaboration
To continue the comparison
both (Microsoft and Atlassian) offers cloud-based or server installation:
- Atlassian product free trials: https://www.atlassian.com/try
- Microsoft Visual Studio TFS:
- You can use Visual Studio TFS Express Edition for free up to 5 developers. OR
- You can also try the online here: http://www.visualstudio.com/products/visual-studio-online-overview-vs
What was our conclusion?
At the end, even though I had to say Visual Studio TFS was
my preference and it is a great option, we had to be objective and consider the
right option for the complete team and the conditions around us. We studied:
- The budget approved considering 25-30 users.
- POC and the need to present the case in a way that this approach could be implemented in a short-period of time.
- Using existing technology. For source control they have SVN and Git. The intention for them is to continue migrating to Git (they were using BitBucket by Atlassian). Instead of a thought we made that a statement and put it in the plan for the next month to accomplish.
- For CI they have teamcity. There is already a plugin for integrating JIRA and teamcity. Note: We did not go through the implementation and assumed this will work as expected.
This solution right out the bat is solving having the issue tracking flying via emails and it is using the same provider that will provide their new source repository. Part of the team was already familiar with the Atlassian products and it would not be hard for the others to adjust.
In terms of budget and based on their team this seems as the
better option for them. What was finally added to the case was a request for a
revision 6 months post implementation for evaluating the feature JIRA agile
project management.
Summary
It is not fair to compare TFS and JIRA as they are built for
2 different things. Jira is an issue tracker while TFS, if using the full
suite, is a complete ALM.
For those who think that TFS is a “close solution”, we know
that can be integrated with other 3rs party source control and issue tracking
systems.
Choosing a solution is about evaluating the current state, scalability,
integration and the team that will be using the tools.
It is the providers (Microsoft ,
Atlassian or others) job to sale you their tools as
the best ones not yours.
In this particular case they are both really close depending
on your needs. So it is your job (VPs, Architects and/or Seniors) to select the
one that better suits the company and it is going to help bringing you work to
the next level. Budget is important, but
also listening to the main resource (your team), that is the one using the
tools on the daily basis and building your apps, is important.
When considering a tool and checking the budget for the
implementation make sure to consider what you are going to spent and what are
you going to save (or gain) in an X period of time for determine the real value
and cost of the initiative. Something that is really cheap might cost you a lot
in the long run and vice-versa.