Sunday, December 9, 2012

Control Change and Projects with JIRA

Why do we need to control change?

Ever been in a software development project where the scope continually creeps, the budget is ever increasing and the time plan is slipping? If this seems familiar you are probably already familiar with the importance of Change Control in software development projects. In projects with weak change control we can see that changes are often accepted into the product by a number of stakeholders, there is often difficulty in tracing decisions taken to include changes and as a result the project can lose direction. Ultimately this is very costly for the project and in extreme cases can lead to the failure of the project, where we end up delivering something which does not meet the requirements. Tracking changes during a software development project is both essential to the success of the project and the long term life of a software product. This is not an easy task, but change control/project management tools can reduce risk and help keep your project on time and budget as well as keeping your product in shape.

Change Control Tools

I have worked with a number of tools for Project and Change Management since 1995. These have ranged from "in-house" developed systems to well established open source and commercial products. Most recently I have worked with Bug Genie and Microsoft's TFS. Around 8 months ago we switched over to JIRA to help us with product planning, project planning, project tracking and change control.
I immediately liked this product. It is easy to use, configurable, and provides advanced features without imposing these complexities on the user if they are not required. In virtually no time we had our project setup, the team members added, we were logging change requests and organising them into product releases. An added benefit is Green Hopper (Agile Tools), which comes as an add-in module. If you are running an Agile or Iterative and Incrementive development model this is a must.

Installing and Getting Started

Installing JIRA is pretty simple. If you are looking to evaluate you can download the installer from the download page and install. The installer gives an option to install with an embedded database so you don't need to bother with setting up a database instance. If you are installing a production instance of JIRA you will want to use a proper database instance. The major database vendors are supported, for simplicity we used MySQL. After installation it was just a case of opening up the web browser and logging in.

Once you are in you can start configure JIRA by setting up users and creating a project. This is done in the  administration console. There are a large amount of configuration options, but these are well organised so it is pretty easy to find what you are looking for.

For example, we can see the User Management console above. Here we can add users and modify their properties. Users can be assigned to different project and have different roles. This provides a good deal of flexibility, you can create a role for end-users and they can report issues directly into JIRA. So once the users and project are setup you are ready to go to work.

Doing the Basics

After logging in with a user account we can start creating tasks, improvements and bugs. Creating and editing issues is intuitive and allows for assigning a good number of useful fields on each issue. These fields help with management  and make issues easy to find.
Another core part of JIRA is the issue search function. This comes in two flavors, the simple search allows you select the most common search fields and give conditions for the search. The advanced search allows you to specify searches using a query language similar to SQL. This is a really nice feature and what is impressive is that there is an intelli-sense feature which suggests the field names you are looking for as you type. The intelli-sense can even suggest the possible values of the field you are searching for. Altogether this gives you a very powerful feature for searches and your searches can be saved and re-used.

Product Management

A JIRA project can be thought of as a collection of issues for a specific Product. A smart feature here is that you can define the planned releases for your Product and even break down your product into components. Issues can later be assigned to releases and components. This is a nice way to manage your product releases since you can assign issues to a specific release, this is very useful in retrospect when you want to know which changes you have made to which release. Releases can be released to production or planned.
On the project dashboard you can also see the Road Map for your releases so you get an idea where you are in the long term development life-cycle. To save time when you are in the process of a release JIRA also offers automatic generation of release notes.

Working with Green Hopper

Green Hopper is a plug-in to JIRA for supporting Agile projects. This is perhaps the absolute best feature of JIRA. Of all the time I spend working with JIRA 80% of it is spent in the Green Hopper. Don't be misled by the term Agile, you can use the Agile tools even if you are working in an "Iterative and Incrementive" Waterfall model. It is pretty easy to use, issues are added to a Backlog,  plan your Sprints (or Iterations) and then you can use a Scrum Board to work with your Sprint. Both Scrum and Kanban are supported.

The Scrum board is very easy on the eye, and clearly represents which issues are not started, which are in progress and which are finished. The interface supports drag and drop so you can simply drag activities between the different columns. Another advantageous feature here is that "swim lanes" are supported. This allows you to clearly separate issues based or a status or a field. I use "swim lanes" to clearly separate "blocked" items. This way I can clearly see problem areas in the project. Each issue is easily editable from this page. You can add comments and manage Spent and Remaining Time. Another area which is important is the tracking project time to make sure you meet your deadline. A "burndown" graph is commonly used in Agile methods to show whether a Sprint is on track for delivery or not. This does rely on the team members regularly reporting "Remaining Time" on their issues but this is a very worthwhile as it clearly shows the team the status of the project. There are other graphs available, for example the issue flow in the Sprint. This helps visualise how the team is working and shows if we are trying to work with too many issues at a time.
Each JIRA project allows you to create a number of "Boards" where you can filter the back log and create Sprints. We can even create parallel Sprints, so if you have a large project and have a number of teams in the same JIRA project, each team can work in their own Sprint.

Other Nice Features

