ColdFusion Builder and development productivity – Part III

So since my last blogs on this subject the product has been released, and its time to look at what is productive and the development life cycle you can out into place for you as a developer.

In the previous posts I spoke briefly on what comes built into ColdFusion Builder, now its time to look at some tools that aren't part of the product that can be added as plugins to help further your productivity a lot more.

The first of these actually does come with ColdFusion Builder I believe, and as I have always stuck to a plugin install I have taken it for granted that it was installed. And this is something called Ant, this is a program that once you get going can be extremely beneficial to you. The possibilities are endless and not to mention, are up to what you need.

But if you work in a hosting environment that is shared with others, and you are worried about the security of your application. Then you could use Ant to compile your code for deployment to the server, and/or use ColdFusion to sync the changes for you.

I personally use Ant to a lot of things like compile my code, run unit tests, sync changes to a staging server, as well as run html integration tests. This might be over your heads, or it might not but Ant is a configurable scripting language that can do things like submit into a source repository, compile your code, run unit tests and if that passes sync them to other servers.

But the two biggest plugins you could ever invest your time into are mylyn and subversive/subclipse, as these not only work hand in hand. Can also save you a lot of time and be very productive, whether you work in a team or not.

Lets look a Mylyn first and discuss what it is and what it can do for you, and if you don't or haven't use it then you are really missing out on a lot.

First what is Mylyn?

Mylyn is as their website says, "Mylyn is the task and application lifecycle management". So what does that actually mean.

Now before I answer that question, I will need to stress that a ticketing system is very important here. again it doesn't matter if you are a a single developer or on a team. Because you can still use the local tasks, rather than a connector to jira, trac or many others.

For arguments sake lets say you are using Jira, any of the other connectors still apply to this.

In most SDLC or Software Development Life Cycles, we use a system that gets that job done and provides support to our customers. I will stress one more time, this doesn't matter if you are in a team or not, because at the end of the day you will end up supporting the code that has been written.

In jira we can raise tickets in a private, or customer focused environment. This means that when we begin to work we already know what our focus is.

But what if you fixed a bug, and then they ticket was re-opened because it was found to still be a problem? Most would try to focus on what files they looked at, as well as what they need to look at. Well what if you no longer have to do this?

Enter Mylyn.

If you are using a ticketing system that is supported with connectors from Mylyn, then your productivity will go through the roof.

Lets look at jira, a ticket was raised that the customer found that under certain conditions they found that the program crashed. You go in to the files you think are the problem, you find the solution make the changes and submit it back to your version control system. If you aren't using one you should, more later.

Lets fast forward 6 months and the customer has come back to you and said that the fix you made actually broke another part of the application and provided you with the details that you require to fix it.

Without going into to much detail, its very easy to do a history on a file in a version control system to find out what ticket it was you fixed, but the hardest part is the files that you fixed or even modified to try to fix this problem.

So this is where Mylyn really shines and if you already know the ticket, you could reopen it or even transfer the details to the newly raised ticket. But the point is that these details contain all the information that you touched and/or modified 6 months ago. What that means is that you can open a ticket and see every file, that you viewed and or modified against that ticket.

What that means is that you are not searching your brain trying to remember what files you changed six months ago. You can browse to the changes you made, test it against what the client is saying and fix it again.

This is a very simplistic version of what happens, but it saves you trying to recall al the files you did touch, modify or even looked at to try to solve this problem and gives you a very instant heads-up where to look right away.

This brings me to subversive/subclipse when using a version control system, because you can also see the files that you are currently working on. You know right of the bat which files you need to put back into the version control system. And if you were in the middle of other changes when this support ticket came in, then you can know right  away the file changes that are relevant to the ticket you just worked on.

That might not sound important, but if you are working on multiple tickets it becomes critical that you can identify the right changes to the ticket.

The subersive/subclipse plugins can give you a lot more detail information that what I have outlined here, and when you are not leaving your IDE this becomes more importantly a huge time saver over time.

Before I close off on this post, I just want to say that whether you are working in a team or not. It would be extremely beneficial to look at these options, an SVN server and or jira server can be used on many online services, or you could use a VPS like I do whether you use Virtual Box or VmWare you will find the benefits largely productive when you need them.