Category Archives: Software Engg

The Rule I Followed to become a Great Developer

DISCLAIMER: The article is in no way an intention of bragging about my development capabilities. The intention is only to emphasize in so many ways on a rule which can surely, in my opinion, help developers improve quite a notch and become a better developer. I would like to reach as many developers as possible with an intention to create a belief in them regarding the principle I spoke. Thanks for reading the blog. Please feel free to share. For several years that I spent in IT industry while working on a different roles and responsibilities such as developer, technology lead and architect, I was looking for that ONE THUMB …

Continue reading

Posted in Software Quality. Tagged with , .

Security Code Review Tips for Application Developers

One of the key aspects of secured application development practice is Security code review. Security code review, as like normal code review, could be done either in automated fashion using one or more tools, or in manual fashion where one or more developers are involved in doing code review. Unlike application normal code review where one needs the knowledge of business functionality and programming language & related technologies’ knowledge, Security code review requires knowledge on different aspects of security including some of the following: Common threats (STRIDE can be a great place to start understanding threats) Vulnerabilities (OWASP Top 10 describes most common vulnerabilities) Remediation techniques recommended in that programming …

Continue reading

Posted in Application Security, Code Review. Tagged with .

Why Attend Meetings when Some Coding can be Done

I am sure many of us at some point of time in our career come across this argument from meeting attendees, primarily inexperienced guys, that he/she is very busy with his current tasks related with coding or testing, and that he may not be able to join the same given the fact that he agreed to attend the meeting earlier. Another instance that I have come across in relation with meeting is people coming up with laptops and get themselves busy with their tasks (coding/testing/others) while meeting is proceeding.   Let’s try and understand what can be some of the different kind of meetings for an application programmer, or tester. …

Continue reading

Posted in Software Engg. Tagged with .

Disagree with Your Customers but Politely

Have you come across those heated email exchanges between customer stakeholders (manager, architect, tech lead, senior engineer etc) and stakeholders from your team including developers, tech lead, managers or architect? If you have worked in IT services company whose primary business is to work on development, support and migration of one or more applications in different technologies, instances like these are more likely to appear. If you want to act as an equal partner and contribute to maximum in overall growth of your customer’s business, you are surely expected to contribute much more than just do what is asked to be done. In that regard, you may be expected to …

Continue reading

Posted in Customer Relationship, Software Engg. Tagged with .

Refactoring 3000 Lines of Code

Have you come across a class file (object-oriented programming languages) which spanned across 3000 lines of code or more? Or, even, a class of 1000 lines or more. I do have seen many such code in my career and trust me, every time I have come across such instances, I have a painful time working with any changes required to be made in the code. Honestly, the changes was made without much assurance that everything would work fine with this change in now and future. Lets  try and understand what’s the problem with long classes (1000 lines code or more)? Low Maintainability: Such classes score very low in maintainability aspect of …

Continue reading

Posted in Code Review, Software Quality. Tagged with .

Preparing Fresher Developers for Billable Projects

Are you one of those project stakeholders/trainers who have been assigned the task to make the fresher developers become billable, meaning, customers paying for their time? This is a tricky one to crack as it is difficult to convince customers that a fresher developer would be able to deliver a great quality code given the lack of experience. As a matter of fact, fresher developers take pride in becoming billable after the training is over owing to the fact that they would be able to start learning from day one, prove his worth and, organization would be able to make optimum usage of his expertise. So, how do you crack …

Continue reading

Posted in Freshers, Software Engg. Tagged with , .

SCRUM Style Best Suited for Fresher Developers

One of the key concern that freshers’ developers, mostly under probation period, have been found to have is biased behavior of the manager in-charge towards a set of developers in assigning development tasks primarily during training period. This is the time when managers have also rate these developers and it is a very tricky part for the managers to take the right judgement. Thus, what can be the most effective way which creates win-win for both, freshers developer in terms of having them work/learn at their will and also managers be able to make the right judgement. To crack this problem and create a fair playground for all, I have …

Continue reading

Posted in Agile Methodology, Freshers.

PHP Code Smells and Best Practices

As application in PHP can be written in object oriented manner, most of the code smells found in the world of object-oriented programming also stay valid for PHP. Recently, I happened to do a code review of a PHP project and wanted to share some of the areas which one would want to pay attention to: Naming methods using Camel Case: It is always helpful to write method names in camel case as it is easily readable. For example, instead of writing method names such as “searchurlAction”, one could write “searchUrlAction”. Software quality characteristic impacted in “Usability“. Long Methods: One may want to avoid large method as these methods become …

