Posts

Showing posts with the label best practices

Code Quality Check

Image
Every software development needs coding; without it, nothing can be developed. The quality of software depend on the way developer write code. It's an essential part of the system and the behavior of the system depends on it.  A small mistake in coding may make software vulnerable and unstable. Quality engineering works hard to find bugs to avoid potential problems with the software. They spend numerous hours and put tremendous effort into finding any problems with the software and reporting it to the developers. Cost of fixing the defects at various level. The Cost of fixing defects at latter stage increases exponentially, hence, you need more hours of QA Engineers and Developers to fix and run the entire release cycle again. If we can save some amount of time and effort from above, we can utilise resources in more productive way. Can we make sure code is better written, tightly secure, having no potential bug and right libraries ...

Lessons Learned in Jenkins Configuration Management

Summary: Managing the configuration of Jenkins—the popular open source, continuous integration and continuous delivery application—is not trivial. Even a small change can make the platform less stable or result in problems. Vishal Sahasrabuddhe talks about his experiences using Jenkins and offers tips to take advantage of its many powerful features to automate deployment and increase productivity and product quality. (Originally published on  cmcrossroads.com ) Configuration management requires that you automate application build, package, and deployment. There are many tools used to accomplish these tasks, but Jenkins is one of the most popular open source frameworks employed by teams today. Jenkins is widely used by developers to automate not only application procedures, but also continuous integration and continuous delivery. It comes with many powerful built-in features, and there are also hundreds of plugins that help it integrate with other tools and p...

How to provide effective training/presentation

Providing effective training is an art form. It requires much dedication and skill to engage your students so they believe they have benefited. Simple presentations can feel dull and unengaging, making the topic less interesting and many times leading to little or no knowledge transfer, even if the subject was covered correctly and the information was spot on. Gaining—and keeping—the interest of your audience is paramount in any successful training program. Here are a few essentials to consider when creating your presentation to make it more effective: Start with the basics

Release Management and Release Engineering

Many times people get confused with the terms as Release management and Release Engineering. They interchange both the terms and use it as the same. Release Management and Release Engineering looks to be similar but both their functions are completely different in implementation, however both serves the same purpose in bigger picture of Releases.

Sample gradle file

Following details are part of previous blog http://www.scmtechblog.net/2015/12/how-to-migrate-parent-pom-from-maven-to.html Here is the sample of base gradle file which can be acted as super pom for your project. There are 2 profiles we have enabled whitebox-analysis and Coverage-analysis which does complete checks and only jacoco respectively.

The Rise of the Jenkins CI Butler - by Jonathan McAllister

Author of Mastering Jenkins [Packt Publishing] [ http://www.masteringjenkins.com ] Kohsuke Kowaguchi designed and developed the Hudson automation system from the ground up while he was working at Oracle in 2006.  Primitive inceptions of the Jenkins platform (then known as Hudson) simply aimed to support continuous integration practices and offer a viable replacement for CruiseControl, which was the popular CI solution at the time. The Hudson platform was initially very Java centric with tight coupling to Maven and Java development paradigms. Little did Kohsuke know that his internal Hudson tool would catapult in notoriety, change names (into Jenkins), spin off to become CloudBees and eventually become the most popular modern Continuous Integration and automation orchestration platform in use in modern history. The current Jenkins platform provides an easily consumable unified user interface coupled with a highly scalable distributed automation solution that can build, t...

Maven Errors - Few common Maven error and troubleshooting part 1

In this post i am going to talk about maven build troubleshooting, Here is the list few maven error and its troubleshooting. Tag Already exist If you see following type of error in your release build after the perform step [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project : Unable to tag SCM [ERROR] Provider message: [ERROR] The git-tag command failed. [ERROR] Command output: [ERROR] fatal: tag '<some tag>' already exists

In house tool vs enterprise tool / open source tool

Tool development and adoption The current pace of software development cannot manage its speed without the automation. Automation is the most important element in order to achieve agility in delivery of the product. Every part of the software development life cycle needs tools to perform their action automatically. These phases could be coding, code review, build & deployment, environment management, resource assignment, notification and many others. There could be 2 options, which a team can opt for: Use a third party tool One can select the tools, which are available in market, either open-sourced or free. You can even buy enterprise solution if needed. Build an in-house tool Tool can be built or developed in-house for the consumption as well. Lets take look different aspects of choosing options

Code Review - Write your code right

Writing code is definitely subjected to individual thinking, logics and perspective. How he writes code is completely depend on his technical and logical skills. 2 different people can write same code in entirely different tactic (May be both logics of the code are right in their own way). Even 2 persons can write bad code as well as good code as per standard. In real world it is most likely possible that one writes the code and same will be read multiple times by many other developers to fix the bugs, improve the features, understand the code. That is why each language has its own style of coding and guideline to make it more meaningful and understandable. Most of time the Developers struggle to understand the code written by someone else in team. I have even heard people saying that its difficult to read someone else code rather writing same from scratch. I would like to highlight few compiled techniques in once place to make writing code better.