JIRA has a wide range of reports which can be automatically generate on any project. If you are a project manager looking for a quick status on your project these will help reduce your administration and help steer the project. JIRA allows us to create a number of dashboards from a library of "Gadgets". These are generally a collection of graphs, statistics or status summaries regarding the project. This is a great way to remind the team how the project is doing, or even create an overview of a number of projects.

Licences

JIRA has two licencing models, "On Demand" and "Download". The "On Demand" solution is a subscription based model which is hosted on the cloud. So no installation or maintenance is required, just login and use. This model is based on a monthly subscription starting at 10$ per month for 10 users. The "Download" model is a host your own model. Download JIRA, set it up on a server and maintain it in your own organisation. This is a one time licence cost starting at 10$ for 10 users.
It's pretty cheap to get started but the licence cost rises more steeply after 10 users, however I find the pricing reasonable. More information regarding JIRA pricing can be found at http://www.atlassian.com/software/jira/pricing.
*( Prices given above were taken from the JIRA web site 2012-12-09.)

Conclusion

Over the years I have used a number of Change Control and Project Management tools in IT projects. Since starting with JIRA I can honestly say that this is absolutely the best application I have used for Change Control and Project Management in an IT environment. It makes a significant contribution in making information available to the team and makes project planning simpler. It allows the product owner to effectively manage change requests and issues but more importantly allows everyone to gain a real-time status on the project. Problems, showstoppers and blockers are all clear to the team and this means that action can be taken much faster and with the correct priority. The support for Agile methods is really good, it is easy to use and doesn't force you to use all aspects of the Agile model, it can also be used even if you are using an Iterative Waterfall method.
JIRA is reasonably priced and I think if you have a significant requirement for change control and project management it would justify the investment cost. If you consider the amount of time to be saved on reports, administration and team communication the ROI (Return on Investment) can come pretty quick.
In short JIRA gets a big thumbs up from me, and is a product I would recommended for organisations working with software development.

Saturday, November 24, 2012

IASA CITA-P Certification

In 2012 after many years working as a Enterprise/System Architect I wanted to verify my skills via certification. Many of the certification programs were vendor specific and mainly knowledge based. You read the book, do the course and then take the test. However I was looking for a certification which was based on real experience, which was not vendor specific and was recognised globally. I had taken the IPMA Project Management certification which was experience based and found that I not only verified the skills I have, but also allowed for time to reflected on my experience and how I could improve my skills. A really worthwhile certification. After some searching I found the IASA CITA-P Certification which has a similar model to IPMA and is a widely recognised certification for IT Architects.

IASA CITA-P has a three stage process:

  • Application
  • Submission of Assessment Documentation
  • Interview with a Panel

The certification required that self-assessment documentation be supplied which was estimated to take around 80 hours. In actual fact I think it took around 160 hours to write the documentation and compile my references but it was worth it. The certification required a lot of effort and was challenging but at the same time was inspiring, opened new perspectives and provided insight into myself as an Enterprise/System Architect.

Application and Acceptance

In order to be accepted for the certification I had to supply a CV, Assessment Document and attend a telephone interview with IASA to ensure that I had the right level of experience to take the certification. Once my application was accepted I received instructions regarding the Self Assessment documentation.

IASA Proficiency

The proficiency assessment consisted of following pillars which are described in detail in the ITABoK:
  • Business Technology Strategy
  • IT Environment
  • Design Skills
  • Human Dynamic
  • Quality Attributes
  • Software Architecture
This was where a lot of the effort was placed in the certification. Each of these pillars have a number of sub-sections where the candidate describes their experience and knowledge in the given skill areas, this is supported with examples of work from projects the candidate has been active in.

Candidate Experience

The second document to be submitted is the Candidate Experience document and is based on a description of experience from projects. The candidate is required to describe experience in terms of project failures and successes. This was basically a case of selecting actual projects I been involved in, detailing the experiences and what I had learned from these projects.

Interview with Panel

After submission of the documentation I was called to an interview with the panel of assessors. I was required to give a presentation for the panel regarding IT Architecture. After that there were two sessions of question and answer. This was possibly the most nerve racking part of the process as the panel directed a sustained series of questions based on the assessment throughout the interview. After the interview was complete the panel thanked me for my time and then it was just a case of waiting for the result.

Conclusion

Looking back at this certification I can say that it did require a great deal of effort. During the certification I had a chance to reflect on my experience as an architect and perhaps gain another perspective on my skills. Even after the certification process I continue to be inspired and motivated from having received the certification and from being a member of IASA.
I would highly recommend this certification program to any Enterprise/System Architects who are looking for a professional certification. It is a challenging but very rewarding experience.


Friday, November 16, 2012

Internet of Things: A New Integration Age

The Arrival of The Cloud

In the last few years we have been hearing a lot about the The Cloud. Software, Platforms and Servers all delivered nice and easy without having to bother about setting up hardware or perform complex configurations. The difference from a few years ago is that The Cloud is no longer something of the future, it is here and it is growing fast. Companies like Microsoft, Amazon, Red Hat and Oracle are ramping up their Cloud offerings. Wait a minute, wasn't this supposed to be about integration, so why is The Cloud important?