Continue reading

Posted in Code Review, PHP, Software Quality. Tagged with .

Journey from Technical Lead to Technical Architect

What is road to becoming a technical architect is a tricky topic, many wants to know. Especially, this is of interest largely to senior developers and technology leads. Let me give a shot at this. I would love to hear your comments in this regard: Technology vs Thought Leadership: Technical lead is primarily responsible for exploration and implementation of technology (tools & frameworks) to solve a particular set of problem in hand. He also plays a crucial role in doing proof-of-concept in related with adoption of newer technologies. The person on this role also acts as a mentor and guide to individual team members in terms of adoption of technology. However, …

Continue reading

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

A Centralized R&D Team – Key to Highly Performing Agile Scrum Teams

If you have an Agile SCRUM based development center that consists of multiple SCRUM teams to working on different features and functionality of one or more product, you always have the concerns in relation with highly performing teams in terms of usage of relevant and latest technologies from time-to-time. One of the key challenges in front of SCRUM teams is to make sure that they are using most appropriate technologies at all point of time. This can be achieved in multiple different manners. Some of them are following: Set aside stories for research & development of new tools & frameworks to be done in each sprints. Stories of such kind, …

Continue reading

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

Top Security Considerations for your Cloud Applications

I have been working/reviewing a cloud application where data security has been shown as top security concerns for most of the customers. Following are key areas for consideration when planning for security for your cloud applications: Internal theft: One of the most crucial security thefts come from unscrupulous employees who can pass/leak data to the competitors. The customers using the cloud applications are suggested to advise their employees on this front. Physical access control & monitoring: The physical access to the data center hosting the cloud application should be restricted and monitored at all times. Login access control: Only authenticated users should be allowed to login.In addition, the authenticated users …

Continue reading

Posted in Application Security, Cloud, Software Engg. Tagged with , .

Key Considerations for Application Security & Agile SCRUM Team Composition

Before going into the SCRUM team composition in relation with application security, it can be worth while knowing what are key aspects of secured application development practices: Security awareness training Threat modeling Secured coding practices Secured code reviews Security testing Achieving the state of secured application development practices is one of the toughest challenges for most SCRUM MASTERS to crack. For achieving secured application development, different alternatives could be explored to build the team, depending on software development methodology including agile and non agile methodologies. For agile development based on SCRUM model, following alternatives can be explored: Security Officer/Adviser/Architect: The role of the security adviser is to counsel various SCRUM teams …

Continue reading

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

Top 5 Characteristics of a Great Fresher Developer

While handling various different teams of freshers in my career so far, following are top 5 characteristics I have come across in what I call as “great freshers developers“: Hard Work: When starting their career, developers need to put extra time in learning new things, and experiment with them. In addition to that, they need to catch up a lot on good practices of writing a software of good quality as no one would accept the software of compromised quality on the grounds that developer is a fresher. Patience: This is a virtue which most of the freshers lack. All of them are looking forward to start working on a …

Continue reading

Posted in Software Engg. Tagged with .

YII framework for faster PHP web application

If you have been looking for developing a web application in a quick manner, then, YII is surely a right choice. YES IT IS! What are some of the important characteristics of yii framework? 1. It is very lightweight. 2. It is based on MVC framework. 3. It comes with a user interface tool which helps in creation of models, views and controllers. 4. It has support of some real good UI framework such as getyiistrap.com, yii bootstrap, yii wheels. 5. It comes with a support of a set of extensions that can be used to include new features quickly in no time. 6. If you love writing code based …

Continue reading

Posted in Software Quality. Tagged with , , .

Top 5 Project Management Topics for Technology Geeks

If you have been the technology geeks and want to learn topics in project management to manage your work, following are five most important topics in project management you would want to consider: Scope management: Helps you to determine the scope of the deliverables Time management: This is related with effort estimation Quality management: The is related with overall quality of your deliverables Risk management: This relates to overall risk of your projects. Communication management: This one relates to communication done to external and internal stakeholders.    

Posted in Agile Methodology, Project management. Tagged with .

Analyzing Raw C++ Code to Create Architecture Diagram

If you have got an application written, primarily in C++ code, and you have been asked to understand the code and create architecture diagram, following are some of the biggest challenges: Top-down approach: If you have got an understand of functionality at a very high level, it is important to think about some of the components that can map to these functionality. If you have not got enough information on functionality to think about these components, it is always better to ask your customer for a bit more information than what you have. Once you have thought of probable components, you can start hunting for those components in various different …

Continue reading

Posted in Migration.