Category Archives: Software Engg

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 , .

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

refactoring

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 , , .

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 , .

R&D Framework for Achieving Customer Delight

research development

[adsenseyu2] If you are associated with a software service provider and have come across the customer comments such as following, you may want to read ahead and share your thoughts as comments: The team is creating great software based on what we are asking them to do; However, they are not adding value in terms of suggesting new technologies (tools & frameworks) to optimize one or more existing business processes or suggesting better way of doing the business functions.  The above is more common with software service providers who have been working on staff augmentation model and want to step up to become a strategic business partner of their customers …

Continue reading

Posted in Software Engg. Tagged with .

Free Online Courses from MIT For Java Web Applications

MIT OCW

[adsenseyu2] Following are 4 courses from MIT Open Courseware (OCW) that a newbie would consider for enhancing his concepts for working in Java web applications: Software Engineering for Web Applications: The objective of the course is to enhance the familiarity of students with some of the following key concepts: Concurrency Unpredictable load Security risks Opportunity for wide-area distributed computing Creating a reliable and stateful user experience on top of unreliable connections and stateless protocols Extreme requirements and absurd development schedules Requirements that change mid-way through a project, sometimes because of experience gained from testing with users User demands for a multi-modal interface The entire course can be downloaded from following link: …

Continue reading

Posted in Freshers, Software Engg, Web.

Top 5 Bad Application Security Practices

bad security practices

We all come across good security practices and make ourselves familiar with them to develop secured code. However, it may also be good idea at times to know about some of the bad security practices such that we, for sure, try and avoid them. [adsenseyu2]   Following are top 5 bad practices you may want to know about: Do NOT interact with un-trusted programs: Make sure that the external programs that your program is invoking for reasons such as data or functionality, must have got reviewed and tested for security compliance. One of the common entry points into secured applications are these unsecured applications and hackers just love them. Hackers, …

Continue reading

Posted in Application Security, Code Review. Tagged with , .

Top Architecture & Governance Principles for 2014

architecture governance

Following are some of the key architecture and governance principles that you could adopt for your project for this year 2014. The architecture principles could be seen as “guiding principles” based on which team would want to design, develop and test the applications. Key Architecture Principles (Guiding Principles) Holistic approach to application security: Given that applications could be accessed from different channels including web and mobile devices, the attack vectors for hacker has increased to a great extent. Thus, traditional approach of applying perimeter level security and doing security penetration testing may not suffice. Instead, it may be a good idea to take a holistic approach towards application security as …

Continue reading

Posted in Architecture, Software Engg. Tagged with , .

Top 5 Computing Fundamentals to Learn for a Prosperous 2014

Happy New Year 2014

For those of you looking to find out what will be good to learn in this new year, it would be OK to believe that computing fundamentals has become more important than ever before and it would be good to learn the same in 2014 rather than any of the programming languages such as java, .NET, or languages belonging to open-source stack. Following are some key computing fundamentals to focus upon in the coming year: Performance Engineering: As every business is planning to move their applications to cloud for various different reasons including cost-cutting measures, it has become much more important to write efficient application which makes the optimized usage …

Continue reading

Posted in Freshers, Software Engg. Tagged with , .

Campus Bytes – New Initiative

college research and revelopment

We are starting on with a new initiative where we would like to review and write about the research & development going on in several engineering colleges across the country (India) and, how they could benefit different IT companies. This would include reviews on white papars published in different journals, college websites, interviews from paper authors, lecturers and professors. In addition, we would like to invite key stakeholders from different IT companies to present their views on these papers and any further research that they would want to fund in one or more areas from within colleges. If you belong to one or more colleges and would like to submit …

Continue reading

Posted in Software Quality. Tagged with .

Must-have Application Development Skills for 2014

technology trends 2014

Following are some of the key must-have skills, every developer would want to acquire in order to create applications which align well with the technology trends of the coming year, 2014: Cloud readiness: As many applications have started moving into cloud, you never know when the application you have been working on, would also need to be moved to cloud. However, could any application be moved to cloud just like that? Not really. Following are some of the key characteristics that application would need to have in order to be ready to be moved to cloud: High Performance: An under-performing application could end up utilizing lot of resources in the …

Continue reading

Posted in Software Engg. Tagged with .

What to Learn on Day One of Application Development

Day One

Well, I would surely not recommend you to go over the application code and look for things like classes, interfaces, data model, design patterns etc. It definitely has to be everything else than the application code. If you have just landed on to a new application development project and shall be going to start working on the application soon, you may want to understand some of the following on day one rather than nitty-gritties of the application itself: Business overview: The idea is to understand key business functions which is served by the application. The output of business overview can be functional decomposition which can be later related to one …

Continue reading

Posted in Software Engg. Tagged with .