2 Key Differences Between SDLC Management and ALM

People often get confused between the terms Software Development Life-cycle (SDLC) Management and Application Life-cycle Management (ALM). It is very common that the two are used interchangeably when they should not be. This is because the difference between the two acronyms (both associated closely with the life-cycle of software engineering projects) never gets highlighted well.

Wikipedia defines the two as follows:

Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.

The systems development life cycle (SDLC), or software development life cycle in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process.

According to these definitions, ALM is a process which clubs business management with software engineering and hence manages the entire life-cycle, whereas, SDLC is a process that creates information systems and hence manages the development stage only. In SDLC the business aspect is not integrated in the process. SDLC itself needs management on case basis. The differences can be brought out more clearly in two ways.

Basic difference

At the outset, ALM is considered as a superset, one that should include one or more SDLCs for any system development or software application development. ALM is a process that starts from the very beginning – from definition of the application, till implementation, maintenance and application retirement. To elaborate this, let me draw an example from warehouse management for a company who provides digitalization service for all your important documents, accessible on-demand. At the back-end, this company will need a sophisticated physical warehouse storage system for safely keeping all the documents in files and folders.

In this case building a warehouse is the application and when this company decides to build the storage warehouse, the ALM process sets-in. Next, every type of document filing will need certain parameters for storage depending upon their utility and level of criticality. Each of these file storage systems can be seen as separate projects, requiring different models of SDLCs, depending on their specific deployment needs. These file storage systems together will form the complete functionality of the warehouse.

ALM engulfs all the smaller parts which come together to make the application work, and which need their own SDLC frameworks to be developed and deployed. Each SDLC (which by itself is a process and can be seen as components of the larger whole – the application) needs separate management. ALM oversees this entire process to deliver the end user value.

In short, the gamut of the ALM is the entirety of the application right from inception of its idea till its seamless functioning to deliver the end user value. SDLC Management is management of separate SDLCs. Hence ALM and SDLC Management can be defined more appropriately as follows:

ALM is a superset which wraps together the fragmented SDLC Management as processes, and integrates them ensuring delivery of end user value and maintaining the same.

SDLC Management is the management of the processes during the development stages only for different modules/components of the application.

Difference in phases

The second way of highlighting the difference can be by pointing out to the phases where ALM and SDLC Management play their roles. ALM is associated with the management of the entire life-cycle of an application which includes development phase (and therefore, SDLC Management also) along with other phases of application’s existence, such as maintenance and retirement. SDLC Management is associated with the management of the life-cycle of the development phase only of the application. Even if there is only single development project that has to be completed to develop any application, it will entail ALM as well as SDLC Management in its life-cycle.

Do you agree? Please share your opinions here and share.

Key Practices for Agile ALM for Improving Productivity

We have been talking about Agile ALM for quite some time now. Of course we believe that the Agile ALM will become a requisite for accelerated application delivery coupled with superior software development quality. In fact, the future of application development or software engineering holds a strong case for hosted Agile ALM.

The few crucial technology trends have changed the needs of the businesses. It is a pressing need for the businesses to be able to adapt to the market changes and deliver faster to stay ahead of competition. Hence they need to build a capacity to switch to new software and place processes at a faster pace. This creates a demand for developers of the vendors or in-house teams to be more productive. This increased developer productivity can be achieved only when it is supported by appropriate processes and tools.

All these reasons not only make it necessary to use ALM by all types of businesses, it requires vendors to integrate Agile methodologies in the ALM tools and adopt some key practices to implement Agile ALM which support people and processes for improving productivity.

Traditional ALM has always enforced pre-defined standardized processes through tools and people had to adopt software development based around the processes and tools. The end result of software delivery would never be what the customer has been looking for. Though the pre-defined processes would concentrate on maintaining certain levels of quality, often it would lead to delayed production and sub-optimal delivery of software to the end-user. But the traditional method of using ALM will not work in the wake of new trends. Organizations which focus on supporting people and processes through Agile ALM will improve productivity and therefore beat the competition.

