Track software development lifecycle

Track software development lifecycle

Requirement  

Use Blueprints feature to track and manage the process of software development.

Use Case  

A software company uses blueprints to track and manage the software development lifecycle. Various blueprint actions are needed to mark the present status of each stage . F or example , when a feature request is received, when the development starts, or when issues are found . The relevant team then moves the blueprint stage (status) to the next stage once they complete their work items. This way the entire development cycle is efficiently tracked and fully automated using workflow actions that are triggered at each blueprint transition (action) .


Steps to follow  

1 . Create forms with the following details:
Form
Form Link Name
Field Type
Field Name
Field Link Name
Feature Requests
Feature_Requests
Radio
(with options New Feature and Bug )
Request Type*
Request_Type
Multi Line
Request Details
Request_Details
Email
Email*
Email
Development Tracking
Development_Tracking
Radio
(with options New Feature and Bug )
Feature Type
Feature_Type
Multi Line
Request Details
Request_Details
Email
Request By
Request_By
Single Line
Status
Status
Multi Line
Status Description
Status_Description
  • The asterisk (*) next to a field name indicates the field is mandatory.
  • The Feature Request form is for the customer to submit their request. Once a customer submits the request, the record is pushed to the Development Tracking form.                  
2. To push records from the Feature Request form to the Development Tracking form, create a workflow with the following details:
 
3 . Click Add New Action > Deluge Script and add the following snippet:
  1. //use variable to specify details of record to be added
  2. params = Map();
  3. params.put("Feature_Type",input.Request_Type);
  4. params.put("Request_Details",input.Request_Details);
  5. params.put("Request_By",input.Email);

  6. optionalParams = Map();

  7. // use Creator integration task to insert the record
  8. //Replace <admin_username> and <app_linkname> variables with appropriate values.
  9. zoho.creator.createRecord("<admin_username>","<app_linkname>", "Development_Tracking", params, optionalParams, "creator");
We have created a connection to Zoho Creator service named "creator". The above snippet simply creates a record in the Development Tracking form with the details specified by the customer in the Feature Request form.

While creating connections, we will also create a connection to Zoho Cliq (chat service) service and name it "cliq". We will use this connection later in this tutorial to send a notification to leads when a new feature request is approved.
 
4. Next, we need to send an automated email to the manager once a request is added to the Development Tracking form. Create a workflow with the following details
 
5. Click Add New Action > Deluge Script and add the following snippet:
  1. sendmail
  2. [
  3. from :zoho.adminuserid
  4. to :"<manager's email address>"
  5. subject :"New Feature Request"
  6. message :"We have received a new feature request. <a href=\" https://creatorapp.zoho.com/<admin_username>/<app_linkname>/#Report:Development_Tracking_Report?ID=" + input.ID + "\">Click here</a> to view the record. Click the record to approve or reject."
  7. ]
Replace <admin_username> and <app_linkname> variables with appropriate values.
 
6. Duplicate the Development Tracking form to create the following stateless forms:
Form
Fields
Buttons
  Form Name

  Form Link Name

Field Type
Field Name
Field Link Name
Button Type  
Button Name
Specify Details
Specify_Details
Multi Line
Status Description
Status_Description
Button
Assign
Lookup (Development Tracking)
ID1
ID1
Reset
Reset
Assign Developer
Assign_Developer
Users
Developer
Developer
Submit
Submit
Lookup
(Development Tracking)
ID2
ID2
 
 
When a manager approves or rejects a feature request, the Specify Details form is used to specify the reason for the action, which is then associated with the corresponding record in the Development Tracking form.
 
The Assign Developer form is to assign requests to developers using report workflows.
 
The ID fields in both forms are used to update corresponding records in the Development Tracking form, up on which the actions are performed.
 
7. The stateless forms appear only when certain actions are performed, so we need not explicitly display these forms in the app. To hide forms, navigate to Sections.
 
8. Click the hide icon to hide forms.
 
9. Now , let's create a button in the Development Tracking Report that can be used to assign developers to requests. Click Configure Fields for Web for the Development Tracking report.
 
