Agile


Agile as per english dictionary means able to move quickly and easily.

Agile inshort means iterative / incremental development methodology.

It promotes

  • Adaptive planning
  • Evolutionary development and delivery
  • A time-boxed iterative approach
  • Encourages rapid and flexible response to change

In simple terms I called it test based development where requiierement evolves with each iteration

Honestly, last part of setence likes and cherished by all cutomers, think about you being one of them and have all right to say what qualities your desired software should have during the course of development would be big plus.

Agile philosophy push these key items forefornt

  • Customer satisfaction by rapid delivery of useful software
  • Welcome changing requirements, even late in development
  • Working software is delivered frequently (weeks rather than months)
  • Close, daily cooperation between business people and developers
  • Working software is the principal measure of progress
  • Sustainable development, able to maintain a constant pace
  • Regular adaptation to changing circumstances

 

Agile

Application Lifecycle Management (ALM) tools


Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software.

It comprises of

  • requirements management
  • software architecture
  • computer programming
  • software testing
  • software maintenance
  • change management
  • project management
  • release management

Some of the popular tools I have used which will discuss in this article

  • Team Foundation Server from Microsoft
  • IBM Rational Team Concert from IBM
  • uberSVN WANdisco
  • Visual Studio Application Lifecycle Management Microsoft  

To begin with will start with Team Foundation Server from Microsoft 

Team Foundation Server (commonly abbreviated to TFS) is a Microsoft product which provides

  • source code management (either via Team Foundation Version Control or Git),
  • reporting,
  • requirements management,
  • project management (for both agile software development and waterfall teams),
  • automated builds,
  • lab management,
  • testing
  • release management capabilities.

It covers the entire Application Lifecycle Management. TFS can be used as a back end to numerous integrated development environments but is designed to provide the most benefit by serving as the back end to Microsoft Visual Studio or Eclipse.

 

Application Lifecycle Management (ALM) tools

DevOps & TEM


I will be writing series of articles on DevOps and TEM (Test Environment Management) under DevOps category.

What is DevOps in nutshell
Development keeps changing things based on user or market demands for new features (and fixes of existing features). Operations try to keep everything as constant as possible in order to deliver maximum availability and stability of software services. These two contradicting goals create a bottleneck when it comes to delivery of business value. Some people, albeit misguided, call this bottleneck “Quality Assurance”.

To give brief background on how I exposed to DevOps term.

I basically manage and maintain infrastrcture (server farms, data centres, cloud and virtualization) along with deploying application on it.

However, it’s my very first article on this topic.

I been using multiple automation tools to manage non production environments in past.

Industry picked up automation trend on

  • Continuous Integration
  • Continuous Delivery
  • Automated Acceptance Testing
  • System and Application Monitoring

And DevOps is the group responsible to facilitate it.

I will write soon in details on different applications can be used for these automations.

The challenge for this profile is to maintain infrastructure and at the same time deploy application and trust me those are mutually exclusive to each other.

……..So what do we need……..Aha!!! we need tool for that isn’t it!

 

 

DevOps & TEM

Networking stuff for the day


How to find corresponding mac address from given IP address on system?

ARP stands for Address Resolution Protocol, which is used to find the media access control address of a network neighbor for a given IPv4 Address.

On Ubuntu this is how you find mac address
$>ifconfig -a | grep HWaddr

What is a NAT IP address?

Network Address Translation (NAT) is the process where a network device, usually a firewall, assigns a public address to a computer (or group of computers) inside a private network. The main use of NAT is to limit the number of public IP addresses an organization or company must use, for both economy and security purposes.

Networking stuff for the day

Quick guide to Websphere MQ


It is the Messaging style of communication the communication takes place between Queue Managers.

Firstly the application program writes to the some name queue then the queue manager determines the location of those queues and handles all of the communication.

MCA ( Message channel agent ) is the Queue Manager program to perform the network communication.

If messages to be delivered to the remote queue the queue manager checks it and put it into the transmission queue to process further.

MQPUT (write) to MQGET (read)

IBM WebSphere reference architecture

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/index.jsp

Synchronous

Asynchronous

SOA

Reduce the service to bare business logic

Resource Manager Or Queue manger owns the queue (MCA – Message channel agent)

MQPut

MQGet

Application –> MQ Interface (MQI) –>Queue Manager –> Process Definition –> Queues

Major Calls

  • MQCONN
  • MQCONNX
  • MQDICS
  • MQOPEN
  • MQCLOSE
  • MQPUT – Write
  • MQPUT1
  • MQGET – Read
  • MQSUB
  • MQSUBRQ

