Thursday, January 31, 2013

Book Review: Enterprise Search


Book Review:  Enterprise Search by Martin White: Publisher- O'Reilly: ISBN- 13: 978-1449330446

 
Marin White’s Enterprise Search is a easy, lazy arm chair read book. Book is very shallow in its content.

Book’s content can be compressed into half of its current size.

I am certainly not recommending this book.

Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author. I got electronic format of book from publisher for review.

One can get more information about book and related topics from:

  1. Amazon: http://www.amazon.com/Enterprise-Search-Martin-White/dp/1449330444
  2. Publisher -- Oreilly http://shop.oreilly.com/product/0636920025689.do

Saturday, January 19, 2013

When to transition from Development to Support in Agile/SCRUM?



There is remarkable shift towards Agile methodologies (particularly SCRUM), for Software development.  One can find significant literature on Agile/SCRUM based on philosophy and working knowledge. But there is a hole. There is no literature which talks about when to say enough for development and pass the baton to Support & Maintenance. 


With my experience, I have developed a simple list of symptoms which indicates that time is ripe to switch ownership of product from development to maintenance team:


  1. When Product/Sprint Backlog is primarily consists of technical requirements.
  2. When Product/Sprint Backlog is primarily consists of functional requirements which will lead to realization of Wirth’sLaw.
  3. Resources spent on bug fixes is considerable part of resources spent on feature add.



I will appreciate, if you provide your feedback.

Monday, January 14, 2013

Manufacturing Style for Software Development



We can classify almost all items/products (physical as well as non-physical) in few groups on the basis of how they are manufactured. I have tried listing these manufacturing styles.

  1.  Job/Craft Manufacturing: In this manufacturing style one or more persons collaborate very closely from designing till its complete manufacturing.  The each product resulting out of this style is unique because of high level of human interaction during manufacturing. This style of manufacturing is suitable for very low volume of production. Level of automation in this style is not very high. Few examples - Handmade basket by artesian, prototype of a car, etc.
  2. Assembly Line – Type 1 Manufacturing:  In this style of manufacturing, item under manufacturing travels from one assembly station to next. Each assembly station is specialized in terms of tasks, tools and human intervention. In this style designers of product and workers are disconnected. This style is suitable for mass production.  Car assembly is famous example of this style.
  3. Assembly Line – Type 2 Manufacturing: In this style of manufacturing, items under manufacturing remain stationary because of massive size but assembly station moves with tools and personnel. In this style designers and workers are disconnected. This style is suitable for mass production.  Jumbo Jet assembly is prime example of this style.
  4. Projectized Manufacturing: In this style, product is manufactured/assembles at the place where it will remain for its life. This style of manufacturing is used for ultra-massive products. Each product due to manufacturing is unique. Level of disconnection among designers and workers is high. This style is not for mass production. For example - a house, a dam.
  5. Material
    Processing
    : In this style of manufacturing (processing), tools are chemical and chemical reactions. Interestingly, raw materials are also chemicals. This style is suitable for mass manufacturing. Designers of processing and works are disconnected. For example – Fertilizer manufacturing, minerals processing for metals, etc.
  6. Information Processing:  In this style, instead of material, information is processed.  Here mode of transfer of information from one work station to another is paper or electronic format. Since information is formless, so geo location of work station becomes irrelevant. In this style process designers and workers are disconnected.  This style is suitable for mass production/processing. Human intervention in the process is high.



In reality, most of the products do not follow single style of manufacturing but combination.  But for any product, one style remains dominant.

Let us try to rate various manufacturing style on characteristics of styles:



Characteristics
Job/Craft
Assembly Line
- Type 1
Assembly Line
- Type 2
Projectized
Material
Processing
Information
Processing
Level of dis-connection among designers & workers
V. Low
V. High
V. High
Low
V. High
V. High
Level of Mass production
V. Low
V. High
V. High
V. Low
V. High
V. High
Transportation ease of semi-finished product
Neutral
High
V. Low
V. Low
V. Low
V. High
Level of human intervention during manufacturing
V. High
V. Low
V. Low
High
V. Low
V. Low
Uniqueness of finished product
V. High
V. Low
V. Low
V. High
V. Low
V. Low
Dependency upon Individuals
V. High
V. Low
V. Low
V. Low
V. Low
V. Low
Movement of people around product
V. High
V. Low
V. Low
V. High
V. Low
V. Low



Now try to understand where software product fits into. Before that let us understand position of software manufacturing with respect to characteristics of manufacturing style.



Characteristics
Software Development
Level of dis-connection among designers & workers
Low
Level of Mass production
V. Low
Transportation ease of semi-finished product
V. High
Level of human intervention during manufacturing
V. High
Uniqueness of finished product
V. High
Dependency upon Individuals
V. High
Movement of people around product
V. Low
 

Let us assign some numbers to level of characteristics:

V. Low: -2
Low: -1
Neutral: 0
High: 1
V. High: 2


Combining above tables and representing levels in numerical form:




Characteristics
Job/Craft
Assembly
Line
-Type 1
Assembly
Line
-Type 2
Projectized
Material
Processing
Information
Processing
Software
Development
Level of dis-connection among designers & workers
-2
2
2
-1
2
2
-1
Level of Mass production
-2
2
2
-2
2
2
-2
Transportation ease of semi-finished product
0
1
-2
-2
-2
2
2
Level of human intervention during manufacturing
2
-2
-2
1
-2
-2
2
Uniqueness of finished product
2
-2
-2
2
-2
-2
2
Dependency upon Individuals
2
-2
-2
-2
-2
-2
2
Movement of people around product
2
-2
-2
-2
-2
-2
-2



Now the distance between particular style and software development:



Characteristics
Job/Craft
Assembly
Line
-Type 1
Assembly
Line
-Type 2
Projectized
Material
Processing
Information
Processing
Software
Development
Level of dis-connection among designers & workers
1
-3
-3
0
-3
-3
0
Level of Mass production
0
-4
-4
0
-4
-4
0
Transportation ease of semi-finished product
2
1
4
4
4
0
0
Level of human intervention during manufacturing
0
4
4
1
4
4
0
Uniqueness of finished product
0
4
4
0
4
4
0
Dependency upon Individuals
0
4
4
4
4
4
0
Movement of people around product
-4
0
0
0
0
0
0
Total
7
20
23
9
23
19
0
 


The numerical analysis clearly shows that software development is still nearly a craft (fortunately not witch craft). With increased automation, it will move to projectized style.