10. Click +Add New Button .
 
11. Create the action item, as displayed below :
The button should only be enabled when a developer has not be assigned, which is why we have set the criteria.
 
12. Click Add New Action > Deluge script > Create your own and add the following script:
  1. openUrl("#Form:Assign_Developer?ID2="+input.ID, "popup window", "height=310px,width=420px");
The above snippet opens the Assign Developer form and captures the ID of the record for which the developer is being assigned.
 
13. The ID2 field is only to map the original record in Development Tracking form and is not needed to be shown to the user. Create a workflow to hide the ID2 field on load of the Assign Developer form.
 
14. Click Add New Action and add the following snippet.
  1. hide ID2;
15. Now let's add a snippet to update the developer for the selected record. Create a workflow with the following details:
We have selected the "Form Event" as Click of a button because the workflow should be triggered when a user clicks the Assign button.
 
16. Click Add New Action > Deluge Script and add the following snippet:
  1. //update record in Development Tracking form based on the current record's ID
  2. update_dev = Development_Tracking[ID == input.ID2];
  3. update_dev.Developer=input.Developer;

  4. //redirect to the record for which the developer is assigned
  5. openUrl("#Report:Development_Tracking_Report?ID=" + input.ID2, "same window");
17. Now let's add similar snippets for Specify Details form. Create a workflow to hide the ID1 field on load of the Specify Details form.
 
18. Click Add New Action and add the following snippet.
  1. hide ID1;
19. Now , let's add a snippet to update the Status Description field in Development Tracking form for the selected record. Create a workflow with the following details:
 
20. Click Add New Action > Deluge Script and add the following snippet:
  1. //update record in Development Tracking form based on current record ID
  2. rec = Development_Tracking[ID == input.ID1];
  3. rec.Status_Description=input.Status_Description;

  4. // redirect to the record for which the Status Description is updated
  5. openURL("#Report:Development_Tracking_Report?ID=" + input.ID1,"same window");

  6. // fetch customer's email address and send a mail if the request is rejected
  7. //the status field is updated using bluepint actions in upcoming steps
  8. if(rec.Status == "Rejected")
  9. {
  10. sendmail
  11. [
  12. from :zoho.adminuserid
  13. to :rec.Request_By
  14. subject :"Feature Request Update"
  15. message :"Hi there, Your feature request with details - <br />" + "\"" + rec.Request_Details + "\" <br /> has unfortuantely been canceled for now due to the following reason - <br />" + "\"" + input.Status_Description + "\""
  16. ]
  17. }
21. We will create a dedicated report for developers that lists the requests assigned to them. Create a new list report by clicking the + symbol.
 
22. Create the report with the following details :
 
23. Click Open Report Properties.
 
24. Add the following filter and click Save .
 
The filter will only display those records which have been assigned to the user viewing the report. This is achieved using the system variable zoho.loginuser .
 
25. Now we'll create different permission sets for Managers, Leads, Developers, and Testers. This is to ensure each department has access only to the required blueprint actions. Navigate to Settings > Users.
 
26. Create the following permission sets and add users to each profile as required.
Permission
Module
Action
Manager
Development Tracking
  • Access
  • View Development Tracking Report
  • Edit Development Tracking Report
  • Delete Development Tracking Report
Specify Details
  • Access
Lead
Development Tracking
  • Access
  • View Development Tracking Report
  • Edit Development Tracking Report
  • Delete Development Tracking Report
 
Assign Developer
  • Access
Developer
Development Tracking
  • Access
  • View Development Tracking Report
  • View Developer's Report
  • Edit Development Tracking Report
  • Delete Development Tracking Report
Tester
Development Tracking
  • Access
  • View Development Tracking Report
  • Edit Development Tracking Report
  • Delete Development Tracking Report
 
27. Create a channel in Cliq and add users with Manager and Lead permissions to that channel. This channel will be used to send alerts when a feature request is approved or rejected.
 
28. Now, let's create the blueprint with the following details:
 
