Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Jimi Wikman
    Jimi Wikman

    Setup Jira & Confluence for success - Part 4: Defining Jira Screens & Custom fields

    • Love 1

    In the last article we talked about defining workflows, so now it's time to talk about defining custom fields and screens. The custom fields is where most companies make many mistakes by trying to build new ways for Jira to work and screens almost no one seem to use. Let us change that, but first let us go over what these things are. We start with custom fields.

    Custom fields explained
    Custom fields are extensions of the data built in to Jira by default. This allow you to make adjustments to your Jira instance in the event that you need it. Custom fields comes in many pre-defined formats such as date fields, droplists, labels and even cascading select lists. In short you can model the data you work with pretty much any way you want. That is usually also the big problem with custom fields...

    Custom fields are defined just like most things in Jira using attaching the custom fields to a scheme. For custom fields this is called Field Configuration Schemes. These schemes connect a custom field configuration with the custom fields. This field configuration is what defines how each custom field should be used in a specific context. This allow you to have different behavior and configuration for the same fields.

    • Custom fields - new data objects that extend the database model.
    • Field configuration - Definition of configuration and behavior for custom fields.
    • Field configuration schemes - map fields with field configurations. This is attached to a project to define that projects field configuration.


    Impact on performance
    Custom fields have an impact on performance. Period. Anyone who think otherwise do not understand how custom fields work or what impact they have on the system.  Jira uses an indexing system that cache data in order to quickly find the relevant data you search for. For this Jira uses Apache Lucene, an open source high-performance, full-featured text search engine library written entirely in Java.

    Whenever you use a board, filter, dashboard or search in Jira you will use Lucene. Every custom field you add will grow the data exponentially in the index as it will be added to every single issue in Jira, even if that issue does not have any data in the field.  Just by adding custom fields you will see an impact on performance and if you are careless about the size of your projects or do not manage your releases properly, then you can render the Jira instance almost unusable dye to loading time.

    Use custom fields with care!


    Mandatory fields impact
    Mandatory fields can be set in the field configuration. This will make a certain field mandatory that you have to fill in. This may sound like a great way to force the users to fill in the data you want them to, but in reality it is causing serious issues, especially when working with any form of integration.

    When you have integrations that send data to Jira, then do not use mandatory fields, or make sure that it is mandatory for all projects. Having multiple versions of what data is mandatory is a sure way to make integrations fail. This is because we set up a condition that say that unless this data is part of the data you want to submit, it will fail.

    The most common reason for using mandatory fields is because the teams do not understand why they should fill in the data. This is because of poor education on how the workflow should be done or because the way it is designed makes no sense to the people actually doing the work. This should be solved on a method and process level and not in the tool.


    Building new systems in Jira with Custom fields
    The biggest failure I see in Jira is when custom fields are used to extend the capability of Jira to something it is not built for. The most common thing I see is that a story is used as a business need and then kept all the way though deployment. I understand the thought behind it, but the execution will require dozens if not hundreds of new fields and it will just become a mass of data that is almost impossible to work with.

    Jira is first and foremost a development tool. It starts with a need that has been transformed into a work order for the development team. In many cases you also have test included in Jira. Often as a plugin or just in the workflow itself. That is all Jira should do as there are other tools that should handle business need, requirements as well as build and deployment.

    In large organizations this behavior is very dangerous. I often see people getting burned out or just give up an aspiration of coherent and logical way of working as the systems evolve to grotesque monsters no one really understand or want.

    Do not build new ways of working, stick to the standards that exists and you will be much happier. If you are going to extend the capabilities of Jira, then always use a Jira designer that can design the system globally for all users. NEVER allow teams and groups within the organization to design on their own, unless they are an isolated group that never need to work with outer teams or systems. That lead to a fragmented way of working that will cost millions to repair in the future.


    One field to "always" use
    Despite all the issues that comes with custom fields there is one field I always think makes sense. There are others of course because in all organizations there are a few fields that makes perfect sense and that really improve the way of working. One such field is "Team", but only if you are not using a plugin like Portfolio for Jira as that already have teams built in.

    The reason why team is useful in almost any scenario is because it allow you to work across Jira Projects in a standardized setup. This way we can avoid Jira projects with hundreds of people and instead work with boards. Using this field you can assign issues to teams rather than people allow for cross project assignments. We will discuss this more in future articles.



    Screens and why they matter
    Where custom fields are abused to the point of absurdity in many organizations, screens are barely used at all in my experience. This is strange as screens are very useful for making sure you are working with the right data at the right time. This will make things much easier when creating new issues or allow you to have certain data filled in during transitions in the workflow.

    Screens are divided into 3 views:

    1. View screen - The view used when you look at an issue i Jira.
    2. Edit view - The view showed when you edit the issue.
    3. Create View - the view when you create an issue.

    This allow us to focus the information in creation view for example to make sure that we only see the fields that we actually need, and then have all information in view and edit.

    When defining screens we have three parts to do so:

    1. Screens - Where we define what data should be available in the screen.
    2. Screen Schemes - Where we define what screens should be used for the View/Edit/Create views
    3. Issue Type Screen Schemes - Where we define what screen schemes should be used for the different issue types.

    One common use of defining screens is to define the create view for defects. This allow for a more focused defect report process where only the fields we really need is shown when creating the defect. Once created it will allow for all the same fields as a story since it is actually a story that describes a need that has yet to be addressed.


    Defining fields in a screen

    So, first we start by defining the screens.  First we want to create a new screen for defects so we can define the fields we want when creating new defects. We go to Jira Settings ->Issues -> Screens where we find all our current screens. Then on the top right we can click the button to create a new screen. Add a name and a description and then click add.

    Skärmklipp 2020-01-03 12.52.04.png


    This will take us to the screen configuration page where we can define the data we want. Since this is a defect we want to capture the problem, where the problem occurred and also who should get the defect to look at. We define the fields like this:

    • Issue Type* - Needed to we can set this as a defect.
    • Reporter* - So we know who reported the defect for follow up.
    • Summary* - The headline that summarize what the problem is.
    • Environment* - Where was the defect found (test, pre-prod, dev and so on). This is needed for defects, but if this had been for production incidents we would not need this field as it is always in production.
    • Affects version* - what code base or release is this related to so we know in what code we should look for it.
    • Description* - This is where the defect is described. It should be steps to reproduce and expected results.
    • Attachments - Pictures or videos that help describe the defect. NEVER upload office files here as you need to download them, which is a horrible way to work.
    • Assignee - Sometimes used to assign a defect to a QA lead for example or a Project manager for attention.
    • Responsible team - When the responsible team in known it can be added to the defect as well.
    • Priority / Severity - How bad the defect is and not how soon it should be fixed.
    • Components - what area of the system the defect affects.
    • Labels - for labeling.
    • Linked issues - If there are other issues that are relevant to the defect.
    • Epic Link - If you use epics to group things.

    * These fields are mandatory. The rest can vary depending on your work process.

    It is important that these fields are also available in the default screen. If they are not present there they will not show as we do not have custom screens for the view or edit screens in this example. If you forget to add them, then do not worry. The data will still be there, but it will not show until you have added the fields to the screen.


    Defining views for Defects

    With this done our next step is to define the three views for defects so we later can attach it to the right issue type. We do this by going to Jira Settings ->Issues -> Screen Schemes and click on the button saying Add Screen Scheme. Add a name and a description, then set the default screen. This should not be the new screen we created as that one will only be used for the create action. You can change this later if you want.

    Skärmklipp 2020-01-03 13.13.58.png


    With that in place we come to the configuration page where we assign screens to the three actions we have (Create, View, Edit).  By default you have one screen defined for all actions here, which is the one selected when creating the screen scheme. Now we will add our new screen to the create action and we do that by clicking the top right button that says "Associate an issue operation with a screen".  Now you can select one of the three actions and a screen. We select the create action and connect that to our new defect screen and click add.

    Skärmklipp 2020-01-03 13.23.27.png


    Defining screen schemes to defects

    Now that we have the screen configured we need to add it to the correct issue and to do that we first need to create a issue Type Screen Scheme. We do this by going to Jira Settings ->Issues -> Issue Type Screen Schemes. Again we click the add button in the top right and add a name and description. This time we also can select a default screen scheme so we add the default screen sheme that will be used for all actions rather than the custom field we created for creating new defects. This can be changed later if you want.

    Once we have this created we get into the configuration screen. Here we will have a default screen scheme set for all issue types. Now we will need to add the new screen scheme we created for defects here. We do that by clicking the button in the top right that says "Associate an issue type with a screen scheme".  Select the issue type Defect and then the screen scheme we created earlier and click add.

    Skärmklipp 2020-01-03 13.33.44.png

    ...and we are done.

    From now on we will always see the fields we have defined in the Defect screen when we create new defects. We can edit the fields as we see fit and it will not affect any other screens. Since we did not create custom screens for edit or view it means that we will see the same fields as for all other issues once the defect has been created.


    Focus information when needed

    As you can see it is not very complicated to add new screens, but they can add quite a bit of focus to your workflow. For this example we created a focused screen for reporting defects, but you will most likely want additional screens. One such screen that I almost always add is the Resolve screen that shows up when you resolve an issue. This is done by adding a trigger in the workflow that add a screen on an action as a popup.

    We will cover that setup in another post.

    I hope this was useful for you and in our next article we will discuss Jira security & access. In case you have missed any of the previous articles you can find them all here.


    • Love 1

    User Feedback

    Recommended Comments

    There are no comments to display.

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By ©Jimi Wikman
      As an Atlassian Platinum Solution Partner Enterprise and a Platinum Top Vendor in the Ecosystem, we’ve been working hard on enhancing the use of Jira Software for over 2500 business teams around the globe. This app adds Requirements, Test Plans, Test Cases and Test Executions panels to your software project in Jira and thus allows you to track the whole development process from collecting requirements to going to production in a single place.   Try the app out for free on the Atlassian Marketplace:    Follow us on other channels:
      https://www.linkedin.com/company/devi... http://twitter.com/deviniti_voice http://facebook.com/DevinitiPL
    • By + Michael Karlsson
      Michael is passionate about test, QA, requirements work and agile a way of working. He is happy to work hands-on as test leader / test coordinator / tester. Michael has worked on developing complex system solutions where quality in business and deliveries are important. In many cases, his work has led to an increased productivity for the test area.
      Michael is a problem solver where his dedication inspire the team. He like to support others and to share his knowledge. He thrives best when he can combine test management with testing and requirements work in close collaboration with customers and developers. Michael speaks and writes freely in Swedish and English and has extensive experience working in international environments.
    • By + Patrik
      I am a senior Test management consultant with proven ability when it comes to helping development teams deliver tested working software faster with minimal impact on time to market. I like to think I have a professional and humble approach with the ability to perform well under pressure and as a a person I have gotten feedback that I'm easy to work with and to gain confidence in. I like to set set goals and then achieving them.
      Areas of expertise: Acceptance testing, Business analysis, Team lead, E2E Testing using automation, Continuous testing and much more.
      I have:
      20+ years QA experience from retail, telecom, finance and travel industry.
      10+ years experience working as a consultant in agile projects
      6+ years experience from various E-commerce implementations
      On a personal note I live south of Stockholm with my family and I enjoy sports, traveling and movies.
    • By + Sundhar Manian
      Project Management | Quality Assurance | Service Management | Scrum Master | DevOps Project Manager
    • By ©Jimi Wikman
      Requirements in Jira has long been a wish for many Jira users. Many have tried it and many have failed because Jira is not designed to work with controlled requirements. Because of this I have always suggested to work with requirements in Confluence, but with RTM from Deviniti, I might change my mind about that.
      I am a certified requirements analyst and as someone who works in all positions in a development process I know the importance of good requirements. While good communication is key for a good workforce it does not remove the need for controlled requirements. In Jira you can setup requirements as part of a workflow or as a separate issue type, but the experience is far from controlled.
      When I saw RTM from Deviniti for the the first time I was intrigued. It looked very similar to older systems like HP QC (now Micro Focus Quality Center) in it's structure. I installed it on my Jira instance and have played around with it for a while now. So far I am very impressed, especially since Deviniti have confirmed that some of the things I miss are in their roadmap.
      Requirements & test management in Jira
      RTM comes with five main modules, plus a bunch of reports. The modules are all customizable so you can define what issue types you want to map with what module. This is great because that way I can map towards already existing issue types, or custom make new ones if needed. For Defects I can even map multiple issue types, which is great if you like me use both Defect and Incident. This is also possible for Requirements which is necessary for working with multiple types. In my setup I only have functional and non-functional requirements, but you can add more if you like.

      The RTM Requirements module
      This is the exciting part of RTM! Working with requirements in RTM feels just like in ALM or other older systems, but with the ease and great usability of Jira. You can quickly create a tree structure and rearrange the tree is easy and fast with drag and drop. Existing requirements can be imported using the import function that is located in the left column where the tree is under the three dots.
      You can customize the tree structure in the RTM configuration that is located under project settings. There you can select if you want auto numbering and if you want the issue number to be written out or not.
      While we still miss a few things (see below) this is really a great start. It is by far the best requirements app for Jira I have seen so far.

      The RTM Test Cases Module
      Test cases are reusable tests with test steps that you use in the test plans to perform tests. RTM is competing with some big shoes in the test department, but they hold up pretty good here. I like the configuration for the test steps that you have in the RTM configuration under project settings where you can modify the columns for the test steps. This allow me to define what columns I want with ease. You can also select what the starting status is, but right now you can not add or edit the standard statuses.
      As with all modules you can import existing test cases using the import function above the tree structure where you see the three dots.

      The RTM Test Plans Module
      Test plans are equally easy to create and manage. In the test plan you connect test cases and test executions to get the full overview of the test scope and result. In the overview of the test cases connected to the test plan you can change the order, create new test cases or add test cases.
      To me this gave a very good overview of the scope, what was actually tested and I have plenty of room to describe the test plan without cluttering things up.

      The RTM Test Executions Module
      The test executions module allow you to quickly execute test plans and you can structure them the same way as all the modules. You can re-execute test executions, which then create a new test execution that you can place in a folder directly. This is great for example smoke test that you want to run frequently.
      There are some things I think can be improved visually, but overall this works pretty well.

      The RTM Defects Module
      The Defects module give you an overview of the defects in the projects.  If you are adding RTM to an existing project where you already have defects, then you can easily import them using the import function. It is a bit hidden, but you find it in the left column under the three dots.

      The Good and The Bad
      There is not a whole lot to say on the negative side of this because it works very well. I tested this with Portfolio for Jira and the result is amazing. You easily get the structure you need for a full parent-child tree structure and the modules in RTM provides a great focus area for requirements and test.
      Version management
      What I miss are the version management that absolutely must be there. This is one of the things that are on the roadmap for the future. Hopefully this can tie into some form of approval process to better control changes. This is important for large organizations, but also for non-functional requirements that usually are global.
      Acceptance Criteria
      This is also a thing that is currently missing and also on the road map for future updates. If these could work the same way as the test steps work today, or maybe even having them as separate entities like test cases, then this would be amazing.  This would allow for really powerful connectivity between not just requirements and test, but also defects and requirements.
      Import from other projects
      One of the things I miss is the ability to import from other projects. This is especially useful for non-functional requirements that are often shared between many projects. I would like to be able to import these as read only so I can have them as part of the requirement structure, but not be able to edit for example legal requirements. I can make a requirement in the existing project and link for now, but I think import as read only would be a better solution.
      Quickfilters in Defects module
      The only thing I miss here is the possibility to add quick filters, just like in boards. This would allow me to better use this view based on my need. I found myself jumping to filters a few times to get a more focused view and with quick filters that would not be necessary.
      The Module Templates
      While the modules are not terrible in terms of visual they could improve a bit. Things are a bit cluttered and the tabs are not super obvious at first glance. Here I would like to see a slight update using Jira standards, but we also need templates to add custom data for example. Based of the structure with tabs I think it would be possible to use the standard view design and just split it in the different tabs for starters.
      Better integration with Confluence
      If I add a Confluence link directly into the issue itself, then it show up as just Wiki page. This is not very good as I want to see the name of the page so I know what page it is referring to.
      Other Apps support
      Right now I can't add other apps to the modules view, which is a bit of a problem for the requirements part especially. I often add designs using Invision prototypes and if that is not shown in the modules view, then I have to jump back and forth between the issue view and the module view. That is not good and I think this need to be added to the modules template designs.
      Test Executions UX and Visuals
      The test executions are a bit clunky when it comes to the UX. I find myself getting a bit lost as things happen without me being in control and I sometimes end up in the test issue view instead of the execution view. I would like to keep the execution summary in the header so it remain consistent and so I can come back to the execution overview instead of the issue view.
      The statuses are not tied into a workflow, which means that you need to skip back and forth to manage your test executions. A mapping in the settings would be nice so I can map execution statuses to workflow statuses. Also, there might be a good idea to separate statuses from resolutions to keep in line with Jira standard.
      Colorful folders
      This is just a cosmetic thing, but I like to be able to differentiate folders using colors and icons. This makes it a whole lot easier to quickly find the correct are, especially for large trees that often occur in requirements for larger systems. it would be very nice to have the option of selecting colors of the folders and special icing on the cake if I can select an icon as well. It would be easy to just use FontAwesome for example and allow the user to pick the icon from the font set.
      My opinion on RTM from Deviniti
      This is by far the most complete solution for a functional way of working with requirements and test in a controlled way. It still need some work here and there, but I will recommend this to all my clients as it stands today. Even without version management or dedicated sections for acceptance criteria it is still far, far better than what most people have today.
      When this product get more polished I think this will be one of the must have apps in pretty much every Jira instance.
      I like it. A lot.
  • Create New...