OO Design Principles
Following Object Oriented Design Principles have really helped me designing my code: Single Responsibility Principle Open Closed Principle Liskov Substitution Principle or Design by Contract Interface...
View ArticleStay away from Design Patterns; master Value, Principles and Basics Skills first
Unfortunately many developers think they already know enough values and principles, so its not worth spending anytime learning or practicing them. Instead they want to learn the holy grail of software...
View ArticleGoodbye Simplicity I’m Object Obsessed – Example
Suppose we had the following (utterly) simplistic requirement: @Test public void politiciansDontNeedToPayTax() { whenIncomeIs(10000).verify(POLITICIANS).pay(0); } @Test public void...
View ArticleBenefits of Behavior Driven Development (BDD)
Should you consider BDD for your team? I just wanted to share my experience with BDD, which you could consider as food for thoughts: Why? – How often does your development team ask the business team...
View ArticleTop 25 Blog Posts from Naresh Jain in 2012
Following were the most read blogs in 2012 on Managed Chaos: Upstream Connection Time Out Error in Nginx Setting up Tomcat Cluster for Session Replication Inverting the Testing Pyramid Simple Design...
View ArticleTest Driven Development Applied Workshop by Lasse Koskela at Agile India 2013
Lasse Koskela will be presenting a workshop on ‘Test Driven Development Applied’ at Agile India 2013. He works as a coach, trainer, consultant and programmer, spending his days helping clients and...
View ArticleOutside In – Behaviour Driven Development (BDD)
Recently at the Agile India 2013 Conference I ran an introductory workshop on Behavior Driven Development. This workshop offered a comprehensive, hands-on introduction to behavior driven development...
View ArticleAvatars of Test Driven Development (TDD)
It’s easy to speak of test-driven development as if it were a single method, but there are several ways to approach it. In my experience, different approaches lead to quite different solutions. In this...
View ArticleProblem Solving Techniques For Evolutionary Design
At the Agile Goa conference, I ran a small workshop to help participants understand the core techniques one should master to effectively practice evolutionary design while solving real world problems....
View ArticleEmbracing Simplicity to Kill Conditional Complexity – A Real World Example
In the Agile India Submission system, we had a feature which would accept different url path to show matching proposals. For example:...
View ArticleUnit Testing Dilemma: Should I Invest or Not?
Every single line of code must be unit tested! This sound advice rather seems quite extreme to me. IMHO a skilled programmer pragmatically decides when to invest in unit testing. After practicing...
View ArticleProduct Discovery Workshop – Agile India 2012 Accepted Proposal
Many product companies struggle with a big challenge: how to identify a Minimal Viable Product that will let them quickly validate their product hypothesis? Teams that share the product vision and...
View ArticleFacebook’s timeline – Like or Dislike?
Over the last few days, I’ve heard friends complain about Facebook’s timeline (3rd major redesign of the profile page.) I’m surprised that some people don’t like Timeline. IMHO its very elegantly...
View ArticleFacebook and Twitter Icons on Print Media
These days its fashionable for businesses to have a Facebook and Twitter account. I can see how social media can help them. But what beats me is, every now and then, I see a billboard or a poster with...
View ArticleA Bird in the Hand is Worth Two in the Bush
In software world we call this speculative generality or YAGNI or over engineering. IMHO we should not be afraid to throw parts of your system out every 6-8 months and rebuild it. Speed and Simplicity...
View Article