Archive

Archive for December, 2008

Project management: Numbers related to processes

December 30, 2008 Leave a comment

Numbers related to processes in project management:

Knowledge areas
What:
A way to organize processes by their own virtue
How many: 9

C
Comminication
Q
Quality
T
Time
C
Cost
H
Human Resources
I
Integration
R
Risk
P
Procurement
S
Scope

Process groups
What:
A way to organize processes by the action they are used in
How many: 5

  1. Initiating
  2. Planning
  3. Executing
  4. Monitoring & Controlling
  5. Closure

Processes: 44
– Yet to remember

Categories: Organization, Processes

linux: create svn repository

December 26, 2008 17 comments

Assumptions:
You already have SVN installed on your linux server. If you do not know if it is installed, just type command

which svn

If this returns a valid path as output, then it means that svn is installed on your linux box. If not, you need to install it. Installing subversion is very easy (for most distributions) and ample documentation is available on the web. You can start with http://subversion.apache.org/.

Four steps to complete svn repository creation on linux

  1. log onto server as root
  2. I prefer to have all svn repositories in one directory for better organization and easy maintenance. So next step for me would be to change to my svn directory.
    cd /svnRepos

    If you do not already have a directory for svn repositories, I would recommend creating one.

    mkdir svnRepos
  3. Create repository using following command
  4. svnadmin create /path/to/repo/RepoName

    where : RepoName is the name of repository to be created. As an example, I want to create a repository for my testproject. I would write

    svnadmin create testproject
  5. Change group ownership of repository for the intended group. In this case, consider I have a user group created as “all” and I want this group to have ownership to this repository.
    chown -R :all /path/to/repo/RepoName
  6. Grant Read/Write/Execute permissions to “all” on this repository
    chmod -R 770 /path/to/repo/RepoName

After this, all you need to do is

  • Install a client like tortoiseSVN on the user’s machine
  • SVN Checkout the repository. I would use a URL like following to connect to my newly created repository
    svn+ssh://username@servername/path/to/repo/RepoName

    Where

    • username: one of the users from group all
    • servername: my linux server which hosts SVN

    For my testproject, the path looks like

    svn+ssh://jyotsnas@servername/svnRepos/testproject

Related posts

Categories: SVN

Bug tracking

December 18, 2008 4 comments

Purpose:

  1. Utility to report issues/ tasks
  2. Convey status of each task on list unambiguously

Contribution to planning:

  1. Plan releases
  2. Manage product versions

Configuration:

  1. Projects: Projects should be clearly defined in the system to avoid any confusions regarding the context of the reported issue/ given task
  2. Versions: At least three versions should always be considered in roadmap
  3. Status: Enough status codes should be defined to convey the actions being taken without having to spend time on co-ordination for this task.

Status transition process:
A process that has always worked for me in all the projects till date

Reported

Issue has been reported, waiting to be assigned

Assigned

Issue has been assigned to a team member

Accepted

Issue has been reproduced by the assignee and has accepted to resolve it. At this point of time, the developer should specify the due date for delivery of fix.

NotAccepted

Issue could not be reproduced by the assignee and requires more information. Issue notes should specify the data required

Testing

Issue has been fixed and is being unit tested by developer

Requires Testing

Developer has completely tested the issue and requires a tester to test it

Resolved

Tester has tested the issue successfully. If tester does not approve it to be tested, the status should be changed back to assigned with details in issue notes.

Closed

The issue has been successfully tested in both test as well as deployed version. The issue is determined to be eliminated. There should be only one person who should be responsible for closing issues – preferrable a tester appointed by client.

Re-opened

An old closed issue has been detected in later version and has been reopened waiting to be assigned.

Tools used:
JIRA
FLYSPRAY

JIRA Analogy
Help: Ernie’s inputs

JIRA gives us capability to create multiple projects hence helping us to draw boundaries for tasks. Apart from that it also allows us to create Components for a project – another level of abstraction – could be towards modules in a project.

By default JIRA provides following status codes

  • Open
  • In progress
  • Cannot reproduce
  • Won’t fix
  • Resolved
  • Closed
  • Re-opened

Process mapping:
We have two options to map our process to JIRA

  1. Create a completely customized list of status codes for our process – simple and best
  2. Map the default status codes of JIRA to process status codes
  3. Reported   JIRA allows to create a task and not assign it to anyone. That option was turned off, but it is now enabled. So, a task which has been created and not assigned would fit this
    Assigned   In JIRA, this is a task which is “open” and assigned to someone
    Accepted   In JIRA, this would be a task that is “in progress” (click “start progress” under “available workflow actions”).
    Not Accepted   When an issue is marked as “resolved” in JIRA, the person who is resolving it has to specify what the resolution is. Some of the choices here include “Won’t fix” and “Cannot reproduce”. That seems to cover “not accepted” pretty well.
    Testing, Requires testing, Resolved   In JIRA terminology, marking an issue “Resolved” generally means that the coding is done and the developer is satisfied with it – at which point it would move on for testing. We could also add a status “testing” to the default statuses to accomplish the requirement.
    Closed   As is in JIRA
    Re-opened   As is in JIRA
