The 7 Habits of Highly Effective Developers

7 Habits of Highly Effective Developers

Well, I researched on the internet looking for one or more articles which was written with the title, 7 Habits of Highly Effective People, and found a couple of them that has been written in the recent past. Following are some of them: The above articles are good and do talk about different aspects of becoming effective developer. However, I was not satisfied much as I could not find mention on some of the points that I wanted to talk about. Following is representation of my views on 7 Habits of Highly Effective Developer. Please feel free to share your opinion on whether I was able to …

Continue reading

Posted in Software Engg. Tagged with .

How to Increase Unit Test Coverage of Legacy Code?

test coverage

The article represents a time-tested approach on how to increase unit test coverage with legacy code. I shall try and answer following relevant questions in order to present the approach on increasing the test coverage of legacy applications (code). What are some of the key challenges? Leadership Buy-in: As soon as you start planning for writing unit tests on legacy applications, you come to realize that it won’t be very effective and smooth without the consideration of code refactoring. The reason being the fact that legacy code in many cases are found to have very high code complexity in terms of cyclomatic complexity and, familiar code smells such long classes, …

Continue reading

Posted in Maintainability, Software Quality, Testing, Unit Testing. Tagged with , .

2014 Development Trend: Decouple User Experience from Functionality

user experience

The article represents an interesting trend in relation with need for decoupling user experience from functionality that is happening as result of different UI channels such as web, mobile devices using which users could access the software functionality.  This can be termed as “Paradigm Shift” that needs to be adopted by developers sooner than later as part of the development practice. This is becoming much more relevant for this year, 2014 where there will be a need for delivering functionality on different devices/channels. What this means is that developers need to stop visualizing user interfaces (UIs) when they analyze the feature/functionality development. This is primarily because of the following reasons: …

Continue reading

Posted in Software Engg. Tagged with , .

4 Reasons Why You Would Want to Create Custom Exceptions?

custom exceptions

Either you are writing a program in Java or .NET, the questions remains that why to create custom exceptions in the first place? I, in my initial years as IT professional, also kept wondering on why, at all, there is a need for custom exceptions whenever I use to come across one of these types. At the same time, I also wondered on how to come up with right names for custom exceptions if at all I want to create one. Please feel free to add to the below reasons if you believe that there are other points that should also be covered as part of benefits for creating custom …

Continue reading

Posted in Software Engg. Tagged with , .

6 Java Exceptions that Haunts a Newbie Java Developer


Every now and then, I come across various newbies Java developers who are found to get stuck with some of the following common exceptions where I need to explain them all over again. I do believe that this is same with many other senior Java developers who try and help these rookie developers to deal with following exceptions. Thus, I thought of coming up with this article and use it for myself going forward. Please feel free to comment or add to the below exceptions list. NoClassDefFoundError: This is one of those exception, with message such as Exception in thread “main” NoClassDefFoundError, that has been most commonly found to welcome newbie Java developers to …

Continue reading

Posted in Java. Tagged with .

3 Java 7 Features Aimed to Enhance Code Quality

java 7 features

There are several new features that have been released in Java 7 to take care of several developers’ requirements. However, interestingly, I have figured out that three of those 7 features are primarily aimed to enhance following key characteristics of code quality. Please feel free to share your opinion on them. Code Readability Code Duplication Code Complexity Following is the detail of those 3 Java 7 features: Underscore in Numeric Literals (Enhances Code Readability) This feature primarily takes care of code readability, and hence, code usability,  having large numbers having several digits. For example, credit card number, social security number etc. Many a times, we come across large number which seem to have an embedded …

Continue reading

Posted in Java. Tagged with .

Top 4 Security Books Developers Would Want to Keep Handy

security books

Off-late I have been doing an extensive research on application security to to come up with application security guidelines (minimum & most important ones) which could prove very handy and at the same time, very useful for different class of IT professionals including developers, and architects. This is where I have come across some of the following books which has helped me to fulfill my objectives. In one of my later blogs, I shall also list down those basic minimum knowledge that is needed by developers to write secure code. In the meantime, allow me to list down top 4 application security books that, I believe, every developer would want …

Continue reading

Posted in Application Security. Tagged with , .

Tips for Developers to Increase their IQ (Innovation Quotient)?

innovation quotient

One of the primary concerns of many software services companies is to figure out how could they increase business with their existing customers year-on-year (YOY). And, one of the sure shot methods to achieve that objective is to provide innovative solutions which directly impacts their customers’ business in a positive manner and leads to increase in their business. This could, in turn, lead to enhancement of engagement & relationship between customer and the software service provider, thus, leading to growth of software service providers’ business. As mentioned above, the definitive way for software service provider to grow their business is to come up with innovative solutions which impacts the customers’ …

Continue reading

Posted in Innovation, Software Engg. Tagged with .

Top 5 Code Smells Newbies Developers Could Easily Identify & Avoid

