Showing posts with label developer. Show all posts
Showing posts with label developer. Show all posts

Monday, September 17, 2018

Team - Multiple Branches Management Strategy | Flexibility | Productivity

Oops…! It's an era of Agile-Scrum-Sprint.
This is still okay but What about Monthly Releases and delivering various features using Jenkins as continuous integration (CI) tool?

Nowadays single team is working on different modules and various stories around them.
Working as a Technical Leader/Development Manager one may face difficulties in delivering various features in the same release.

This may be due to below considerable points:
  • All features and issues are getting fixed on a single branch.
  • Late identification of Technical Feasibility.
  • Third Party dependency (UI/UX/Core Team).
  • DEV/QA Team runtime bandwidth.
  • Last moment urgent Production Bugs.

As a general practice and to avoid branch management, traditional teams have only one branch per release.
Changes done in that branch are targeting:
  • New Feature/Story
  • Bug Fixes
  • Performance Fixes.

If any of the story/performance fixes can cause a delay that will lead to impacting timelines for other stories.

  • This has to consider the overall effort to put in the last moment to roll back those changes.
  • Again this leads to compromising the quality of the deliverable.
  • Dev team gets less time to analyze the impact-areas.
  • QA Team will get less time to verify the changes done.
  • Marginally less/no time for regression.
  • *Most importantly Handling pressure from upper management and criticism.


Below diagram gives pictorial representation of Teams' changes in Single Branch:


Let's try to analyze the scenario – Time for WH Questions!
·         What Team is doing?
o   Creating a Single branch from the Production/Stable branch for a release.
o   Making changes for Bug fixes, Performance issue fixes, and Story Development in a Single Branch.
·         Why Team is doing changes in the Single Branch?
o   Avoid extra branch management.
o   Availability of QA Environments.
o   Avoid Migration/Regression efforts on every branch.
·         How is it impacting?
o   Anything gets delayed entire feature suit is getting delayed for a release.
o   Timelines are getting missed.
o   Last moment extra efforts without deeper analysis.
o   Compromising Quality of deliverables due to lesser Testing Time.

It's time to change the way changes are getting pushed in Single Branch and come up with multiple branching strategies.

Let's summarize what needs to be achieved & HOW?
  •  Need to have Feature-Shelf so that based on decision any time any Merge-Ready Feature can be released in production with good quality.
  • Want to have no pressure from management for technical items.
·       No impact of any Story development/release plan decision on other Story.
o   How? à Separate Branch for each Story and Performance Fixes.
·         Every Story branch should have the latest issues fixed in this release.
o   How? à Separate Branch for Bug Fixes name it : team_fixes.
§  Create Story Branch from team_fixes branch and keep merging on regular basis.
·         Where to push a fix for Story Defects?
o   Every fix for Story Defect must be pushed in the respective team_story_x branch only.
·         Single Environment for QA to validate all these changes.
o   How? à Create team_story branch where all story (team_fixes, team_story_1…. team_story_N) and performance(team_perf) branches are merged on daily basis if those are stable. J
o   Migration and Regression will be done on single environment. (Same Target as using Single Branch Previously)
·         Jenkins/CI:
o   Run Compile & Test Execution job on individual branch.
o   If Selenium tests written have single Job for team_story branch.
Please refer below diagram for suggested Branching Strategy.


Please feel free to comment to this article for any suggestion and queries.

Tuesday, November 22, 2016

JavaScript - Why to use "var that = this;"

Now a days most of JavaScript files are following Object Oriented Approach.

In simple words, it means it is possible to call super methods using child classes.
So not to lose a reference of function which is calling other one, that is smartly getting used.

Below are good examples explaining about that to refer this:



Keep sharing….!

III
Best Regards,
Abhijeet Rathod.
------------------------------
When 'I' is replaced by 'We',
Even illness becomes wellness.
------------------------------

Thursday, September 12, 2013

Injectable Singleton - APIDesign


Using Service Loader along with Singleton Design is really not possible.
Because Service Loader always going to return new object after loading.

To overcome this following is the useful approach to design such requirement.

This is about looking for :
  • Always getting Single Object 
  • Using Service Loader
Refer:
Injectable Singleton - APIDesign

Sunday, March 17, 2013

Using style.display instead of style.visibility

Hello,

HTML-CSS-JavaScript combination is little bit tricky to non-web developers.

There are few UIs which seems to be inconsistent as we are using JavaScript to enable/disable the HTML Components.
And it takes time to find out and align all the forms.
If you are using any JavaScript and CSS combination to hide/show any components, below information may save your time. 


To maintain proper alignment of whole HTML and its elements, please use following:
Element Property
Value
style.display
'none' (To hide element)
style.display
'' (Empty string to show element)


Please try to avoid using style.display='block' and style.visibility='hidden'/'visible'/'inline' as it is affecting the CSS applied.

---
Cheers and Enjoy Scripting!
-------------------------------------------------------------------------
Alphabet 'O' stands for Opportunity,
Which is absent in 'Yesterday', Is available once in 'Today'
And thrice in 'Tomorrow' So don't think about 'Yesterday'.
-------------------------------------------------------------------------

Wednesday, September 14, 2011

Dropping all DB tables, views, indexes, sequences in one query.

Most of the time one faces the issues like one need to delete all the tables, views, indexes or sequences in the database.
So following the query which generates DROP statements for all the components present in the Oracle database:

