Monday, November 14, 2016

Agile Management: Great Answer of Story Points

Great Answer of Story Points

It is a common agile practice to reason in terms of story points instead of hours. You can learn more about why we do so here.
The velocity concept, instead, is well explained in this blog post.
I don't want to complicate things, so I will answer to your question speaking in terms of hours.
Let's imagine that you are on the first iteration with a brand new team.
In such a case, you can assume that the team will be "really" working for about 70% of their available time. You are considering the fact that the remaining 30% will be taken up by other tasks not related with development (paperwork, e-mails, phone calls, etc.).
It is wise to start with a conservative estimate. The idea is to adjust your estimation in the next iteration and use it to determine how many hours of work can go in the next sprint.
Let's give a look at your example (a team with 3 developers, working 5 days per week, at 8 hours a day):
3 (number of developers) * 5 (days) * 8 (available working hours per day) * 0.7 (initial estimation) = 84("real" working hours that your team can handle in one week)
Based on your question, I think that it could be good for you to search more information about the concept of Definition of Done (DoD) as well. You can start from here.
I understand that in your organization testing is separate from development. This is not the best agile approach, but it is (sigh!) common. You can find some interesting information in this answer to the question "How to fit testing in Scrum sprints and how to write user stories in Scrum" on Programmers Stack Exchange. Give a look also at this blog post about testers working in an agile team.
It is complicated to tell you what is best for your team and organization based only on the information provided. My understanding is that you are working with one-week sprints. You wrote that, according to your experience, it is better to leave the last day for testers to do their job. In this case, if I were you, I would probably continue to consider 5 working days. The team needs to speak with the Product Owner and organize the Sprint Backlog to have user stories that fit into 4 working days to be done (so that they can be sent to the testers team in the same iteration) plus another story (or more) that can be done in the last day (to be sent to testers in the next iteration).

Reference:
http://pm.stackexchange.com/questions/15069/how-to-calculate-sprint-capacity
https://www.scrumalliance.org/community/articles/2015/march/determine-the-team%E2%80%99s-available-working-hours-to-en

Tuesday, November 8, 2016

Ubuntu: How to Install Tuleap Docker

Docker-Tuleap

Deploy a Tuleap inside a docker container
More info about Tuleap on tuleap.org

How to use it?

First run:
$> docker volume create --name tuleap-data
$> docker run -ti -e VIRTUAL_HOST=localhost -p 80:80 -p 443:443 -p 22:22 -v tuleap-data:/data enalean/tuleap-aio
Will run the container, just open http://localhost and enjoy!
p/s: replace localhost with your server ip.
You can get the site administrator credentials to log in the first time with:
$> docker exec -ti <container_name> cat /data/root/.tuleap_passwd
On other, regular runs:
$> docker run -d -p 80:80 -p 443:443 -p 22:22 -v tuleap-data:/data enalean/tuleap-aio

Ubuntu: How to Install Docker in Ubuntu 16.04 LTS VMWare

To Prepare Ubuntu
  1. Download Ubuntu version 16.04 from https://www.ubuntu.com/download/server
  2. Open VMWare and install Ubuntu with downloaded file.
To Install Docker


Update your apt sources

Docker’s APT repository contains Docker 1.7.1 and higher. To set APT to use packages from the Docker repository:
  1. Log into your machine as a user with sudo or root privileges.
  2. Open a terminal window.
  3. Update package information, ensure that APT works with the https method, and that CA certificates are installed.
    $ sudo apt-get update
    $ sudo apt-get install apt-transport-https ca-certificates
    
  4. Add the new GPG key.
    $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Run the following command, substituting the entry for your operating system for the placeholder <REPO>.
    $ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  2. Update the APT package index.
    $ sudo apt-get update
    
  3. Verify that APT is pulling from the right repository.
    When you run the following command, an entry is returned for each version of Docker that is available for you to install. Each entry should have the URL https://apt.dockerproject.org/repo/. The version currently installed is marked with ***.The output below is truncated.
    $ apt-cache policy docker-engine
    
      docker-engine:
        Installed: 1.12.2-0~trusty
        Candidate: 1.12.2-0~trusty
        Version table:
       *** 1.12.2-0~trusty 0
              500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
              100 /var/lib/dpkg/status
           1.12.1-0~trusty 0
              500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
           1.12.0-0~trusty 0
              500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
           1.11.2-0~trusty 0
              500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
           1.11.1-0~trusty 0
              500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
    
    From now on when you run apt-get upgradeAPT pulls from the new repository.

Prerequisites by Ubuntu Version

  • Ubuntu Xenial 16.04 (LTS)
For Ubuntu Trusty, and Xenial, it’s recommended to install the linux-image-extra-* kernel packages. The linux-image-extra-* packages allows you use the aufs storage driver.
To install the linux-image-extra-* packages:
  1. Open a terminal on your Ubuntu host.
  2. Update your package manager.
     $ sudo apt-get update
    
  3. Install the recommended packages.
     $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

Install