“]

A Scrum in Rugby union [Image Courtesy: www.en.wikipedia.org

More agility and impromptu strategies to evolve project specific processes is required in software development lifecycle. It is almost similar to the experiences originating from field sports.  The word Scrum (part of Agile methodologies) has actually been derived from Rugby.

Agile methodologies focus on developing processes and supporting people through tools. They focus on continuous delivery of the software so that the end-user feedback is received at early stages and the changes can be incorporated faster. It is important that Agile is combined with ALM to achieve increased developer productivity. A successful roll-out of Agile ALM requires its vendors to equip organizations by incorporating scope for following suggested vital practices. These practices are based on few of our observations and are congregated from the whitepaper – Redefining ALM with five key practices – published by ThoughtWorks Studios:

Evolve Processes

Agile ALM recognizes that the processes for two different software engineering projects cannot be same. Hence Agile ALM tools must be such that they enable the teams to discover and build their processes progressively. The Agile ALM tools must enable the teams to construct possible roll-ups for reviewing and governance which gives them a chance to reflect and improve upon their processes and also incorporate changes at short intervals that may be suggested by the stakeholders. This flexibility for continuous improvement is essential in Agile ALM tools so that the true benefits of Agile ALM are derived by the organizations implementing it.

Incorporate Heterogeneity

The second good thing about Agile ALM is that it appreciates presence of heterogeneity in different projects. For example, if an organization from Life-sciences industry wants to launch a new SaaS CRM product, then development work may happen based on loosely defined requirements. In this case, the team will need to come out with a prototype, only to improve it based on continuous feedback from a focus-group. On the other hand, if the same organization wants a feature enhancement in an existing product, then the team will have to work on very strict defined processes. Therefore, heterogeneity of situations makes it necessary that the Agile ALM tools also embrace heterogeneity so as to let different teams evaluate and build their own processes.

Collaborative Approach to Management

Flexibility to evolve processes under heterogeneous projects also facilitates collaboration among the team members and stakeholders at every stage of the software lifecycle. The collaborative approach of Agile ALM ensures continuous delivery of features weekly or even daily. It makes sure that the end product does not deviate from the requirements laid down by the end-users. Agile ALM tools should facilitate orchestrating of the entire development lifecycle, instead of stiffening the teams with pre-defined processes that come with traditional ALM tools.

What do you think should be a part of best practices for rolling-out Agile ALM in organizations? Please share your thoughts.

Cloud ALM – An Enterprise Market Disruption Strategy for SMEs?

The biggest problem that SMEs face today is that the playing field is not leveled for them. SMEs typically take a beat from the large enterprises at the technology and the scalability front. Due to lack of up-to-date technology and constraints for scaling up rapidly, SMEs always find expanding their business as the real challenge.

The high upfront cost of buying licenses for owning the IT or getting customized software application developed does not permit the small players to automate processes completely and competitively. Yet the ALM as a process is necessary requirement even for the SMEs to be competitive in the future. This argument will be understood in much stronger way if you refer to the following two articles:

  1. Application Lifecycle Management through Cloud and Agile – A Case for Hosted Agile ALM
  2. Rise of Developer Platforms – A Paradigm Shift

Historically, software development has grown more complex and the tasks involved have developed the need to automate the complete software development cycle. Early on, the automation started with development of tools to control and manage source code versions, based on the Source Code Control System (SCCS). Software development needs further evolved and gave shape to Integrated Development Environments (IDEs). All these efforts were to automate and integrate the features of the SDLC and thereby maximize the productivity of developers.

Moving on, the software development has further felt the need to integrate other stages outside the core of software development but which are closely involved in shaping an application. These are requirements gathering, architecture designing, deployment and management, and these together form the basis for Application Lifecycle Management (ALM).

ALM does not happen as a single step in a single instance, but it happens at various stages engulfing the traditional SDLC and reaching beyond. In order to automate the processes SMEs usually invest in buying tools that fit best in their overall ALM strategy and then try to integrate them. But wouldn’t it be better if the ALM functionalities required for automation were built in a single platform and that was also available in cloud?

So, can ALM Platforms in the cloud bring the change that the SMEs are looking for? Yes, certainly it can. It can level the playing field for the SMEs. Since cloud computing provides reduced cost of using technology, it can be the answer to the prayers of many SMEs. Here are some benefits why I think Cloud ALM will be the business disruption strategy for SMEs:

Low Capital Investment

Utilizing IT services on pay-per-use reduces the upfront capital investment drastically as utilizing IT in the cloud comes at a fraction of the cost of buying on-premise IT infrastructure. It releases much of your budget for other business functions. This gives plenty of scope for the SMEs to become more competitive vis-à-vis the larger enterprises.

Improved Productivity

ALM tools, which integrate the complete application lifecycle and make application development a more managed business process, enable SMEs to improve the developer productivity. The developers can focus more on business requirements and programming than on mode switching due to use of disconnected tools for various processes in the entire application lifecycle. As explained in the earlier point, the ALM tools in the cloud can further add to the appeal – improve operational efficiencies of the SMEs – to make it a tool of top choice.

Robust Scalability

Most of the time SMEs are not able to scale up and hence they lose business to larger enterprises. Since business is variable and uncertain, SMEs would not want to invest further if there is no certainty of long-term ROI. With hosted ALM tools it becomes easy to scale-up because cloud gives you the option of scaling up or down as per your business requirements with just a click of a button. So you need not invest heavily just for scaling up for one of your customers by opting for traditional way of owning IT.

Our team at BootStrapToday has done immense research on software development and, coupled with our own programming experiences, have integrated features like Version Control, Tracking System, Milestones, Git & Subversion Hosting, and Knowledge Repository, and have weaved intelligence in our ALM Platform. We are developing an Integrated and Intelligent ALM platform for complete project management, and which is already available as SaaS and has an option for in house set-up also.

What is your take? How do you think ALM will chart the future of software development? Share your thoughts here.

Application Lifecycle Management through Agile and Cloud – A Case for Hosted Agile ALM

Application Lifecycle Management (ALM) has evolved through years and is going to witness a landmark change in its form 2012 onwards. ALM, by definition, is a process of managing the entire lifecycle of software engineering through governance at various stages. These stages of software engineering include requirements gathering, architecture designing, coding, testing, debugging, and release management. The ALM is actively supported by tools and is said to improve developer productivity and software quality as the team follows best practices throughout the software development lifecycle.

ALM is seen best accepted by organizations dealing with larger projects (i.e., the large enterprises), and does not sell very well with the SMEs. But once the ALM tools are offered as SaaS Agile ALMs, the resistance by SMEs in adopting ALM will reduce.

Since ALM is a process it continues to evolve. The best practices keep getting introduced as part of ALM processes. Agile methodologies are also now into mainstream with various styles of its adoption into application development lifecycles by various organizations. It has been noted that the Agile methodologies should be integrated into the ALM processes in order to bring about a combined synergic value (following the dogma of ‘the whole is greater than the sum of its parts’ by Aristotle) for increasing developer productivity and software quality along with reduced time to the project release.

The biggest problem of available ALM stack solutions is that they are too tool-heavy. Agile integration with ALM tools will be beneficial only when there is flawless horizontal and vertical automation. In the era where the case for embedded software development in hi-tech devices and smart mobile devices is gaining high momentum, Agile methodologies are in great demand. Organizations can see clear benefits of engaging with Agile methodologies for their multifaceted software development. Naturally this pull – being from the demand side – has drawn Agile into mainstream computing. This trend has also brought a paradigm shift in development industry and has given rise to the developer platforms in the cloud.

Agile adoption, which is also akin to Just-In-Time (JIT) concept of production (evolved in manufacturing segment), will especially benefit in a scenario where the stack consists of hosted developer platforms with automated and integrated IDEs, and integration with SaaS ALM tools. The true automation of processes is optimally feasible only through cloud solutions. Hosted developer platforms and the need for one-point solution for Agile ALM will force vendors to come up with service models in the cloud providing business value to their customers. We will see emergence of many Agile ALM tools in the near future as the most widely accepted way to application development.

Demand for mobile development environments is also on exponential growth. The iPhone, iPad (supported by iOS) and other smart mobile devices supported by Android have opened up many possibilities in application development. Many large enterprises encourage the distributed work culture and use of smart mobile devices in order to improve their productivity and keep costs at bay. There is growing trend where employees have a say in defining their work schedules. This creates a need to stay connected (almost always) and for effective collaboration for managing projects. It also creates a need for more enterprise applications that are deployable on mobile devices.

Such work trends will necessitate adoption of both processes – Agile and ALM – in hosted environments for managing projects with higher development velocity and higher individual productivity. Vendors in ALM market will now offer solutions with Agile methodologies integrated with the ALM tools and they cannot be shy of hosting them in the cloud. Clearly, there is a strong case emerging for hosted Agile ALM in the near future.

What do you think of it? Please share your thoughts.

5 Crucial Technology Development Trends in 2012

Image Courtesy: www.FreeDigitalPhotos.net

In about a fortnight we will adieu 2011 goodbye. Whereas the year 2011 saw many progresses in spheres of cloud computing and technology for enriching user experience on smartphones and other mobile devices, the year 2012 promises to take these developments to a higher plane. According to me, some of the important areas for significant developments in 2012 are:

1. HTML5

HTML5 is the fifth version of the HTML standards that were created for structuring and presenting the content on the World Wide Web. It is being developed to support multimedia content on the internet especially for the changing hardware preferences for accessing the internet. HTML5 tries to support multimedia content on browsers for low powered devices such as smart phones and tablet computers. It has also been seen as a potential mark-up language for developing web apps cutting down the cross-platform mobile app development and compatibility issues. HTML5 was the reason for Adobe to drop development of flash technology for mobile devices. Though it is still under continuous development, HTML5 will be most in demand especially that browsing on the mobile phones and other low powered internet-enabled mobile devices is gaining popularity.

If you still have a doubt, then consider this. According to news published in Silicon.com, freelance website Elance noted a 238 per cent y-o-y increase in demand for HTML5 skills in year 2011.

2. Cloud Security

Year 2011 has been the year which has seen surge in popularity of cloud computing as the de-facto way of utilizing IT services, as well as surge in use of internet enabled mobile devices. The year 2011 has witnessed many cloud service providers foray into the mainstream. IT service consumers have either started consuming cloud services (SaaS being the most widely adopted) or have the plan in their overall business strategies to migrate to the cloud.

In a report IDC predicts that 80% of new commercial enterprise applications will be deployed on cloud platforms in 2012. With such a cascading effect, the data generated in the cloud will increase multi-fold. Managing, accessing, storing and securing data in the cloud will now take the precedence. Data security and storage in the cloud will be the key trends to watch for in 2012.

3. Mobile Cloud

With increased use of mobile devices and almost an accepted norm of IT as ‘consumerism’ through cloud computing, it is not a distant future that the ‘mobile cloud’ will become the focus for many entrepreneurial activities, as well as the strategic area of investment by many cloud service providers. ‘Mobile cloud’ simply means that the access point for cloud applications will be the internet enabled mobile devices. This will be a very strategic point of focus in 2012 to capture market share especially for SaaS providers.

This segment is getting support from continuous development of HTML5 which is an advanced technology for web browsers to support latest multimedia in smart phones, feature phones, tablets and other computers. Simultaneously this creates a strong demand for improvement in mobile data security. In a report IDC says that they believe that by 2013, 90% of the smart phones and tablets will be able to support HTML5 capable web browsers. Also, according to a news article published in Silicon.com, 15% of the apps set to be launched in 2012 are HTML5 web apps already.

With such evolutions and mobility in work as the preferred choice, ‘mobile cloud’ will see important activities in 2012.

4. Agile ALM

Agile ALM will be more widely accepted in the year 2012 as the developers seek to collaborate and work together for increasing their productivity and cutting down the project turn-around time.  Cloud computing has brought in more demand for the web-based tools such as integrated IDEs and ALMs which can support the Agile Methodologies. Software development with collaboration (among various teams, customers and vendors), and automation will be another key element in 2012.

5. Data Analytics

Till about recently the importance of data crunching and analytics was not felt with a pressing need. But with social media gaining importance as the indispensable marketing tool and the concept of Vertical Ad Networks, the advertisers are leaning more towards gathering relevant data and using analytics to target the right set of audience. Not only is data analytics important in business functions such as advertising, inventory management and demand forecasting,  it can prove beneficial even for security purposes such as ‘pre-crime detection’.

Image Credit: http://www.freedigitalphotos.net/images/view_photog.php?photogid=721

 

 

5 Deadly Risks In Project Management

Any mission which can be divided into concrete tasks and needs human involvement to perform those tasks can be termed as a project.  The human intervention calls for collaboration, allocation of resources and flow of information and data which actually requires management. There are many different kinds of projects and these vary across the verticals.

Though the type of projects may vary across industries, they are primarily based on same fundamentals. Broadly, any project works around the same areas starting with the scope, technology requirement, people, budget and duration. The iterations within each area define the project tasks and if not done properly can lead to dangerous risks developing through the project’s lifecycle.

According to a study done in 2004 (along ten years of IT projects in the US), by Standish Group International Inc., about 18% of the projects failed, 53% were over time or budget and only 29% succeeded. The low rate of success can be attributed mainly to certain approaches in project management which increase the risk of failure. To avoid project doom, it is important to understand the risks that get generated, often unconsciously, in project management. I will try to illustrate these inadvertent risks with projects carried out in the IT industry.

1. Errors in Estimation

When the planning and estimation of any project does not closely involve the business and the development teams, there are bound to be many reasons which could disrupt the schedule of the entire projects. Any disruption in one of the areas cascades as risks in subsequent steps, thereby derailing the entire project. Naturally, this will affect the delivery and you will end up with an unhappy customer who will (next time) approach your competitor. And if you happen to be a start-up, then you would have dug your own grave.

In order to avoid errors in scheduling, it is important that the Business Teams (end-users) work closely with the Business Analyst, the Project Manager(s) and the Project Architect. These four domain specialists should work in coherence with each other. The Project Manager in turn must work with the Development Team and the Testing Team. There should also be Subject Matter Experts (SMEs) who can be involved during the planning and estimation stage in order to understand the Business Requirements more clearly. Planning and estimation should be very carefully done passing through many iterations in order to reach near perfection.

To avoid increasing number of iterations it is best to bring in the experience from similar projects implemented in the past. It is also advisable to use smart application management (ALM) tools in order to avoid project failure.

2. Requirements Overload

The error in requirements gathering, planning and estimation will disrupt the schedule at every step of the projects lifecycle. If many features keep getting added later during the development phases it will translate into the risk of requirements ‘overload’. Obviously the project will trip at many places through its lifecycle.

3. Lack of Project Charter

Many a time documentation work is relegated or postponed simply because it is less appealing and considered more clerical. But Project Managers fail to understand that as the project progresses through its lifecycle, proper documentation should also be done simultaneously. The most dangerous thing that can happen is when one of the core team members quits the organization during a critical phase. If there is no proper documentation then the critical information will go away with that outgoing team member. Obviously, this will lead to the risk of wasting essential resource of time.

4. Integration Anomalies

The fourth type of risk is aggravated more as a result factor of the first three anomalies.  Right from the beginning, if you keep taking these deadly risks, then the side effects will certainly surface by the integration stage. There might have been some conflicting assumptions that would have been formed during the race against time. Later, the integration and testing will bomb and the project would have over- shot the budget and timeline by then.

5. Lesser Productivity during Early Stages

If you have schedules in your project with longer deadlines for various milestones, then usually the initial stages suffer with lesser productivity.  This is another deadly risk which the team takes unconsciously. It leads to pile-up of uncompleted tasks pushing them more towards the later stages. Hence, the experts advise on having shorter duration milestones as it becomes more manageable. Shorter durations always generate a sense of urgency among the team members as the deadlines are always ‘seemingly’ close. This helps in tasks usually being completed on schedule.

ALM and the Future Trends

Similar to the evolution of any concept, ALM (Application Lifecycle Management) is also evolving either to include larger definitions or to address several different problems and include specializations. As the concept gains acceptance with the developers there will be obvious ‘requirements’ demand that will gain importance. Iterative and incremental development will be the new rule especially with the hosted application tools. ALM SaaS players who can bundle these demands faster for added functionalities based on the needs felt by the developer community will have the competitive edge.

In case of ALM, the functional capability of bundling Dev Ops with the tools is highly debatable as of now and in future may be made as a part and parcel of any ALM tool. ALM has now evolved into ALM 2.0 standards to make entire software development lifecycle more as a managed business process. New disciplines are being added in order to bring software development closer to the business. The hosted application service of SaaS being the most widely accepted cloud computing category will enforce the iterative development of ALM as SaaS and will see the following trends:

  • Convergence of Open Source, PaaS and ALM SaaS

With more and more use of open source technologies, there will be a demand on integration of ALM capabilities and hosting applications on PaaS. There will be a demand on new set of requirements on ALM tools and connection between deployment and developers workstation. Developers will demand integration of running the application and the lifecycle management tools to manage it. Convergence with application hosting and ALM tools will drive the ALM market. Any ALM tool which will be available as SaaS model will have to ensure agility and seamless integration with hosted platform services as well. The lean organizations who would want to utilise the cloud benefits might very well structure their entire IT in the cloud which can include all three – IaaS, PaaS and SaaS. So, the SME market (which is by far the largest market segment in any economy per se) will drive the demand for SaaS ALMs which are agile, support ALM 2.0 standards so that software development is more like a managed business process, provide integration with other PaaS and IaaS tools and provide specific problem solutions to specific segment and discipline.

  • ALM SaaS as de facto Model for Developers

Cloud computing not just offers convenience but it is more like lifestyle change for the developer community. ALM as SaaS will be the de facto life style for managing software development in the future. This would primarily be for two reasons:

  1. There is a constant need to provide software with more efficient functionality which needs better understanding of the business requirements. Since ALM SaaS will manage the software development lifecycle in the cloud with continuous integration and traceability in the real time, the developers will be able to focus more on business requirement gathering.
  2. As explained above the convergence of many other technologies will drive the demand for efficient integration requirements for the ALM SaaS tools. And this coupled with the cost advantage that the SaaS offers, ALM as SaaS may well turn into the de facto lifecycle management with the developers cutting across the verticals.
  •  ALM SaaS as a Lever for Faster Delivery and Continuous Integration

In today’s fast paced changing market scape, the fast delivery of services give an edge to the businesses. Similarly for software application development, faster turnout is a necessity. Efficient ALM tools can provide easy management of the development lifecycle facilitating traceability for coding, testing, requirement gathering and release management etc., minimizing the follow-up bug fixing efforts. Imagine an enterprise with about more than a thousand developers. There will be foreseeable issues regarding the time and cost involved in tracing back the issues and fixing them. ALMs which address specific problems will be needed in such cases. And if these ALM tools are provided as SaaS which have cost advantages, faster delivery and almost instant scalability feature too, the larger enterprises will find ALM SaaS as helpful lever just as the smaller startups or the SMEs do.

Follow

Get every new post delivered to your Inbox.

Join 41 other followers