SELECT 'DROP TABLE ' || table_name || ';' AS statement FROM user_tables
Union
SELECT 'DROP VIEW ' || view_name || ';' AS statement from user_views
Union
SELECT 'DROP INDEX ' || index_name || ';' AS statement from user_indexes
Union
SELECT 'DROP SEQUENCE ' || sequence_name || ';' AS statement from user_sequences
Union
SELECT 'DROP SYNONYM ' || SYNONYM_name || ';' AS statement from user_SYNONYMs;

Cheers :)

Tuesday, December 21, 2010

Use Productivity Tool : StrokeIt !!!

While working on various windows tired of minimizing, opening, doing various operations.
Now time to move on to StrokeIt - Mouse Gestures for Windows. : http://www.tcbmi.com/strokeit/

Want to download StrokeIt, use the following link:
http://www.tcbmi.com/strokeit/downloads.shtml

It is also FUN to use this tool using your mouse :)

To get more information about how to use and other details, check out following link:
http://www.tcbmi.com/strokeit/wiki/index.php?title=Help:Getting_started

Wednesday, February 6, 2008

Which Firefox Plug-ins are useful for developers to increase productivity?

While working with Web-Applications we need to test a lot of stuff in the browser.
As world wide most of browsers are used, I find the Mozilla firefox one of the coolest browser to use.
It is more helpful in testing your web applications, as you can install add-ons & plug ins to this browser.

I would like mentions some of the add-ons/Plug-ins for this browser which are useful for increasing your productivity & to do smart work... :)

Information of the plug ins/ add-ons have taken from their websites only, as whose product can explain well ;)


FireShot
FireShot is a Firefox extension that creates screenshots of web pages.
Unlike other extensions, this plugin provides a set of editing and annotation tools, which let users quickly modify captures and insert text and graphical annotations. Such functionality will be especially useful for web designers, testers and content reviewers.
It's possible to choose whether entire web page or only visible part of this page should be captured.
Screenshots can be uploaded to server, saved to disk (PNG, GIF, JPEG, BMP), copied to clipboard, e-mailed and sent to external editor for further processing.

FireBug
Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page

Speed up your web pages with YSlow
YSlow analyzes web pages and tells you why they're slow based on the rules for high performance web sites. YSlow is a Firefox add-on integrated with the popular Firebug web development tool.
YSlow gives you:
* Performance report card
* HTTP/HTML summary
* List of components in the page
* Tools including JSLint

Server Spy
Server Spy is a small Firefox extension that displays the brand of web servers (e.g. Apache, IIS, etc.) in the right-hand side of the browser window's status bar. When a tab is selected, Server Spy shows the name of the server that has served up the corresponding page.

LiveHttpHeaders
The goal of this project is to adds information about the HTTP headers in two ways:
* First by adding a 'Headers' tab in 'View Page Info' of a web page.
* Second by adding a tool in the 'Tools->Web Development' menu to be able to display http headers in real time (while pages are being downloaded from the Internet.
* Third by letting you edit request headers and replay an URL (beta). Look for the Replay button in the live window!

This project may be of some help for the following:
* Help debugging web application.
* See which kind of web server the remote site is using.
* See the cookies sent by remote site.

Fast Dial
Fast Dial replaces "about:blank" page with a panel of thumbnails of your favorite sites. Click on an empty cell, assign a site URL, click OK - a thumbnail will be generated for a site. You can also add sites opened in browser or existing bookmarks by right-clicking them and choosing "Add to Fast Dial" from context menu.
By checking "Group" checkbox in thumbnail properties you can create groups of nested thumbnails.

FireShot
FireShot is a Firefox extension that creates and edits screenshots of web pages.

Unlike other extensions, this plugin provides a set of editing and annotation tools, which let users quickly modify captures and insert text and graphical annotations.
Such functionality will be especially useful for web designers, testers and content reviewers.

Screenshots can be saved to disk (PNG, JPEG, BMP), copied to clipboard, e-mailed and sent to external editor for further processing.

iMacros
iMacros lets you record and replay repetitious work. iMacros programmatically interacts with any and all websites. It fills out forms and automates the download and upload of text, images, files and web pages. iMacros includes support for PDF handling, taking screenshots, simulating different user agents and connecting to proxy servers. It is the only web automation software that works with every website.

What iMacros can do?
(1) Web Automation / Web Scripting
(2) Data Extraction/Web Scraping/Web Mining/Enterprise Data Mash-Ups
(3) Web Testing
(4) Form Filler on Steroids and Password Manager
(5) iMacros as Software component

Session Manager
Session Manager saves and restores the state of all windows.
Building upon SessionStore, this extension allows you to save the current state of Firefox (history, text data, cookies) and return to that state at any later moment. Besides the manually saved states, Session Manager automatically stores the current state in case of a crash.

Web Developer
Web Developer screenshot The Web Developer extension adds a menu and a toolbar to the browser with various web developer tools. It is designed for Firefox, Flock and Seamonkey, and will run on any platform that these browsers support including Windows, Mac OS X and Linux.

DownThemAll
DownThemAll (or just dTa) is a powerful yet easy-to-use Mozilla Firefox extension that adds new advanced download capabilities to your browser.
DownThemAll lets you download all the links or images contained in a webpage and much more: you can refine your downloads by fully customizable criteria to get only what you really want.
DownThemAll is all you can desire from a download manager: it features an advanced accelerator that increases speed up to 400%, it allows you to pause and resume downloads at any time and, last but not least, it's fully integrated into your favorite browser!

Hyperwords
With Hyperwords all the text on the web becomes richly interactive: Select any word on any page and choose a command.
It's free! For more information, please have a look at the user guide or have a look at the demo. Read the reviews on Mozilla if you like.