Applying lean thinking to software development

Lean thinking is prevalent from a very long duration of time. The foundation was laid down in the starting of the 20th century. The lean system was originally initiated by Toyota in the mid 70s and was earlier known as the Toyota Production system. Lean is mostly used with statistical control techniques of six-sigma and has been known as a standard in the manufacturing sector. But it is mainly in the recent few years that lean is being accepted in the service industry like banking, hospitals and software factories.

So, what exactly is lean thinking?

Lean’s major context is about minimizing waste, meaning whatever in your production cycle is not adding value to the client is taken as waste and should therefore be moved away from the process. Now certain waste is required for your business to be in the running condition, like some approved cycles, certain quality assurance validations etc. But majority of the waste is a real waste of time and effort, so must be removed fully. Ideally, you would be left with a complete waste free production procedure, but nothing is perfect and that’s going to be pretty impossible.

Use the Scrum board

The question comes how do you use these lean principles in an IT scenario? Well, many of the IT people out there are using lean in their daily lives. The broadly accepted Scrum board is mainly a Kanban, a tool which Scrum has taken from Lean.

Set up a pull system

A pull system is another tool which IT has borrowed from Lean and is proved to be very effective. Basically, a pull system is a system where you start the next work/task only when the previous task is completed. This is for to reducing the amount of work in progress (WIP).  By reducing the amount of tasks at hand, your team will be benefitted to pay attention to specific tasks and prevent running around from one task to next without adding value and hence adding to the amount of waste.

Reduce the set-up time

The next tool is the set-up time which the IT development teams spend time on and not gain anything. The best method to describe set up time in an IT development scenario is to define the actions a developer needs to take while (re) commencing work on a specific task. First he needs to divert his mind from the previous work in hand , then he mostly needs to begin logging his time in some type of time tracking machine, he is required to read up on the new work, might need to pull the code from the server, locate the proper file and then start working on it. That is loads of work to set up for the task, which takes time which we roughly call setup time.

Reducing setup time is one of the most effective ways you can follow while applying lean thinking in an IT development scenario.

Lean helps you to get the job done!

The above techniques like set up time reduction, pull system etc. support your team to get the job done and not get distracted by the things which are not important. That means the Process Lead Time (PLT) will decrease as well. Process lead time is the time a task takes to get through the complete procedure, from initial request to production.

According to Little’s Law, your process throughput is equal to the division of the amount of work in progress by the PLT. This means if process lead time decreases by reducing the waste, your process throughput increases.

Posted in Uncategorized | Leave a comment

Automating Software Development Processes

Automating repetitive processes can give real value to software development projects. In this article, we will explore the values of automation, should we carry out automation or not. If yes, what to automate and when?

There are many arguments for and against the motion for automating development processes. However, if you are a developer or tester who likes spending time actually adding value to your project, instead of repeating the same procedure again and again, you will want to advocate the concept of automation to your team. If you are a project manager who is dedicated to maximising the talents and time of your team members as well as minimizing the risk the failure of your project to deliver on time and on quality, you will want to encourage your team to invest the important time and effort automating the tasks.

Why should you automate?

Among the many benefits of automating the development processes, some common ones are:

  • Repeatability: Scripts can be repeated and you can be certain that the same instructions will be followed in the same order every time the script is run.
  • Reliability: Scripts lower the chances of human error.
  • Efficiency: Automated tasks will often be quicker than the same tasks performed manually.
  • Testing: Testing is carried out for scripted processes throughout the development cycle, in much the exact way the system code performs. This highly improves the chances for successful process execution as the project runs. Automated scripts finally represent a proven, mature set of repeatable processes.
  • Versioning: Scripts are artifacts which can be placed under version control. The only artifacts in manual procedures that can be versioned and tracked are documents of the procedure.
  • Leverage: Another big advantage of automation is that the developers and testers can pay attention to areas where they add value- developing and testing features and new codes- instead of bothering about the underlying infrastructure issues.

What should you automate?

If you are convinced that automating is a good idea, then the possible next question is which processes to automate. While the answer is somewhat different for every project, there are some obvious ones as well as general guidelines to follow. Some of the specific targets for automation are:

  • Build and deployment of the system undergoing design
  • Report generation for code coverage
  • Unit test execution and generation of reports
  • Load test execution and generation of reports
  • Functional test execution and generation of report
  • Report generation for Coding conventions
  • Report generation for code quality metrics

The above list is of course not exhaustive, and every project is unique in its own way. Here’s a general rule of thumb to identify any process that should be considered for automation: select automating processes which would be repeated frequently throughout a system’s life. The more number of times the process is repeated, the higher the value of automating them.

When should you automate?

Automation should be executed as soon as the team members decide to start executing the process. For example, automating the build process after the project is nearly finished offers very little benefit. However, before you start automating everything, be reasonably sure that the procedure would be required for the project, that it will be repeated over two or three times during the life cycle of the project and that you understand the steps that are required to be executed for the process.

