Category Archives: Software Engg

Attention Developers: Take Care of Your Debts

Clear your technical debts

Hmm.. was the title intriguing enough for you to check out if you as a developer got any debts to clear (such as that represented below :-)? Well, I am talking about what is called as “technical debt” and that is it. ūüôā Believe me, there are high possibilities that most of the developers do have technical debts to clear which they (or someone else) introduce in the system while working on it over a period of time. Lets try and understand what/how/why/whens related with technical debt?   As Fowler writes in his blog, technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this …

Continue reading

Posted in Agile Methodology, Software Engg, Software Quality. Tagged with , .

Tips for Gathering Security Requirements of your Web Application Project

web security

Gathering security requirements in relation with a project, sprint (if agile) is key to deliver secured applications. This is because security requirements would lead to appropriate design in relation with security. Following are key topics to consider for gathering security requirements: Authentication & password management: This is mostly a one-time activity and done as the start of the project and not in every sprint. One may want to ask questions such as following in relation with authentication and password management: Password policies: This is important to ask to avoid dictionary attack in relation with user credentials. Password hashing: This is important to make sure password is encrypted with appropriate encryption …

Continue reading

Posted in Application Security, Software Engg. Tagged with .

Atlassian Confluence-JIRA Integration to Strengthen Agile Portfolio

atlassian jira confluence integration

Earlier this week, Enterprise software toolmaker Atlassian announced tighter integration between its¬†JIRA¬†issue tracking application and its¬†Confluence¬†team collaboration platform. With this move, they have further strengthened their agile portfolio. Following is the list of software in their agile portfolio: Confluence:¬†Confluence pages are used to maintain requirements (stories), technical specs, design guidelines, etc. Confluence pages are linked with JIRA thus linking requirements/technical specs to stories. JIRA: JIRA is used to maintain¬†epics/stories and issues. There are several blueprints in JIRA created to manage status reports, retrospective meetings etc.¬†The new JIRA Report Blueprint allows development teams to create an ad-hoc status report or a change log in Confluence.¬†The new Retrospective Blueprint gives scrum masters, …

Continue reading

Posted in Agile Methodology, News. Tagged with , .

Top 4 Java Static Code Analysis Tools

Static Code Analysis

[adsenseyu2] Before going over some of top static code analysis tools for Java, lets quickly look at why do we need static code analysis in the first place? Following are some of the reasons: Rules compliance: Pre-defined rules can be set as per the coding standard and automated static analysis could be run to figure out rules violation. This does cut down on the manual code review for the related rules. Code quality metrics: The static analysis could be used to measure some of the following based on which software code quality can be measured: Code complexity Unit test coverage Re-usability Duplication Reports: Creates management reports that can be used …

Continue reading

Posted in Software Quality. Tagged with , .

What does Agile Team Composition Look Like?

agile team

[adsenseyu2] If you are starting on new on agile methodology for application development, the question on what does agile team¬†composition look like is a commonly asked one? The article presents the agile team composition for SCRUM development model. Given the fact that there will be multiple agile teams which may work towards release one or more products in an organization, following questions get tricky: Do we need one business analyst for each SCRUM team? How to deal with performance engineers? Should there be one in each team, or should there be centralized team? How to seal with security specialists? Again, should there be one security specialists for each team, or …

Continue reading

Posted in Agile Methodology. Tagged with .

Testing Early, Testing Often for Greater Success in Agile SCRUM

testers and developers collaborate

In my experiences, I have found two different approaches taken towards testing in Agile SCRUM: Testers creating test plans while interacting with BAs, as like in waterfall model, in the beginning of each sprint, and executing those tests once the development is done. In this model, testers and developers still managed to survive successfully in their own islands/worlds and things used to move. However, there is not much interaction and collaboration between developers and testers during development phase. There are chances of usual conflicts that happens in the world of development and testing. Testers creating test plans with help of BAs, collaborating on test cases, related with user stories, with …

Continue reading

Posted in Agile Methodology, QA. Tagged with , , .

How to Address Application Performance in Agile Scrum Teams

application performance in agile scrum teams

Given the nature SCRUM, two quality characteristics that takes back seat and considered as implicit are performance and security. I shall discuss the approach on how to address application performance while working with agile SCRUM teams. Before I go and list down the tips and techniques, let’s understand some of the constraints: Not all developers working in SCRUM teams are very familiar with application performance aspects It may get difficult to do performance testing at the end of each sprint. It may get difficult to articulate performance related user stories in each sprint. Given above constraints, it becomes much more important to address performance related issues in SCRUM model. Following …

Continue reading

Posted in Agile Methodology, Performance Engineering. Tagged with , .

Code Conversion from C++ to C#: Tips & Techniques

Migration

