Category Archives: Software Engg

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.

Key Questions to Ask During Software Requirement Analysis

Following are some of the common issues faced by many teams that I came across, at one or the other point, is the complaint posted by their client regarding following: The team including developers and testers do not understand requirements The team do not ask enough questions and require spoon feeding The team makes assumptions The team does a good job in coding normal use case scenario; However, they fail to take into account exception handling. The end result of above is unhappy client, a confused team and go-fix-the-issues team management. With some research and experiments, I found some of following questions that when asked during requirement analysis phase, helps …

Continue reading

Posted in Software Engg. Tagged with .

How to Predict Reusability Index of a Standalone Code

Is it possible to predict the reusability index of a block of code in a standalone mode? Meaning, given no information about the code, and just the piece of code, would you be able to predict or tell if the code is highly reusable or not reusable at all? Before going into this, lets understand the basic fundamentals in relation with code reusability. One myth I have come across while discussing the code reusability is that code should be made reusable when demanded by requirements. For example, one says that for reusable services, one should write reusable components and thus, reusable piece of code. When asked to many people, I …

Continue reading

Posted in Reusability, Software Quality. Tagged with , .

How to Start a Technology Center of Excellence

Before going into the topic, it is very important to understand about what can be called as “(Technology) Center of Excellence” and why do an organization need one? Why an organization need a center of excellence for any technology? Multiple reasons. Following are the key ones: Planning to start a new technology initiative enterprise-wide or in multiple LOB based on enterprise business needs. For example, Center of Excellence for BPM, SOA, EA, Big Data etc. For instance, a large company want to adopt BPM practice. This is where COE is needed. As a software service provider, one might want to start a new team who does R&D on the technology, …

Continue reading

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

Agile Design Documents with WebSequenceDiagram Tool

Earlier, I wrote a blog on how to write a winner design document when working in Agile Scrum methodology. The blog has been based on my experience while working with distributed SCRUM manner. Disbelief in Design Documentation for Agile SCRUM I have come across various sections of people who did not believe in design document at all when working in SCRUM manner. Their argument has been that SCRUM is all about encouraging technical discussions through different manners such as white-boarding etc and, adopting design documentation just kills the overall objective. I agree to some extent given the entire team is working at one place and could do quick discussions including …

Continue reading

Posted in Agile Methodology. Tagged with , .

Stay Single and Get Admired for Your Code

You might be wondering on the relationship between staying single, getting admired and coding! And, then, staying single forever 🙂 is something which may not be liked by most of us. So, what is this blog all about? Well, with “single, I am trying to point at “Single Responsibility Principle” and with “stay single”, I am pointing towards writing code based on “single responsibility principle”. Well, as the title of this blog goes, if you keep the “Single” responsibility principle (SRP) in mind while writing your code, there are high chances that you will end up with a great piece of code which will get liked by many including your …

Continue reading

Posted in Maintainability, Reusability, Software Quality. Tagged with , , , .

Learnt Agile Development Processes. Now, What’s Next?

The first step when an organization decides to adopt agile development methodology is to look out for a Agile coach who can train the team on agile development processes. For example, an organization either want to adopt extreme programming practices or SCRUM development practices; Once decided, agile coach take team through the specifics of the development processes. For instance, if one wants to go with SCRUM, one would be made aware of some of the following concepts/stages: Sprint Planning/Backlogs Estimation/Velocity Implementation Reterospectives Burn down charts Well, once the teams get aware of the above procedures as part of agile development process, they get down to adopting the process. However, in …

Continue reading

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

What is the definition of Software Quality?

Even before we try and define what is software quality, it may be a good idea to understand what is meant by term quality? Quality means different to different people. One may call a product or high services of high quality if it serves their needs. Thus, for some people, a cell phone can be of high quality if it provides sound of great quality. However, for others, the ability to browse through social network can be criteria of judging a cellphone (also called as smartphone) quality. To standardize, software quality may be defined as a set of characteristics can be used to measure the following: Outcome of interaction with …

Continue reading

Posted in ISO Standards, Software Quality. Tagged with , .

How to Really Welcome Changing Requirements in Agile Environment

If you are one of those who is all set to start with agile development practices in your organization, check the following on how to deal with changing requirements which is one of the important specifications mentioned in Agile Manifesto. If you want your team to accept the idea of changing requirements (hard to digest in the beginning and so resistance) while they are developing the code, following are some of the things you would want to adopt/encourage as part of software development practices to really make team welcome the changing requirements: Training: Software quality with emphasis on how to write maintainable/easy-to-change code Object oriented design principles to ensure the …

Continue reading

Posted in Agile Methodology. Tagged with .