code smells

Following is one very popular image which has been used to represent time and again for representing code smells. I am doing it again. Apologies if this one is repeat for some of you. But the image nicely represents how to find if your code really smells. The code smells listed in this article would certainly lead to increase in WTF count 😉 For newbie developers, it has always remained a challenge to write code of great quality from day one. One of the primary concerns they have been found to have is following: What kind of code could be termed as high quality code? There are several characteristics of good …

Continue reading

Posted in Freshers, Software Quality. Tagged with , .

Top 6 Refactoring Patterns to Help You Score 80% in Code Quality


This blog lists down top code smells and code refactoring patterns which would help you write good quality code. Top 5 Code Smells Have done several code reviews in past and found following top 5 code smells common across most of these code having code quality issues: Large Class: The classes were found larger enough due to lack of developers’ understanding on one of the primary coding principles which is “Single Responsibility Principle” (SRP). These classes use to get larger due to various methods serving unrelated functionality in the same class. Long Method: The methods have been found longer due to several reasons such as following: Several block of code …

Continue reading

Posted in Code Review, Software Quality. Tagged with .

List of Handy Architecture & Design Patterns for Developers & Architects

[adsenseyu2] If you are a newbie developer. experienced developer, aspiring to be architect or an architect, you may want to keep following architecture & design patterns handy with you to solve day-to-day software architecture and design problems at your work place. These patterns can be applied for developers/architects of varied experience level, having expertise with various different technologies (programming languages). Please feel free to suggest additional patterns as if I may have missed some of them. Application Architecture Patterns: These patterns primarily are related with topics such as how to layer an enterprise application, how to organize domain logic, how to tie that logic to a relational database, how to design a …

Continue reading

Posted in Architecture, Enterprise Architecture, Software Engg. Tagged with , , .

Top 5 Java Forums Worth Frequent Visits for Newbie Java Developers

java forums

If you are a newbie Java developer, and want to get your queries clarified quickly along with learning Java in a fast-paced manner, you may plan to visit to some of the following forums on the regular/frequent basis. These forums have been reviewed and listed below on the basis of number of discussion threads and participation/replies from the forum members. These forums could also be frequented by experienced Java developers owing to the fact that various interesting topics related to advanced level Java are also discussed in these forums. [adsenseyu2] ( A very active forum, for Java developers of all expertise level, I personally found this best of the …

Continue reading

Posted in Freshers, Java. Tagged with , .

How to Estimate A Story in An Agile SCRUM Sprint

Wondering on Agile SCRUM Sprint Estimation

Wondering on how to estimate a set of business requirements into one or more Agile SCRUM Sprints? Go on reading further and let me know what you think.   If you are planning to work/develop software based on Agile SCRUM development model and are looking out for an estimation model, here it goes. Quick Overview on Agile SCRUM Before I go into presenting the model, let me present a quick introduction to Agile SCRUM development model. Agile software development is a set of software development methods that are based on iterative and incremental method, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Following is taken from Agile Manifesto …

Continue reading

Posted in Agile Methodology. Tagged with , .

Business Process or Workflow – Chicken or Egg – Who Comes First?

Chicken Or The Egg - BPM or Workflow

Many a times, you ask the definition of business process or workflow, it so happens that the mention of other happens while a person is trying to define any of them. And, the next moment the question is asked that what is the difference between business process or workflow, and that which contains which one. This article tries to define each one and relate them appropriately while mentioning distinct difference between them? At times, it tends to appear like a chicken or egg situation which represents the fact that whether workflow in your systems may be progressed to define and create business processes (bottoms-up) or business process, once defined, needs to …

Continue reading

Posted in BPM, Freshers. Tagged with , .

Tools to Obfuscate Your Java Classes

If you have got the requirement to demonstrate your tool built using Java on client machine (third party computers) by deploying your entire tool, and you are worried if your critical application jar files consisting of Java classes could get decompiled and seen by others, you could use some of the following tools: Proguard could be used to obfuscate the class files. ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. In the process of obfuscation, it renames the remaining classes, fields, and methods using short meaningless names.  JBCO (Java ByteCode Obfuscator) could transform code to be more complex, esoteric, or otherwise obscure in order to hinder reverse-engineering nad decompilation …

Continue reading

Posted in Java. Tagged with .

Switch Statement with String in Java 7

Following code represents one of the requirements in which you could use Switch statement to work with String in Java. This should be noted that this feature got newly introduced in Java 7. Below is the class CalendarUtil which has a method namely numberOfDays to calculate number of days in a month of a given year. Note the logic for february month which will vary based on leap year logic. Rest of the days count remain same in different months irrespective of years. public class CalendarUtil { public static int numberOfDays(int year, String month) { int numberOfDays = -1; switch (month) { case “january”: numberOfDays = 31; break; case “february”: …

Continue reading

Posted in Java. Tagged with .