De-coupling releases from deployment

Jul 11th, 2015 | By | Category: Featured, management, organization design, process, technology
This entry is part 1 of 9 in the series Software Engineering & Agility

This entry is part 1 of 9 in the series Software Engineering & AgilityIT industry is all about change. Functionality needs to constantly evolve. You need more content, more products, more promotions and what not. In fact, a static web site is not very interesting in the eyes of its users. It gives the impression […]



On Technical Debt

Mar 9th, 2015 | By | Category: architecture, design, Featured, java, management, technology
This entry is part 2 of 9 in the series Software Engineering & Agility

This entry is part 2 of 9 in the series Software Engineering & AgilityTechnical debt has been mentioned in multiple blogs. Ward Cunningham apparently coined the term. As a software product starts acquiring more and more features and thence complexity; it tends to degrade in certain ways technically. If all potential product features are documented in a […]



On Estimation & Agility

Jul 4th, 2011 | By | Category: architecture, Featured, management, process
This entry is part 3 of 9 in the series Software Engineering & Agility

This entry is part 3 of 9 in the series Software Engineering & AgilityI was doing an estimation review recently. At first blush, I am instinctively uncomfortable about anything that requires a high degree of predictability in software development since that is going to be violated if you are ever intending to produce software that could be […]



Bug Driven Development

Apr 21st, 2010 | By | Category: design, Featured, process, technology
This entry is part 4 of 9 in the series Software Engineering & Agility

This entry is part 4 of 9 in the series Software Engineering & Agility Some time ago, I was exposed to a project which entered UAT with over a  thousand bugs. Obviously, the project itself is not the epitome of perfection. But the sheer number begs some fundamental questions about the assertion that the project […]



On Project Ramp ups

Jul 12th, 2011 | By | Category: architecture, Featured, management, process
This entry is part 5 of 9 in the series Software Engineering & Agility

This entry is part 5 of 9 in the series Software Engineering & AgilityAs I think back about all the failed projects that I had seen, I recognize one unifying feature about them. They all took too long to ramp up! I am not saying that they did not spend enough time on design or […]



Engineering in a Software Development Company

Jan 14th, 2008 | By | Category: management
This entry is part 6 of 9 in the series Software Engineering & Agility

This entry is part 6 of 9 in the series Software Engineering & AgilityI used to work with banks and financial companies chiefly. In these institutions, it was natural to have two different streams viz. the software stream and the core business stream – be it banking, brokerage or whatever else. Of course besides these […]



Refactoring, Evolutionary Design & YAGNI

Feb 24th, 2008 | By | Category: process
This entry is part 7 of 9 in the series Software Engineering & Agility

This entry is part 7 of 9 in the series Software Engineering & AgilityMost programmers practice it. Yet they don’t realize its true impact. I am talking about evolutionary design. I had always liked Martin Fowler’s article on evolutionary design. I think he does nail the worry that was raised by many people (including my […]



Project Automation

Feb 23rd, 2008 | By | Category: process
This entry is part 8 of 9 in the series Software Engineering & Agility

This entry is part 8 of 9 in the series Software Engineering & AgilityThere was a lady in one of the companies that I had worked for. She was doing, what is probably the most routine of jobs. She works evening shifts. Her chief duty was to trigger the build job in the night and […]



On the Design of Software Organizations – Balancing Autonomy with Governance

Jul 22nd, 2015 | By | Category: Featured, management, organization design, technology
This entry is part 9 of 9 in the series Software Engineering & Agility

How organizational design has evolved over the years. How autonomy must be balanced with governance.