Ramblings on Release Management August 30, 2015Posted by Edwin Ritter in Project Management.
Tags: release management, release management process, software configuration management, software development, software development lifecycle
add a comment
From a recent project, one of the lessons I learned concerns release management and who drives that process. What I find most interesting is the developers’ view that once code is checked in, the deliverable is complete. I have worked organizations that use a formal software configuration management and release management process (SCM/RM). That role can be a fully staffed position working with development teams to get code changes tested and released.
Related to this topic is environment management and configuration, the related tools and workflow to keep the organization working on the right things and at the right time. Ultimately, the changes are provided for use by external customers to meet their business needs. Let’s not forget that customers keeps the business going.
The SCM/RM process can easily be used with change control to manage the code base consistently. When the SCM/RM is not the responsibility of any single person, I submit that the developer shepherd their respective code changes through the test and release cycles. What I find lacking is ownership from developers on following that through to getting code changes released.
While my expectations are influenced by past experience, I am aware that it is naive to expect other team members will have a level of ownership and commitment consistent with mine.
So the next time there is a change, I will use my greater understanding on what is needed to keep things moving and align my expectations. A lesson learned and one that I am willing to share with others.
Comments invited on the level of effort and ownership with release management. Who drives changes through to release? Is it automated in your shop? What tools and process do you use to manage the code base?
Tags: coding, deployment methods, lifecycle, management, process, project management, projects, software, software development, software development lifecycle, software development teams, technology, tools
In my last post, I covered my recent efforts at software programming after a self-imposed hiatus. As a follow up, I wanted to talk about the development cycle. More specifically, the software development lifecycle. The most traditional development method is the Waterfall method. As it’s name implies, the lifecycle flows across phases with the result being a finished product that is tested to satisfy design requirements.
Deployment methods I have used include Waterfall and Agile among others and hybrids of these. As shown in the image, there is a feedback loop with testing that can introduce new/revised requirements. That starts the cycle over again, from the beginning. From my experience, there are two phases that seem to get short shrift. One or both of these typically get compressed due to project constraints and are sacrificed in order to stay on schedule. Those phases include Design and Test. What I have also found is that if you accelerate either of those, the project will reap a short term benefit. But, ultimately the project will not stay on track. Instead, the project will re-visit one or both phases, which causes waste, and any gains in time expected are then not delivered.
As a programmer, I admit I have squeezed several phases. My advice – whatever process you employ, don’t cheat it. Having a solid design ensures requirements are addressed and adequate testing provides confidence for success at launch. Whatever method you use, adhere to the diligence in each phase and then keep progressing forward. Each phase should be sized according to the project goal. Changes to existing code base can be minimal and have little design impact. Great! Testing should then focus on regression impact to ensure everything is working with new changes integrated cleanly.
Does your mileage match mine? Comments invited!
Ramblings on coding once again June 18, 2013Posted by Edwin Ritter in career.
Tags: coding, CSS, eclipse ide, HTML, java, java complier, jQuery, oracle java, PHP, programmer, Python, Ruby, software, software development, software development teams, technology
I learned a long time ago that being good in one thing can limit your career. I did not limit myself and have worked as a software programmer, system administrator, project manager and supervisor. I quickly learned that moving into each new role requires a change in focus and leads to new insights as to how teams interact. In each role, I have always worked with software development teams in one capacity or another.
Over the last two months, I set a goal for myself to re-new my skills (and learn new ones) in software programming. The web is so good at providing learning resources and somehow, I found my way to the CodeAcademy web site. It tracks your progress and also awards badges and points, like a video game.
The first day, I ‘earned’ 68 points and getting back into coding was easier than I thought. I started with a HTML refresher and quickly re-gained a developer frame of mind. While the tools are different since my first job, the actual coding is similar to the bike riding syndrome. I then began using the site every day and started a consecutive day coding streak.
Each day, I learned more about HTML and moved on to CSS, Java and gained insight into working with jQuery, PHP, Python and Ruby. I find an affinity to the server side apps of PHP, Ruby and Python.
My recent daily learning regimen using Codeacedemy has just ended. I worked my way through 1000 exercises over a consecutive 60 day period. On weekends and holidays, it took a concerted effort to find the time to code. During this streak, I also installed Eclipse IDE, created an account on JSFiddle and reviewed Oracle Java training also. Also a bonus, my MAC OS provides access to the java complier and Ruby via the command line as they are built in to the OS. The command line brings me back to the old days….<insert favorite old soldier story here>.
I’m not done yet and there is always more to learn. My intent here is to keep improving my skills. Having always worked with technical people, I understand the software development process from different perspectives. I also know that being able to ‘wear different hats’ is a positive and makes me more marketable.
Now that I am riding the coding bike once again, I am comfortable working on these applications as part of a development team. I also bring my experience and perspective as a project manager, supervisor and system administrator to the table. I continue to code and to learn about syntax intricacies and improving on my skills.
If you have programming skills, you may be aware of the site I used. For new programmers, it is a good place to consider – especially, since it is free. I like the Eclipse IDE (also free) and have also used DreamWeaver in the past. Oracle provides a good overview with Java also. Everyone builds their toolkit over time. I am refreshing mine and adding new ones.