We have provided a criteria because we need the blueprint to be associated only to records containing the Feature Type field value as New Feature .
 
29. Create a blueprint with the following stages and transitions.

 

Transitions

  • Approve feature

  • Reject Feature

  • Start Development

  • Development Complete

  • Started Testing

  • Bugs Found

  • Testing Complete

  • Released

 
Stages
  • Feature requested
  • Feature request accepted
  • Feature request rejected
  • On hold
  • Requirements met
  • Development in progress
  • Feature developed
  • Testing in progress
  • Testing complete
  • Released
 
30. Define the following Before and After actions for each transition.

i. Transition : Approve Feature
Before actions: Set Transition Owner to Selected Users and select "Manager" under Permissions


After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Posting a message in the cliq channel with the approved request's details
  4. //Replace <admin_username> and <app_linkname> variables with appropriate values.
  5. cliqchannel = zoho.cliq.postToChannel(<channel_name>, "A new feature request has been approved. [Check it out]( https://creatorapp.zoho.com/<admin_username>/<app_linkname>/#Report:Development_Tracking_Report?ID=" + input.ID + ") to assign a developer","cliq");

ii. Transition : Reject Feature
Before actions: Set Transition Owner to Selected Users and select "Manager" under Permissions


After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Open the Specify Details form to enter the reason

  4. //The ID field is fed with the current record's ID which is then used to update the record's status description field (explained in point 20)
  5. openURL("#Form:Specify_Details?ID1=" + input.ID, "popup window", "height=310px,width=420px");
iii. Transition: Put On Hold
Before actions: Default settings
After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Open the Specify Details form to enter the reason
  4. //The ID field is fed with the current record's ID which is then used to update the record's status description field (explained in point 20)
  5. openUrl("#Form:Specify_Details?ID1=" + input.ID, "popup window", "height=310px,width=420px");
iv. Transition: Developer Assigned
Before actions:
  • Set Transition Owner to Selected Users and select "Manager" under Permissions
  • Set Criteria as "Developer is not null"
  • Add a tooltip: "Click this if a developer has been assigned"
After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Send an email to the assigned developer 
  4. //Replace <admin_username> and <app_linkname> variables with appropriate values.
  5. sendmail
  6. [
  7. from :zoho.adminuserid
  8. to : input.Developer.email
  9. subject :"Task assigned"
  10. message :"A new task has been assigned to you. Check details here:<br /> https://creatorapp.zoho.com/<app_admin>/<app_linkname>#Report:Developer_Report?ID=" + input.ID
  11. ]
v. Transition: Requirements Analyzed
Before actions:
  1. Set Transition Owner to Selected Users and select "Developer" under Permissions
  2. Add a tooltip: "Click this if requirements have been analysed and brainstormed
After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;
vi.Transition: Start Development
Before actions: Set Transition Owner to Selected Users and select "Developer" under Permissions and Developer equals
zoho.Loginuser under Criteria.



After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;
vii.Transition: Development Complete
Before actions: Set Transition Owner to Selected Users and select "Developer" under Permissions


After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Send mail to testers. 
  4. //Here we are assuming that the testing team uses a separate form to track testing activities
  5. sendmail
  6. [
  7. from :zoho.adminuserid
  8. to :<testers email addresses separated by comma>
  9. subject :"Feature available for testing"
  10. message :"Hi, a new feature is available for testing. Please check the testing form for more details."
  11. ]
viii.Transition: Started Testing
Before actions: Set Transition Owner to Selected Users and select "Tester" under Permissions


After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;
ix.Transition: Bugs found
Before actions: Set Transition Owner to Selected Users and select "Tester" under Permissions

After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Send mail to developer about the bugs. 
  4. //Here we are assuming that the testing team uses a separate form to track testing activities
  5. sendmail
  6. [
  7. from :zoho.adminuserid
  8. to :input.Developer.email
  9. subject :"Bugs found"
  10. message :"Issue found, please check Bug Report"
  11. ]