Minor Calls

  • MQBEGIN
  • MQCOMIT
  • MQBACK
  • MQINQ
  • MQSET

MQ Messages = Header + Application Data

Header – Message descriptor

WebSphere MQ largest message size is 100 MB

Easily process data in parallel

Conversation

Call and return

Messaging

Program MQI

retrieve messages from queue

Lets now jump in and create the real life example

I will share an example of StockQuote (i.e. stock price)

We require IBM WebSphere MQ Explorer 7.1 software

1)

StockQuotes
1414

****************************************
* Command: “E:\Program Files\IBM\WebSphere MQ\bin\crtmqm” -sa StockQuotes
****************************************
WebSphere MQ queue manager created.
Directory ‘E:\Program Files\IBM\WebSphere MQ\qmgrs\StockQuotes’ created.
The queue manager is associated with installation ‘Installation1′.
Creating or replacing default objects for queue manager ‘StockQuotes’.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
exitvalue = 0
****************************************
* Command: “E:\Program Files\IBM\WebSphere MQ\bin\strmqm” StockQuotes
****************************************
WebSphere MQ queue manager ‘StockQuotes’ starting.
The queue manager is associated with installation ‘Installation1′.
5 log records accessed on queue manager ‘StockQuotes’ during the log replay phase.
Log replay for queue manager ‘StockQuotes’ complete.
Transaction manager state recovered for queue manager ‘StockQuotes’.
WebSphere MQ queue manager ‘StockQuotes’ started using V7.1.0.0.
exitvalue = 0
****************************************
* Command: “E:\Program Files\IBM\WebSphere MQ\bin\runmqsc” StockQuotes
* Input: DEFINE LISTENER(‘LISTENER.TCP’) TRPTYPE(TCP) PORT(1414) CONTROL(QMGR)
****************************************
5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED.
Starting MQSC for queue manager StockQuotes.
1 : DEFINE LISTENER(‘LISTENER.TCP’) TRPTYPE(TCP) PORT(1414) CONTROL(QMGR)
AMQ8626: WebSphere MQ listener created.
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
exitvalue = 0
****************************************
* Command: “E:\Program Files\IBM\WebSphere MQ\bin\runmqsc” StockQuotes
* Input: START LISTENER(‘LISTENER.TCP’)
****************************************
5724-H72 (C) Copyright IBM Corp. 1994, 2011. ALL RIGHTS RESERVED.
Starting MQSC for queue manager StockQuotes.
1 : START LISTENER(‘LISTENER.TCP’)
AMQ8021: Request to start WebSphere MQ listener accepted.
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
exitvalue = 0

Quick guide to Websphere MQ

Putty and Plink command line options


Putty can be used as remote ssh client tool.

However today I learn few tricks on it.

It can be used as command line tool to execute script on remote server.

command prompt > putty.exe -t -ssh -l user -pw passwd -m C:\Users\irfan\Documents\run.txt host 

*Replace user, passwd and host with actuals.

Carate run.txt file in your documents directory and enter few commands in it.

In this case I have C:\Users\irfan\Documents\run.txt with date and  ls commands.

Putty command line options

Above command will open putty application, logged into host based on credentials to execute commands from run.txt file.
But it will not return anything back to command prompt.

So what should be I doing to return the output back to command prompt

command prompt > plink.exe -l user -pw passwd -m C:\Users\irfan\Documents\run.txt host 

*Replace user, passwd and host with actuals.

This command will return the output to your command prompt.

Plink command line options

Enjoy!

Putty and Plink command line options

RTC or Rational Team Concert


An integrated development environment used to track down task progress. There is eclipse based client as well as web based client (i.e. Jazz).

RTC tightly coupled with build and source control, it gives rich flexibly to navigate well.

I am using current setup for one of my client which has SCRUM process template.

The current setup has work item linkage in following manner.

  • Epic
    • Story
      • Task

Epic is the business requirement for the given functionality.

Story will be further granular details for the epic.

Task will be set of single or multiple work items put down together to implement the given Story.

Source Control

I have been told that it’s Build Forge which has been configured with RTC for this project.

I didn’t know about build forge tool before but virtually it doesn’t make any difference which RTC GUI.

I have working experience of Subversion and Perforce, its steep learning curve with RTC GUI to manage source control.

Streams are the way to manage different projects between one or more teams.

https://jazz.net/products/rational-team-concert/

RTC or Rational Team Concert