Saturday, December 26, 2009
Standard build process using Make & Ant- Part 1
A simple build can be started from a command line simply by executing 2 statements- one for compiling and another one for linking. But as the software grows and consist of many modules, dependencies get created and a sequence of commands are required to be executed. Additionally, we needed to add pre and post actions around the calls to the compilers such as a check-out from version control or copying of deployable objects to a test location.
Make & Ant make it happen in a standardized way. Ant does the same thing for Java environment what make does for C++. Ant is a platform-independent (like Java) scripting tool that lets you construct your build scripts using many built-in commends like delete, jar, get, mkdir, exec and copydir.
Another basic difference between Ant and Make is that Ant uses XML (build.xml) to describe the build process and its dependencies, whereas Make has its Makefile format.
Friday, September 25, 2009
Best approach to prepare install patch for an enterprise application
If your enterprise is too complex to be handled by general InstallShield settings and you feel the need to modify the install script but worried to mess it up. You can try this- Launch a separate script written in any Windows Automation Languages (AutoIT or Auto Hotkey) during installation and let that script handle the rest. This approach is pretty useful because these windows automation scripting languages can do anything with windows we can think of, I mean anything. I have successfully tried this approach for over 2 years. Suggestions are welcome .
Sunday, August 23, 2009
Why working for Cisco is so great?
VPN is wonderful- It feels so satisfying reading your mails on your office laptop using VPN even if you are on vacations siting 2500 KM from office. It gives me the feeling that I am not missing any update.
Responsible reporting- Weekly Update meetings with Cisco managers give feeling of responsibility. Apart from cultivating professional attitude, it feels good while interacting with so important and influential people around the globe.
Cisco's resources- Knowledge-rich resources enables you to work with more confidence. Ranging from online technical resources to industry updates mailer, everything is so perfect that it feels working in a truly world class organizations.
Wonderful people- Fortunately I have some of the best skilled engineers and most professional managers to work with. Learning from an old-timer expert and reporting to such great managers equips me with professional aptitude.
World class infrastructure of Infosys- It adds moon to the night when I hit the beautiful pool side gym in the evening after hard day's work. I feel proud walking in the rain sometimes on wide beautiful roads laid in the green campus of Infosys.
All these things coupled with other numerous untold facts add enthusiasm to life and my work here in Infosys for Cisco.
Friday, February 27, 2009
Release Management: Central Function or Dispersed?
Mr. Andrew, Build and Release Manager at Marks and Spencer asked a question about the release management on my LinkedIn professional group. I think this is the question on the mind of many release managers. Following is his question and my subsequent answer. There were some other beautifully crafted answers to the question but here I am presenting only my answer.
Andrew's Question: Hi, I'm trying to understand what is the best practice for Release Management in a very large organization. Currently I have a central team of about 25 Release Managers that manage releases throughout the entire lifecycle (into System Test, System Integration Test, User Acceptance Test, Operational Acceptance Test and Production).
However, I'm not sure if this is the best model for the business. My development colleagues have suggested that releases into System Test (not int. test) may be better controlled via the Development Teams, thus increasing release turn-a-round (less red tape!), although this brings concerns of control, environment access, etc, etc, into my mind.
I'd like to canvass ideas and thoughts around this please. Many thanks in advance of your support, Andrew
My Answer: There is no single model that fits for all but I don't think releases into system test can be controlled via development team in an efficient way. In fact such a move can divert the development team from their core function along.
Assuming release manager as a single point of contact in your organization, transferring such work to development team could bring a situation of uncertainty amongst people requiring a release. Depending on the size of organization, there will be a number of people looking for the right point of contact for their release requirement/advice along with the nightmare of tracing the culprit if anything goes wrong.
Sunday, December 21, 2008
Assuming the ultimate responsibility of Build Release Engineer
One article which I liked the most was concentrating on "Taking Ultimate responsibility". When a reader reads an article, he relates it to himself and that's what I did. I don't remember the exact article but I will summarize the content and how it is related to my work.
When I reach office, I generally have 9-10 tasks at my end waiting for my actions, these may be mails awaiting my response, regular builds awaited to be monitored, regular merge notification response queries from various teams. As per the article, it is my ultimate responsibility to address them without even considering the level of effort and recognition.
First thing should be to priorities them and note down at daily planner and if possible assign deadlines to them. Being a build and release engineer, I should go one step ahead of my defined role of releasing the builds, it should include maintaining consistent bug deadline monitoring and resolving inter-team defects conflicts. That's how we take "Ultimate Responsibility".
Saturday, November 8, 2008
Build/Release Engineers will turn into Build/Release Consultants
So my point is here that future software industry will see more Release Consultant then Release Engineer. This way software companies will be further improving their productivity by automating their release management activities, anyway with the help of Release Consultants.
There is a free webinar from Electric Cloud, the build automation experts here.
Wednesday, November 5, 2008
What is the future of Build and Release Engineer? Part-2
He says- I'm creating software since 1981 and have never felt any need for a dedicated build/release engineer. Regardless of the language used.
Don't confuse build/release with deployment/operations. For the latter you certainly want to have a dedicated team to fulfill these functions.
In agile development you should have an automated build that never - under no circumstances - takes more than 10 minutes to finish and doesn't depend on any infrastructure. So "building" is just a matter of checking out the code from the repository on a virgin machine and then you start the build. If you have to setup the environment, install a database or whatever else, then you are asking for trouble. Don't do this.
I've seen build/release engineers at clients who were just acting as a roadblock to developers. These guys usually make things complicated just to protect their job. That's not in the interest of the development team neither of the company they work for.
A good build is simple, requires no maintenance and everybody on the team is responsible to execute it multiple times a day to run all the tests before submitting new code. And developers should not sit on code either but integrate frequently and early.