x.Transition: Testing Complete
Before actions: Set Transition Owner to Selected Users and select "Tester" under Permissions

After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Send mail to the developer and manager when the testing is complete
  4. //Replace <admin_username> and <app_linkname> variables with appropriate values
  5. sendmail
  6. [
  7. from :zoho.adminuserid
  8. to :input.Developer.email, <manager_email_address>
  9. subject :"Testing Complete"
  10. message :"Testing is complete and QA has given a go for the following feature: https://creatorapp.zoho.com/<app_admin>/<app_linkname>/#Report:Development_Tracking_Report?ID=" + input.ID
  11. ]
xi. Transition: Released
Before actions:
    • Set Transition Owner to Selected Users and select "Manager" and "Lead" under Permissions
    • Under Transition Properties add a confirmation message as displayed below
After actions: Add the following snippet:
  1. //Assign blueprint stage to Status field
  2. input.Status = input.Blueprint_Stage;

  3. //Send mail to the customer when the requested feature is released
  4. sendmail
  5. [
  6. from :zoho.adminuserid
  7. to :input.Request_By
  8. subject :"Feature Request Update"
  9. message :"Hi there, Your feature request with details - <br />" + "\"" + input.Request_Details + "\" <br /> has been successfully rolled out"
  10. ]

See how it works         

Points to Note  

  • In point 3, we are using the Creator integration task instead of Add Records task to add records in Development Tracking form. This is because Blueprints are currently not applicable to records added using the Add Records task.
  • Publish the Feature Request form to enable your customers to access it even if they don't have a Zoho Creator account.
  • Please check the attachments to get this application as DS file.
Related Links                       
Blueprints
invoke URL
Zoho Creator - Create Record integration task
Connections
Send Mail

    Zoho DataPrep Personalized Demo

    If you'd like a personalized walk-through of our data preparation tool, please request a demo and we'll be happy to show you how to get the best out of Zoho DataPrep.

    Zoho CRM Training

      Create, share, and deliver

      beautiful slides from anywhere.

      Get Started Now





              Zoho CRM Training Programs

              Learn how to use the best tools for sales force automation and better customer engagement from Zoho's implementation specialists.

              Zoho CRM Training

                  Zoho SalesIQ Resources



                      Zoho TeamInbox Resources




                                Zoho DataPrep Resources

                                  Zoho DataPrep Demo

                                  Get a personalized demo or POC

                                  REGISTER NOW


                                    Design. Discuss. Deliver.

                                    Create visually engaging stories with Zoho Show.

                                    Get Started Now











                                                          • Related Articles

                                                          • Blueprints - Feature in focus

                                                            Sample use case A software company can use the Blueprint feature to track and manage the software development lifecycle. A blueprint consists of two parts: stages and transitions. Zoho Creator allows you to update the status of a stage for important ...
                                                          • Schedule a monthly email with report as pdf

                                                            Requirement Schedule a monthly sales report to the sales manger in a PDF with stats on achieved sales versus target for the month. Use Case A sales management app records sales activities and numbers to track the performance of its sales team and the ...
                                                          • Assign permissions dynamically to users in the application

                                                            Requirement When a customer is added to the application, the application is instantly shared with the user, with the required permissions. Use Case In the order management application, a customer might sign up on the go once the business is live. All ...
                                                          • Extract contents of a ZIP file and email the extracted files

                                                            Requirement   Use Deluge to extract a ZIP file and email the extracted files with the click of a button. Use Case   An HR management application contains three forms: Add Employee, Employee Payslips, and Download My Payslips. The Add Employee form ...
                                                          • Disable Custom Actions after n times

                                                            Requirement  A custom action on a report has to be disabled after it is triggered three times. Use Case  We have an app to maintain customer invoices. After an invoice is created, the staff can email the invoice to the customer with the click of a ...

                                                          Resources

                                                          Videos

                                                          Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                                          eBooks

                                                          Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                                          Webinars

                                                          Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                                          CRM Tips

                                                          Make the most of Zoho CRM with these useful tips.



                                                            Zoho Show Resources