Make sure you have installed the prerequisites for your Ubuntu version.
Then, install Docker using the following:
  1. Log into your Ubuntu installation as a user with sudo privileges.
  2. Update your APT package index.
     $ sudo apt-get update
    
  3. Install Docker.
     $ sudo apt-get install docker-engine
    
  4. Start the docker daemon.
     $ sudo service docker start
    
  5. Verify docker is installed correctly.
     $ sudo docker run hello-world
    
    This command downloads a test image and runs it in a container. When the container runs, it prints an informational message. Then, it exits.


You can find more docker installation step for other ubuntu version from this link https://docs.docker.com/engine/installation/linux/ubuntulinux .

The most common issue to install in other Ubuntu version is "Cannot locate docker-engine". It is because docker packge has been existed inside Ubuntu repo, you can try the following command to install docker.

sudo apt-get install docker.io


Ref:
https://docs.docker.com/engine/installation/linux/ubuntulinux/
http://stackoverflow.com/questions/39645118/docker-unable-to-locate-package-docker-engine

Monday, May 16, 2016

Excel: Procedure to export a text file with both comma and quote delimiters in Excel


Before you work with the following sample code, follow these steps:
  1. Open a new workbook.
  2. In Microsoft Office Excel 2003 or in Microsoft Excel 2002, point to Macro on the Tools menu, and then clickVisual Basic Editor. Alternatively, press ALT+F11.

    In Microsoft Office Excel 2007, click the Developer tab, and then click Visual Basic in the Code group. Alternatively, press ALT + F11.

    Note To show the Developer tab in the Ribbon, click the Microsoft Office Button, click Excel Options, click the Popular category, click to select the Show Developer tab in the Ribbon check box, and then clickOK.
  3. In the Visual Basic Editor, click Module on the Insert menu.
  4. Type or paste the following sample code in the module sheet.
    
    Sub QuoteCommaExport()
       ' Dimension all variables.
       Dim DestFile As String
       Dim FileNum As Integer
       Dim ColumnCount As Integer
       Dim RowCount As Integer
    
       ' Prompt user for destination file name.
       DestFile = InputBox("Enter the destination filename" _
          & Chr(10) & "(with complete path):", "Quote-Comma Exporter")
    
       ' Obtain next free file handle number.
       FileNum = FreeFile()
    
       ' Turn error checking off.
       On Error Resume Next
    
       ' Attempt to open destination file for output.
       Open DestFile For Output As #FileNum
    
       ' If an error occurs report it and end.
       If Err <> 0 Then
          MsgBox "Cannot open filename " & DestFile
          End
       End If
    
       ' Turn error checking on.
       On Error GoTo 0
    
       ' Loop for each row in selection.
       For RowCount = 1 To Selection.Rows.Count
    
          ' Loop for each column in selection.
          For ColumnCount = 1 To Selection.Columns.Count
    
             ' Write current cell's text to file with quotation marks.
             Print #FileNum, """" & Selection.Cells(RowCount, _
                ColumnCount).Text & """";
    
             ' Check if cell is in last column.
             If ColumnCount = Selection.Columns.Count Then
                ' If so, then write a blank line.
                Print #FileNum,
             Else
                ' Otherwise, write a comma.
                Print #FileNum, ",";
             End If
          ' Start next iteration of ColumnCount loop.
          Next ColumnCount
       ' Start next iteration of RowCount loop.
       Next RowCount
    
       ' Close destination file.
       Close #FileNum
    End Sub
         
  5. Before you run the macro, select the data that you want to export, and then run the QuoteCommaExportsubroutine.
Ref: https://support.microsoft.com/en-us/kb/291296

Wednesday, May 11, 2016

Set fix IP for Ubuntu running on VMWare Player

You have to edit your /etc/network/interfaces file to read like this

auto eth0
iface eth0 inet static
        address 192.168.246.137
        netmask 255.255.255.0
        network 192.168.246.0
        broadcast 192.168.246.255
        gateway 192.168.246.1

         dns-nameservers 192.168.246.1

Ubuntu: Update Packages


sudo apt-get update        # Fetches the list of available updates
sudo apt-get upgrade       # Strictly upgrades the current packages
sudo apt-get dist-upgrade  # Installs updates (new ones)

Thursday, May 5, 2016

Jira: How to Find Day Count


currentUser() AND status = "On Hold" AND updated <= -5d
Created in the last 5 days would be:
created >= -5d
Resolved in the last 7 days would be:
resolved >= -7d
OR
resolved >= -1w

Report Aging more than 10 days
createdDate >= -10d

Ref: 
http://stackoverflow.com/questions/8362323/how-do-i-query-jira-to-search-for-all-issues-that-have-been-resolved-within-a-le
https://confluence.atlassian.com/jira064/advanced-searching-720416661.html
https://answers.atlassian.com/questions/42077/jira-4.4-searchfilter-how-to-find-issues-resolved-in-last-seven-days
https://answers.atlassian.com/questions/59922/creating-filter-on-tickets-by-age