Categories: Organization

Brain munch – Marriage

December 12, 2008 2 comments

I just received an SMS from my cousin saying

Marriage is a relationship where one person is always right and the other is the husband.

Result of brain munch in next 5 seconds:

1. Marriage is a relation where one person thinks he is always right and he is husband

2. Husband is a person who thinks he is always right and he is never

3. That makes wives always right .. or is it again just a thought made to believe !

Complicated stuff ! –> Now comes the universal truth !

Categories: Brain Munch

Sending email through C#.net

December 9, 2008 Leave a comment

Module: CEmailManager
Calling function:

public static bool SendDummyEmail()
{
   return SendEmail(CGlobalParams.AdminEmail, "dummy", "Hi");
}

Worker function:
private static bool SendEmail(string p_strTo, string p_strSubject, string p_strBody)
{
   try
   {
      MailMessage objMessage = new MailMessage();

      string[] lstRecipient = p_strTo.Split(',');
      foreach (string strTo in lstRecipient)
      {
          objMessage.To.Add(strTo);
      }

      objMessage.From = new MailAddress(CGlobalParams.SMTPUser, CGlobalParams.EmailSenderDisplay);
      objMessage.Subject = p_strSubject;
      objMessage.Body = p_strBody;

      SmtpClient objClient = new SmtpClient(CGlobalParams.SMTPServer, CGlobalParams.SMTPPort);
      objClient.UseDefaultCredentials = false;
      objClient.Credentials = new System.Net.NetworkCredential(CGlobalParams.SMTPUser, CGlobalParams.SMTPPassword);
      objClient.DeliveryMethod = SmtpDeliveryMethod.Network;

      if (CGlobalParams.SMTPRequireSSL)
      {
          objClient.EnableSsl = true;
      }

      objClient.Send(objMessage);

      return true;
   }
   catch
   {
     return false;
   }
}

Where

CGlobalParams: A class responsible for reading values for global parameters

Global parameters used here:

SMTPPassword    : somevalue
SMTPPort   : 587
SMTPRequireSSL    : true
SMTPServer    : smtp.gmail.com
SMTPUser    : jyotsnas@philogy.com

With currently set global parameters, the code sends email with gmail/ google apps over SSL. Setting the SMTPRequireSSL to false, will make the code send email with SMTP server which requires authentication but not SSL.

Categories: .NET

Brain munch: Employer

December 6, 2008 4 comments

An employer is the most compromising employee of himself.

Categories: Brain Munch

To remember: .net web app deployment

December 6, 2008 Leave a comment

Problem:
While creating an installer for a .net web application, we usually follow a practice of adding a web deployment project and then adding the pre-compiled web output to a web setup project. An observation is that the precompiled web output contains project files, version control system files if any and debug symbols as well.

Solution:
Find a way to remove the files from precompiled web output. How: Open the web deployment project file and add following so that ItemGroup section looks like following. This example is considering SVN as a version control system.


								
Categories: .NET

How to make SVN remember password

December 6, 2008 11 comments

Who is this post for?

This post is for anyone who wants a step by step guide to accomplish any of the following

  1. Make a SVN client like tortoise svn remember password
  2. Make linux server remember your password when logging through putty

Tools you need:

  • Putty
  • Puttygen

What you need to do:

  1. Using putty – login to linux server. change directory to ~/.ssh/ by typing following command
    cd ~/.ssh
  2. Type command
    ssh-keygen -b 1024 -t dsa 

    and press enter. Do not enter a passphrase. Hit enter when prompted for one. Same for the filename. default filename = id_dsa and id_dsa.pub. id_dsa is the private key file and id_dsa.pub is the public key file.

  3. type command
    cat ~/.ssh/id_dsa.pub

    Copy the output to the clipboard by selecting the output by mouse.

  4. Type command
    vi ~/.ssh/authorized_keys

    Hit i to enter Insert mode and then paste your public key (if there is already a key in this file, move to the bottom before pasting). Hit the ESC key to leave Insert mode and type :wq and hit enter to save and exit vi editor.

  5. Using ftp download your key files – both private and public
  6. In order to use the private key we get from the server, we have to convert it to a putty format. This is because the private key file format is not specified by some standard body. We can accomplish this using puttygen. Open Puttygen
  7. In the tree structure on left, choose conversion -> import key -> choose the private key file downloaded from ftp
  8. Choose to save private key. Choose path and save the file as anything.ppk
  9. Run Putty. Specify parameters
    • Session->HostName: Hostname or IP Adress of your server
    • Session->Protocol: SSH
    • Session->Saved Sessions: MyConnection
    • SSH->Prefered SSH Protocol version: 2
    • SSH->Auth->Private Key file for auth: $PATH$mykey.PKK (replace $PATH$ with real path to the mykey.PKK file)
  10. Go back to Session tab and hit “save” button. You will see “MyConnection” in the list of available connections.
  11. Next click “open” and you should see a telnet login prompt. Use “myuser” as username (without double quotes of course) and if everything is OK, you don’t have to provide a password to your system. If the system still requires a password, something went wrong.
  12. Now that linux server and putty manage to remember your password, you need an application client to use it. In this case it is SVN client e.g. tortoise svn. Go to TortoiseSVN->RepoBrowser and specify a URL like this:
    svn+ssh://myuser@MyConnection/usr/local/repos

    …where MyConnection is the putty session name and /usr/local/repos is my svn repository on linux server

