Saturday, January 6, 2018

SCRUM for Dummies

This is a quick (and dirty?) guide on SCRUM for dummies like me. I don't claim it to be accurate. This post is not trying to answer all the questions you may have on Scrum. It instead leaves you with more questions to satisfy your curiosity.

Before knowing what SCRUM is, let's understand what it isn't:

  • It is not Magic. Using it doesn't guarantee success of the project
  • It is not a quick fix for a project which is already in soup.
  • It is not the Spinach tonic that will turn a Popeye into a superhuman.

What it is then?
It is a project execution philosophy, an SDLC model, a mindset, a process model, an implementation of Agile philosophy. The most important aspect of Scrum for me is: "Fail fast".

Fail fast
SCRUM keeps you on top of things. It alerts exactly when your project starts Deviating from its target.
Why do projects fail? (miss the deadline, budget overrun, abortion, etc)

Very simply, SCRUM (like any other SDLC model) can be described as below simplified steps:

Before development starts (aka Sprint ZERO):
  • Requirements understanding workshops
  • Start with MVP and develop user stories
  • Estimation - use Planning poker (to come to a common ground) to estimate efforts
  • Task break-down
  • Sprint planning - (Sprint size - How many weeks? What to be included?)

Daily ceremonies:

  • Standup meetings (Geographically diversified teams? It's like Long distance relationships, but it can surely work!)
  • Update Burn-down chart

Sprint after sprint, the scrum team becomes mature and the velocity of the team becomes more and more predictable.

P.S. This post was drafted years ago and I don't claim it to be either complete or perfect. Please feel free to add your thoughts and provide your constructive feedback.

Tuesday, November 14, 2017

Basics of Data science and machine learning

Hypothesis function = prediction function.
Example: linear regression (i.e. graph of the values predicted by linear regression function is a line). The formula for this function is a function of a line. H(x) = a + b*x. Another popular notation is using  h(x) = θ0 +  θ1*x. Here  θ0 and  θ1 are input parameters used for prediction.

Here, x is the input variable/feature e.g. size of house, and H(x) is the price of the house.

Training examples = existing data about the features (i.e. x1, x2, x3, ...) and corresponding value that we want to predict. E.g. we have data about houses like size of the house, no. of rooms, year built and price. When we use it to create a prediction (hypothesis) function, it is called Training examples.

Cost function - the function to check accuracy of our hypothesis function i.e. the accuracy of our prediction (to get the best possible line in a linear model).

Cost function in linear regression = sum of squared errors
      = total of (difference in actual value and predicted value)^2 for the entire dataset

Gradient Descent
It is a function to find out minimum value of a cost function - i.e. to find out the best parameter values of the hypothesis function, such that the cost (i.e. inaccuracy) is minimum.

Multivariate Linear Regression

Also known as Linear regression with Multiple variables.

Multiple features x1, x2, x3, ... xn and multiple parameters  θ1,  θ2,  θ3, ...  θn.
Hypothesis function: h(x) θ0*x0 +  θ1*x1 + θ2*x2 +  θ3*x3 + ... + θn*xn


Watch this space for more updates!

Monday, April 13, 2015

Useful DB2 functions

Convert a CLOB (having text data) to String:

  SELECT Col1,CAST(CLOB_Col2 as varchar(2000)), Col3 FROM "Schema"."Table"

Convert a CLOB column (having XML data) to String

  SELECT XMLSERIALIZE(Col1 AS VARCHAR(600)), Col2 FROM "Schema"."Table"
Keep watching for more!

Tuesday, January 7, 2014

Localize names & titles of Liferay pages

Ability to localize the page names is a very useful feature of Lifeary and essential for any I18n/L10n implementation. I will show you how you can do it using Lifeary 6.1.

Below screenshot describes how you can do it:

Manage pages > [select your page] > Name > Other Languages >
  1. Select the language you want to add translation for
  2. Type/paste the translation in the Textbox
  3. Use '+' and '-' buttons to add/remove translations.

Note: From Liferay 6.2 onwards, you can also localize FriendlyURLs of your pages. Learn more about this feature here.

Hope this helps!