For many years integration platforms have been aimed mainly at big businesses but in the last few years we can see medium size companies joining the movement. Since the arrival of SOA, integration with services has been much easier and less expensive than in the past. This has been a real enabler for integrations platforms because there in now a cost benefit in "integration" as opposed to a "build your own" solution.
Today smaller organisations and even single developers can build services and make them available on the Internet but for small actors there is perhaps the difficulty of purchasing platforms, maintaining and hosting these services. This is where The Cloud comes in. With The Cloud growing in maturity and many of the big stakeholders offering very inexpensive hosting (in some cases free) this allows small and medium actors to publish services which with a guaranteed accessibility. In addition to this we are seeing the appearance of the "Internet of Things" (IoT). This means we can expect a huge amount of devices all connected to The Cloud  and all communicating with each other (see Internet of Things).
All of this means that integration is going to be of huge importance in the coming years.

The Rise of the Enterprise Service Bus (ESB)

Integration Platforms have been around for many years running batch integrations (ETL) and real time integrations (EAI). The difference is that in the past these platforms were pretty heavy stuff, sometimes tough to configure, difficult to deploy and manage, and time consuming to develop. With the projected volume of integration and more focus on EAI we need something which is lightweight, flexible and can deliver a high performance. Some years ago with the popularity of SOA the Enterprise Service Bus (ESB) arrived on this scene as a core component in a SOA architecture. The ESB is the component in our architecture which facilitates Integration by providing routing, mediation, transformation and protocol transparency among other things.
It has taken sometime for acceptance of the ESB but the market for ESBs is now in full swing. The Forrester Wave: Enterprise Service Bus, Q2 2011 report details that in a survey that 32% of the Enterprises surveyed were considering an ESB and 32% were already expanding or upgrading.
While ESBs have been traditionally focused on EAI some of the vendors are even packaging ETL tools with their offerings as a complete Integration package.

Choose your Weapon

The ESB market is hotting up and there is a healthy competition. Which ESB you choose will depend on your specific environment. But here are some of the contenders:


  • MuleESB (MuleSoft)
  • Oracle Service Bus (Oracle)
  • Azure Service Bus (Microsoft)
  • FuseSouce (RedHat)
  • WebSphere Enterprise Service Bus (WESB)
  • Sonic ESB (Progress Software)
  • webMethods ESB Platform (Software AG)
  • ActiveMatrix Service Bus (Tibco)
  • WSO2 ESB (WSO2)

From these products we can see some of the old familiar faces. An interesting development is the arrival of the Azure Service Bus which puts Microsoft firmly in the ESB market but raises questions about the future of BizTalk. Mule ESB is gathering a lot of momentum with a growing collection of connectors and a growing collection of customer cases too. Another interesting move is the purchase of FuseSource by Red Hat. Red Hat have had difficulties in establishing their ESB offering and the recent purchase of FuseSource should certainly strengthen their position.

Conclusion

With new technologies and maturity of The Cloud integration is an important issue on the agenda and the ability to integrate with devices, services and applications will be a critical business factor. We can expect a more competitive ESB market with affordable products for small actors all the way up to big enterprises. It certainly feels like we are entering a new age for integration.

Wednesday, November 14, 2012

Windows 8: Smart OS?

I had my first brief look at Windows 8 during the weekend. Microsofts new offering is certainly different and the idea of using the same OS on your PC, tablet and phone certainly would have it's benefits. First impressions is that Windows 8 has a split personality, trying to accomodate PC users at the same time as phone and tablet user. These devices are different in thier nature and that things don't feel as though they quite fit together yet. It is also a big change to go from a menu and windows based system to a solely Smart Phone/Tablet based system and this can mean a substantial learning curve for many users.
Other operating systems are also following the trend with Fedora 17 sporting a distinctly Smart Phone look and feel, but at the same time combining Window/Menu system.
I think that Windows 8 may benefit from the same approach. As it stands Windows 8 may be too big a step for some users. What may be needed is a compromise where Windows 8 still offers a Windows 7 like mode to allow users to bridge the gap. Possibly even a different variant of the system for server based systems where "user experience" may be less of a concern.
Windows 8 is out on the market and packaged with new PCs, the comming 6 months are going to be interesting. Is this going to be a system broadly for home users or will it be picked up by business users too? What ever happens it is a bold move by Microsoft, only time will tell if it was the right move.

Tuesday, November 13, 2012

NOSQL Databases: The Next Generation?

For decades we have been using a relational model for data storage. However since most modern application logic is modelled on an Object Oriented Model the border between the logic and data storage is a bit of a difficult fit. The use of Entity Frameworks help bridge the gap but we still need the help of a query language like SQL. In the last few years we have seen the rise of NOSQL databases which appear to be reaching another level of maturity, and with . These databases are boasting better performance, better capacity and better scalability than the traditional RDBMS. With Oracle also offering a NOSQL solution are we facing a shift in our approach to data storage?

10 Things You Should Know About NOSQL Databases