And you are done …

Related posts

Categories: Linux, SVN

Over chat – tech team

December 6, 2008 Leave a comment

Just a few simple things to keep in mind .. in suggested order :)

  1. Greet
  2. Use smileys often
  3. Thank for every help
  4. Ask precise questions and wait for answers
  5. Appreciate them for any positives they have
  6. Try to explain reasons/purpose for asking for things from the person
  7. Use words like we rather than you or he or she. If you have to, use names – politely.
  8. After a couple of talks – practise small talk. Small talk includes talking about anything but work like wheather, a news etc.
  9. Try getting casual
  10. Don’t forget to greet while leaving
Categories: Coordination

Get organized

December 6, 2008 6 comments

Here are 10 habits to develop for self organization. In my opinion, this looks like the most practical and a “follow-able” list.

How to use?

  • Each of these habits should be learned and practiced one at a time if possible, or 2-3 at a time at the most.
  • You don’t need to adopt all 10 habits. Habits 1-8 are essential. You can consider habits 9 and 10 if possible.

The subject:

1. Collect habit

Carry a notebook or whatever tool convenient to you and write down any tasks, ideas, projects or other information that pops into your head. Taking it out of your head and onto paper will help you to remember it.

What makes this habit pretty easy to follow is the freedom of choice of tool. I am using my unused visiting cards and used boarding passes to jot this down as they are pretty easy to carry along.

2. Process habit

Make quick decision on things that are in your inbox, do not put them off. Processing is anything like trashing, delegating, filing or putting on to-do list.

3. Plan habit

Each week, list the bigger tasks that you want to accomplish, and schedule them first.

Each day, create a list of 1-3 of such bigger tasks and be sure to accomplish them. Do these tasks early in the day to get them out of the way and to ensure that they be done.

4. Do (focus) habit

Do one task at a time, without distractions.

This is one of the most important habits to get into. You must select a task (preferably one of the bigger ones) and focus on it to the exclusion of all else. To get started with this, first remove all the distractions (email, internet, cell phones etc), then remove all the clutter on your desk, set a timer if you like or work as long as you can on the task utmost focus levels.

If you get interrupted, write down any request or incoming tasks/info on your notepad (convenient tool) and get back to your task. DO NOT try to multi task.

5. Simplicity & regularity habit

Keep simple lists and check daily.

Maintain a list for each context for e.g. @work, @home, @phone, @pending. Keep adding tasks to each of the context list. Choose a simple tool like a notepad for maintaining these lists. Focus on what you have to do right now and not on operating the tool.

6. Classification habit

Find a place for everything. Put things where they belong, right away.

All incoming stuff goes in your inbox, then on a context list and then to an action folder or a file in filing system or an outbox for delegation or in trash.

This keeps your desk clear so you can focus on your work.

7. Review habit

Review your system and goals weekly.

During your weekly review, you should go over each of your yearly goals, see what progress you made on them in the last week and what action steps you are going to take to move them forward in the coming week.

Once a month, set aside a little time more time to do a monthly review of your goals, and every year, you should do a yearly review of your year’s goals and your life’s goals. ß This appears too much to do for me!

8. Prioritization habit

Reduce your goals and tasks to essentials.

When you review your task list, try to prioritize and keep only things that are essential and focus on them. Make sure that all tasks line up with your yearly and life’s goals. Do this on a daily basis, during weekly and monthly reviews.

9. Routine habit

Try the habit of creating routines to see if it works better for you. Routines create structure in life. It is up to you how to set your routines.

For e.g. morning routine could include looking at your calendar, going over your context lists, setting the bigger tasks for the day, exercising, breakfast, processing emails and inboxes and starting with the first bigger task in the list.

An evening routine could include processing your email and inboxes again, reviewing your day, writing in your journal, preparing for the next day.

Weekly routines could include a laundry day, a financial day, weekly review, family day etc.

10. Choice of work habit

Constantly seek things about which you are passionate and see if you can make a career out of them when you find them.

Categories: Organization
Follow

Get every new post delivered to your Inbox.