Posted in Software Development | Leave a comment

How to resolve bash or shellshock vulnarability

This command will show you if your bash is vulnerable.

# env x=’() { :;}; echo vulnerable’ bash -c “echo not vulnerable”
If you get ” vulnerable ” then you need to upgrade and if you get ” not vulnerable” then you are safe.

If your server is vulnerable then you can take these steps to resolve.

CentOs, Fedora, Redhat

yum update bash

Debian and ubuntu

apt-get install –only-upgrade bash

Posted in Linux | Leave a comment

How to check apache memory

Here is the command to use apache memory

apache2 -V | grep -A 2 ‘MPM:’

Posted in Uncategorized | Leave a comment

How to configure firewall in linux

Follow this Steps: This may help you

Step1. Lets install csf firewall

1.1 Download CSF Firewall
Code:
wget http://www.configserver.com/free/csf.tgz

1.2 Extracting downloaded files
Code:
tar -xzf csf.tgz

1.3 Changing the directory for installation
Code:
cd csf

1.4 Installation of CSF
Code:
sh install.sh

1.5 Now lets test csf
Code:
perl /etc/csf/csftest.pl

1.6 Remove any other firewall installed
Code:
sh /etc/csf/remove_apf_bfd.sh

Step2: Download basic configures CSF Configuration File by running bellow command

2.1 Download csf.conf file
Code:
wget -N http://www.ultratechhost.com/download/csf.conf

2.2 Lets take backup of current csf.conf file for security purpose
Code:
mv /etc/csf/csf.conf /etc/csf/csf.conf.bak

2.3 Lets move downloaded csf.conf by running command
Code:
mv csf.conf /etc/csf/csf.conf

2.4 Now restart csf
Code:
/usr/sbin/csf -r

Step3. Lets Configure CSF by Editing csf.conf file
Code:
nano /etc/csf/csf.conf

And do bellow changes you can use ctrl + w to search the proper word stated bellow and change it to your need

3.1 The following TAG will run csf in Testing Mode as if we by mistake block ourself out, it will flush all firewall rules in 5 minutes to get us in and fixed it.
Code:
TESTING = “1″
We will change it to zero “0″ when we finished and sure we have all right rules in.

3.2 Put your all ports which you want to be open on your server for incoming traffic seperated by comma.
Code:
TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,2096,30000:50000″

3.3 Also open any port you want for outgoing traffic
Code:
TCP_OUT = “20,21,22,25,37,43,53,80,110,113,443,587,873,2087,2089,2703,30000:50000″

3.4 Same goes for UDP_IN and UDP_OUT, be remember if you are running DNS service, so you have to open port 53 in UDP_IN as DNS port 53 runs on udp rather than tcp
Code:
UDP_IN = “20,21,53″

3.5 To allow outgoing traceroute add 33434:33523 to this list
Code:
UDP_OUT = “20,21,53,113,123,33434:33523″

Posted in Uncategorized | Leave a comment

How to read mysql binary log file

Here are the steps of how to ready mysql binary log file.

1) Loging to server

2) go to /var/log/mysql

3) Use this command

mysqlbinlog binlog.000001(bin filename)

 

Posted in Uncategorized | Leave a comment

How to install Cpanel on CentOS

Login to your server using SSH
Then you need to enter in to screen mode using command
#Screen

If this command is not available in your server you can install by just using ” yum install scree”.

After you are entered in screenmode follow these commands.

iptables -F
/etc/init.d/iptables save
cd /home
wget http://httpupdate.cpanel.net/latest
chmod +x latest
screen
./latest

 

Posted in Uncategorized | Leave a comment

How to find mails older than 100 days

You may need to find mails older than some specific days like 100 days of 125 days because you may need to delete it as its not possible to delete it from outlook. You can use this command to find the mails older than specified days.

Here I have mentioned command to find mails older than 100 days.

find -P /home/pchmpl/mail/pchmpl.com/*/cur -mtime ‘+100′ | xargs ls -l

Posted in Uncategorized | Leave a comment

How to assign Name Server in Cpanel

Steps to assign NS in Cpanel

1) Login to WHM
2) Go to basic Cpanel & WHM Settings.
3) At the right page go to bottom of page.
4) assign Nameserver 1, Nameserver 2, Nameserver 3 and Nameserver 4.
5) Click on save changes.

That is it. You are done.

Posted in Uncategorized | Leave a comment

How to check DDOS attack on your server

Here are command to check DDOS attack on your server

1. To find the number of HTTP connections to a particular IP address, use the following command.

netstat -nee | grep “\:80″ | awk ‘ { print $4 }’ | awk -F: ‘{ print $1 }’ | sort|uniq -c

Posted in Uncategorized | Leave a comment