Simple 3 branch model for agile software development

       

On large teams it is very important that everyone understands and follow the same branching model/workflow. One of very popular branching workflow is [GitFlow](http://nvie.com/posts/a-successful-git-branching-model/), however with largely distributed team and novice team following GitFlow is difficult. So over a period of time I have been following simple 3 branch model for development which works fine for agile and continuous delivery software development method.

Read More

Distributed Agile - What should be the Sprint duration?

       

What should be the Sprint duration? this question comes up quite commonly on agile projects and opinions vary from as short as a week to as long as 6 weeks. Decision on an appropriate Sprint length depend on many factors. Few of the factors that I consider while deciding on the Sprint length are as follows, however, each factor adds different dimensions when the team is distributed across time zones.

Read More

Ownership model for distributed team

       

In distributed teams it is very important that each team operates in complete autonomy. And there is need for team to be independent and takes ownership. However, everyone has different views and understanding of ownership. Here is what worked for me in terms of distributed team and clear definition of ownership across teams.

Read More

Testing emails with Fake SMTP service

       

Testing is key activity of every software development projects. However testing certain features is not easy and need special support functions. One of such functionality is email testing. In this article I introduce few tools that I used in my projects for achieving email testing easily without any side effects.

Read More

Collaboration Techniques for Large Distributed Agile Projects

       

In past few years, it has become quite common for software development teams to be distributed across time-zones and comprise of multiple vendors with 50-100+ people. Post is about different things and techniques that worked for me in large distributed agile projects such as healthy product backlog with clear separation, choosing the right tool for team collaboration, effective agile practices, clear and honest communication...

Read More

Story Mapping, Visual Way of Building Product Backlog

       

Story mapping is an effective inception tool to create a product backlog in a visually structured way. It helps in building a shared understanding, identify gaps in the backlog, see interdependencies, perform better relative sizing. Further, it can also help in slicing and release planning activities.

Read More

How to begin with Agile and Continuous Delivery on Legacy Projects?

       

Post is to provide guideline on how to get started with Continuous Delivery on Legacy Projects. "Agile and Continuous Delivery works for new green field projects, but we have legacy project. We don't to where to start or we can't do agile".

Read More

Building a Two-Stack CMS for a global product catalog

       

We build many websites with rich content, often using popular Content Management Systems (CMS). A recent project involved a marketing website for a global manufacturer which demanded complex interactive content with high availability and traffic needs.
Our response was to apply the editing-publishing separation pattern and build two distinct stacks of software for content creation and delivery. In this deck you can see an overview of this architecture and our response to the issues of integration between the stacks, providing a secure preview of the live site, and handling the evolution and scaling of the system.

Read More

Use structured logging for log search and analytics

       

Logging is being followed in software development since long. Structured logging provides meaning to logs and helps not only just for debugging, but for reporting, monitoring and alerting, performance benchmarking and with analytics as well.

Read More

Guidelines for Structuring Automated Tests

       

In every project, these questions come up - what kind of automated tests should we write? What is the right level of testing? How much of test coverage is "good enough"? I would like to share guidelines that I've found to be useful for planning and building test automation suite for my project.

Read More

Using TDD to Influence Design

       

After hearing the discussion about TDD by Martin Fowler, Kent Beck and DHH. I thought of putting down my 2 cents about TDD - why I follow it, and why I find it useful as a thought process for solving design problems.

Read More

Zero downtime using blue-green deployment strategy

       

Zero downtime during application deployment is one of the key requirements for continuos delivery. And no business would like their site to be down and showing maintenance page every few days/weeks during deploymentTo achieve this we decide to go for [blue-green deployment](http://martinfowler.com/bliki/BlueGreenDeployment.html). However, we were challenged with how to do this in legacy style data center infrastructure where we are...

Read More

Building highly scalable and performance application using non-blocking architecture

       

Article shows the modern way of building websites using non-blocking architecture pattern. Why this style of architecture is beneficial and what are the frameworks available to implement.

Read More

Cross functional requirements

       

It is always been difficult to identify stories for cross functional requirement (XFR) a.k.a NonFunctional requirements (NFR) during inception (2-3 weeks of project kick-off/initiation phase). Here is the technique to do that in short 2-3 weeks project inception.

Read More

Why responsive web design?

       

Objective of this blog post is look into the history and learn what problem we try to solve with RWD.

Read More

Data Anonymization techniques, Blacklist and Whitelist?

       

In this post I describe the two techniques used for data anonymization, Blacklist and Whitelist. Blacklist is easy to implement and get started, whereas Whitelist is more secure and preferred.

Read More

Data Anonymization, need for every site in production

       

Afraid of getting production data due to privacy issues. Data Anonymization tool can help you to build anonymized production data dump to use for performance and security testing, debugging production issues and development purpose.

Read More

Get notified with push notification

       

Write post description here...

Read More

Distributed team communication plan with anatomy of an iteration

       

One of the variations of agile it is called Distributed Agile Development. And a key ingredient for distributed teams to work effectively is communication. This post describes method of how to come up with effective communication plan collaboratively with everyone including business.

Read More

Project envisioning exercise - Process Timeline Map

       

Describes the method to study business processes in visual way to build common understanding with business during project inception.

Read More

Project envisioning exercise - Product Map

       

Product map envisioning exercise helps to understand/define products, their benefits groupings and how they differ from each other.

Read More

Project envisioning exercise - Term cloud

       

Tool or exercise during project envisioning to learn the terminology used by the business.

Read More

Ruby vs Java vs .NET - How much does it matter on web projects?

       

On most of the projects we just talk and talk about which language is the right choice (Java vs Ruby vs .NET vs ...) for your web application development. This post talks about what all other things matter equally and we should pay attention to.

Read More

Amazon S3 learning with HTTPS serving very slow

       

Serving images from S3 over HTTPS is slow, using CloudFront to serve S3 content over HTTPS gives significant improvement in time.

Read More

NoSQL learning & gotchas based on MongoDB experience

       

I have been working on NoSQL database had some interesting learning on when not to use NoSQL database. All following learning are based on my NoSQL experience with mongoDB. This is an ongoing document which I am planning to keep updating as I keep learning.

Read More

Design for feature and code for story

       

With this article I would like to extend the concept of code just enough to pass the story. As important it is to just code for the story, design for the feature is also important to avoid rework and clean design.

Read More