Following are some of tips & techniques for doing code migration of your C++ application to C#: Conversion using Tool: One strategy can be to use some of the existing tools such as that provided by Tangible Software Solutions or sourceforge project on c++ to C# code conversion. Once the code gets migrated, you may want to look out for traps which may lead to error while code migration. Given that C# looks a lot like C++, there are areas (traps) you may want to review to make sure that code conversion took care of those so-called traps. This is not known on how effective these tools do the automated …

Continue reading

Posted in Migration, Software Engg. Tagged with , .

How to Address Application Security in Agile Scrum Teams?

Agile SCRUM Team Composition and Application Security

One of the concerns that takes the back burner while setting up the agile SCRUM teams is application security. One other area that gets similar behavior like security is performance which shall be addressed in later articles. However, performance gets addressed quickly as it is key quality characteristic and gets noticed by end users very quickly. In the traditional waterfall based development model, security gets fair attention as the non functional requirements related with security gets captured in the initial stages and the team gets composed of at least one security officer/specialist/architect to take care of security requirements. However, having a security specialist/officer in each SCRUM team is not feasible …

Continue reading

Posted in Agile Methodology, Application Security. Tagged with , , .

Logging Tips/Best Practices for Newbies

When starting the career of application developer in IT with one or more programming languages, one thing which is kept on back burner and kept for really long is logging. In fact, when I started my career as a programmer, when I realized that I wanted to know about what to log and what not to log, it was almost 4 years or so. This was my involvement in learning nitty-gritties of programming language itself, and not paying enough attention to logging at all. And, when I learnt most of it all, I realized how much value I added to programming by logging appropriate stuff in log files which was …

Continue reading

Posted in Freshers, Maintainability, Software Engg. Tagged with .

Migration Challenges from ATG 9.x to ATG 10.x

Following are some of the migration challenges from ATG 9.x to ATG 10.x: The migration can be achieved by executing scripts provided by Oracle, the information about which could be found in their detailed migration guide¬†or the same can be accessed on this page. However, it is recommended to have an experienced migration architect deal with migration initiative from 9.x to 10.x versions. It has been found that migrating directly from any ATG 9.x ¬†versions to any ATG 10.x versions landed up with one or more issues. If the current ATG version is at 9.x, it may be advisable to first migrate to an intermediate 10.0.3 version and, then migrate …

Continue reading

Posted in ATG, Migration. Tagged with , .

Make Business Analysts Your Friend & Deliver Great Product

In my experience, I have found application developers not very clear on roles and responsibilities of business analyst (BA) and, more importantly their need in the project. Thus, they do not pay attention to what business analysts has to say on the requirements and end up faltering on various aspects of project execution due to lack of proper understanding of the business requirements. This creates a lot of frustration to both application developer and business analysts. Below is a diagram representing a conversation with BA and an application developer.   What is the problem if business owners and application developers communicate directly without a business analyst as a bridge? The …

Continue reading

Posted in Software Engg. Tagged with .

How to Create Your Next Web Application on WordPress

If you have decided to code your next web application on top of WordPress framework, following are some of key considerations that would help you to get started quickly: Database interactivity from your custom pages Creating custom pages Retrieving GET parameters URL Rewrite Following is detail on all of the above points: Database Interactivity: Having your custom pages interact with the database is one of the key. Following are tips to get set with database connectivity from custom pages.The database information including host, database name, username and password is all configured in the wp-config.php in the root folder. All you got to do is include wp-config.php file in your database …

Continue reading

Posted in Software Engg, Web, Wordpress. Tagged with , .

Top 3 Most Visited Blogs for Great Software Code Quality

Following are top three most visited blogs this month in relation with software code quality: The rule I followed to become a great developer Refactoring 3000 lines of code Security code review tips for application developers Thanks to my readers for appreciating above blogs. I shall keep it flowing…

Posted in Software Quality. Tagged with , .

Strategies to Consider for Your Code Migration Project

Are you planning to start your code migration project. Have you been looking forward to accelerate your code migration project while ensuring that the quality is not compromised? Following are some of the strategies that you may want to consider for your code migration project: Development Methodology: As code migration requires greater team collaboration and frequent testable releases, it may be advisable to adopt agile development methodology such as SCRUM. With agile development methodology, the features to be migrated could be put in the backlogs and the migration is done based on this backlog. Agile development method ensures that you have complete visibility at all times on what is done …

Continue reading

Posted in Migration. Tagged with .

If I Woke up as a Test Engineer One Day…

If I, being an application developer, have to spend a day as a tester, following are some of the activities I would do: Analyzing Test Cases: Examine test cases and make sure that the coverage is maximum in terms of including all test scenarios in relation with the use cases. Test Automation: Look for the areas which can be automated and suggest the same to my lead/manager. Digg a little deeper in the code to find bugs which are difficult to find in manual testing. Learn techniques in performance testing as I am very passionate about the same. Learn few tips and techniques in security testing, along with knowledge on …

Continue reading

Posted in Software Engg, Software Quality. Tagged with .