Here are my first impressions. I haven't finished reading it yet and I'm possibly reviewing it more deeply in the future.
Book ContentsSo far, I've got a very good impression of this book. The book begins with a couple of introductory chapters about the JIRA development process and the plugin frameworks: they give you an overview of the overall development process, of the basic APIs provided to the developer and of the tools you're going to use and are required readings if you're new to JIRA development.
The following chapters are pretty self contained and each one covers a different aspect of the JIRA customization process:
- Custom fields.
- Gadgets and reporting tools.
- User interface.
- Remote access to JIRA.
- Various database management, customization and migration tasks.
Every chapter is a comprehensive tutorial with step by step guides, complete code examples, troubleshooting information and more in depth discussions to understand how JIRA internally works. Because of their self contained structure, you can also freely jump from chapter to chapter, according to your needs.
First ImpressionsI've made several JIRA plugins and a couple of years ago, at the very first attempts, I remember digging into Atlassian documentation to find out every single bit of information I could possibly find.
I'm not the tutorial kind of guy, though: the first thing I always look for are specs. However, I recognize that it's very important to have well structured documentation, and possibly some guided tours, to significantly reduce the learning time. That's exactly what I felt it missed: Atlassian documentation is very good and the JIRA Development Hub provides examples and small tutorials for practically every aspect of JIRA you would like to customize. Unfortunately, as it often happens to wiki-style online documentation, it lacks structure to some degree.
That is exactly what this book provides: a comprehensive guide you can use to effectively kick start your JIRA customization project, be it a plugin, a JIRA service or a customized user experience.