Skip to main content

Tag: Skills

How Generative-AI Can Help Modernize Your Legacy Software

Legacy applications, those trusty workhorses that have powered your business for years, can start to resemble a classic car.  They might be reliable, but they lack the sleek design and efficiency of newer models.  Maintaining them can be expensive, and they often struggle to keep pace with evolving security threats and changing business needs.  A study found that 70% of enterprises still grapple with legacy applications, hindering their ability to innovate and adapt. But unlike a car you can trade in, replacing these applications entirely can be a costly and disruptive endeavor.

Here’s where Generative AI swoops in, offering a revolutionary approach to legacy system modernization. Imagine a tool that can analyze your aging codebase, understand its functionality, and then generate modern, efficient code that replicates its core functionality. That’s the magic of Generative AI!

 

7 Warning Signs Your Legacy Software Needs Modernization (and How Generative AI Can Help)

1. Frequent System Crashes and Performance Issues: Legacy software, built with older technologies, might struggle with increased data volumes and user traffic. This can lead to frequent crashes, slow loading times, and a frustrating user experience.

Role of Generative AI: It can analyze code bottlenecks and suggest optimizations to improve performance. It can also help identify areas for code modernization to handle larger datasets efficiently.

 

2. Security Vulnerabilities: Outdated coding practices and unpatched vulnerabilities can leave your legacy software exposed to cyberattacks. This puts your company data and customer information at risk.

Role of Generative AI: It can analyze code for known vulnerabilities and suggest potential fixes. It can also help developers stay up-to-date on security best practices by generating code that adheres to secure coding standards.

 

3. Incompatibility with Modern Systems and Devices: Legacy applications might not integrate well with newer software and hardware, creating data silos and hindering operational efficiency.

Role of Generative AI: It can analyze APIs and suggest code modifications or generation for seamless integration with modern software development. This allows your legacy application to communicate and exchange data effectively.\

 

4. High Maintenance Costs: Maintaining legacy software can be a significant drain on resources.  Bug fixes, code updates, and compatibility issues can require a dedicated team of developers with specialized knowledge of the aging codebase.

Role of Generative AI: It can automate tasks like code documentation and code refactoring. This reduces the need for manual maintenance and frees up developers to focus on more strategic initiatives.

 

5. Lack of Features and Functionality:  Legacy applications might lack the features and functionalities of modern software, hindering your ability to compete and meet evolving customer needs.

Role of Generative AI: It can analyze user interactions and suggest improvements to the UI/UX. It can also generate code snippets for modern UI frameworks, allowing developers to create a fresh and user-friendly experience.

 

6. Difficulty in Finding Developers with Legacy Expertise: As technology advances, developers with expertise in older programming languages and frameworks become scarce. This can make it challenging to find qualified personnel to maintain and update your legacy application.

Role of Generative AI: It can bridge the knowledge gap by automatically generating code that replicates the core functionality of the legacy application. This allows developers with modern skill sets to contribute to the modernization process.

 

7. Limited Scalability: Legacy applications might not be able to scale to accommodate future growth or increased demand. This can stifle your business potential and hinder your ability to expand.

Role of Generative AI: It can analyze code for scalability bottlenecks and suggest optimizations. It can also generate code for integrating with cloud platforms that offer greater flexibility and scalability.

 

Advertisement

 

Step-by-Step Process to Modernize Legacy Software with Generative AI

Step 1: Identify Target Applications:

Begin by prioritizing which legacy applications require modernization the most. Focus on systems critical to business operations or those causing significant pain points.

Step 2: Inventory and Analyze Existing Systems:

Document your current technology stack, including programming languages, frameworks, and databases used by the legacy application. Analyze the codebase to understand its functionality and identify areas for improvement.

Step 3: Code Refactoring and Optimization:

Utilize GenAI tools to analyze the codebase and suggest automated refactoring options. This can involve removing redundant code, improving code readability, and optimizing for performance.

Step 4: Modern UI/UX Design:

Use GenAI to analyze user interactions and data to identify opportunities for improving the user interface and user experience. Generate code snippets or mockups for a modern and intuitive design.

Step 5: Incremental Modernization:

Modernize the legacy application in phases to minimize disruption and risk. Start with smaller, less critical functionalities and gradually work your way towards core components.

Step 6: Continuous Integration and Delivery (CI/CD):

Implement a CI/CD pipeline to automate code testing and deployment. This ensures rapid integration of GenAI-generated code with minimal errors.

Step 7: Monitoring and Performance Analysis:

Continuously monitor the performance of the modernized application and address any potential issues promptly. Utilize AI-powered monitoring tools for proactive problem identification.

4 Tips for Managing Ambiguity as a Business Analyst

As a business analyst, it is common to face ambiguity in many different forms and aspects. It may be the ambiguity of the business analysis approach you have chosen, the requirements, or the design decisions that you have to contribute to.

Ambiguity and constant changes are something that is expected. It’s up to you to respond constructively. The following tips may help:

 

#1- Approve Ambiguity

Although you may want to have full control over the circumstances, it will not happen. It may take time and changes in order to establish a business analysis approach to customers’ needs or understand the full aspects of the system to be developed. It is fine not to have the full picture from the beginning of the analysis journey, but it is your job to progressively clear out the context and the scope. Approve the ambiguity of the intrinsic part of the analysis.

 

#2- Mindset Shift

Ambiguity can cause plenty of negative thoughts and worries. Instead of entering into a negative, endless dialogue, try to view ambiguity as an opportunity for new approaches, for innovation, and for gaining experience. Ambiguity can cause team members frustration and challenges, as the situations triggering it are mostly out of our control. It is important to reframe biassed thinking patterns concerning ambiguity into positive ones.

 

Advertisement

 

#3- Utilizing Effective Risk Response Strategies

As a business analyst, you should cooperate with the project manager to recognize factors and assumptions that can affect the business analysis objectives. You have to understand the sources of the risk and craft alternatives you can use if those risks actually occur. Whether you are a lead business analyst or other team member, your ability to identify and respond to risks effectively will affect the team’s ability to successfully complete project tasks.

#4 – Have a Compass

Having a specific compass for ambiguous situations is essential to guiding your decisions and actions. Orienting yourself and leading your team through a period of ambiguity can be supported by a stable and valuable foundation of personal and organizational vision, mission goals, and objectives. Knowing at any time why you are doing something and what you want to achieve and being true to yourself and your team can guide you as the North Stare in unpredictable and chaotic situations.

 

By viewing ambiguity as an opportunity, you can reduce the stress imposed by an ambiguous situation, experiment with new processes and ideas, and develop your team members. Identifying a goal or value that can be used as a “compass” can contribute to avoiding actions and behaviours you will regret later.

Unveiling the Unsaid: The Power of Subtle Stakeholder Cues

When eliciting information from stakeholders, often what isn’t said can be as significant as what is said. Of course, the information that a stakeholder explicitly mentions is of crucial importance, but often there are subtle and nuanced details that aren’t obvious unless you look for them. Perhaps a stakeholder subtly pauses and looks uncomfortable and avoids answering a specific part of a question. Or perhaps they use a qualifying word like “usually” or “sometimes”. Either way, it is crucial to probe further and find out more.

 

Hearing What You Expect To Hear

Looking out for these clues is important, but is easier said than done, particularly when time is tight. When there are a number of stakeholders to speak to, it is easy to get drawn into a pattern of hearing what you expect to hear. We’ve probably all experienced this: after three people from different departments outline a process consistently, speaking to the fourth and fifth person seems like ticking a box. After all, they are going to just confirm what the first three people have described, surely?

That might be the case, but equally they might have additional insights that the original three did not. There is presumably a reason that they have been selected to participate in the elicitation activities, perhaps because they have a different perspective on things. Yet, it would be easy to let those discussions be swayed by the conversations that have happened before. To almost go on ‘autopilot’ and lead the stakeholder in a particular direction. It is worth being especially aware of those subtle cues and nuances in situations like this.

An Example

Imagine interviewing a stakeholder in a finance team about the invoice payment process. You’ve spoken to other stakeholders previously and you’re pretty sure you know the process:

“So, you get an invoice in, and as long as there’s a purchase order number on there, and as long as it’s approved, it gets scheduled for payment, is that right?”

“So, yes, mainly…. Yeah, mostly that’s it.”

 

It’d be easy to move on from this. It would be easy to assume that they are confirming some of the key decision rules (if an invoice has a purchase order number and has been approved, it gets scheduled).  But the stakeholder has added qualifying words: mainly and mostly.  These are easy to miss, but definitely require probing.

 

Probing might go like this:

“I noticed you said that this is mainly how the process works, are there other circumstances?”

“Yes, only very occasionally though. Sometimes, we get ‘proforma’ invoices that have to be paid immediately. We have a different process for those. Also, there are some cases where we pay up front by credit card. For example, booking training and conference places. That has a slightly different process too.”

 

Suddenly, a whole new set of facts becomes available. If this were a real situation, this would lead to further probing (e.g. “Are there any other times when the process operates differently?”, “Is there just one corporate credit card, and if so who is responsible for it” etc, etc).

 

Advertisement

 

Make Sure They Feel Heard

Of course, probing this way is important to ensure that nothing crucial is missed. However, genuinely listening is important for another reason too: to ensure that people actually feel heard.

If you’ve ever had the experience of speaking to someone who appears to be preoccupied, and is perhaps presuming what your responses are, you’ll know that this rarely feels great. As analysts, it’s important that we empathize with and genuinely hear what people are saying.

Listening in this way will help uncover important information. It is a crucial and often taken for granted skill, but one that we can probably all hone and improve upon!

Ego Check: The Secret Sauce of Successful Business Analysis

You’ve spent days or even weeks working through your discovery and analysis details to craft wire frames for a new application or capability. You know what your stakeholders might ask for in terms of alternatives, so you create those versions as well. The day arrives when you’re finally ready to share with business and IT, the work you’ve labored over.

 

The big meeting happens and your stakeholder destroys everything you’d worked so diligently over, ripping your heart out.

Sound familiar? Some people take this as a crushing defeat and question their choice of profession.

Don’t let this be you!

 

You need to have a thick skin in this game. As a business analyst, your role resides at the crossroads of business operations and IT solutions. Navigating the complexities and personalities of both requires not only some technical knowledge and business acumen but also a crucial personality trait — the ability to leave your ego at the door. While this notion may seem daunting at first, it stands as one of the most invaluable skills a business analyst can possess.

Bringing your ego along in conversations tends to add chaos, disrupting free-flowing communication in an environment that might already have some chaos. Setting aside your ego entails acknowledging you don’t have all the answers; that meticulously crafted strategies may necessitate revisions; and that your perspective, no matter how comprehensive, may not encapsulate the entirety of a problem or its solution.

 

Within the dynamics of a business environment, ego can often act as a hindrance, impeding effective communication. A business analyst who can restrain their ego is more amenable to guidance for research and receptive to feedback, fostering continuous learning and growth.

While criticism is frequently viewed unfavorably, it carries substantial value within a business context, serving as an indispensable tool for development when harnessed constructively. As BAs, our mission revolves around streamlining processes, enhancing capability & value, and facilitating change — tasks that demand perpetual scrutiny and re-evaluation. Feedback, including criticism, serves as a critical lense through which we refine our insights and strategies.

 

You need to be strong enough to withstand the critique to investigate what the underlying cause or comments are about. When the feedback seems overly harsh and does not feel like it is constructive, exercise what you have available to you – use your tools to continue the conversation. Start by expressing appreciation for the input. Depending on the harshness of the initial comments, this can be disarming, so utilize the connection to ask questions for feedback that could be actionable areas for your improvement.

 

Advertisement

 

In addition to seeking constructive feedback, you can also practice the agile principle of Simplicity. If you don’t quite understand what “the art of maximizing the amount of work not done” really means for a BA… it’s this; don’t spend so much time trying to produce a pristine wireframe or perfectly crafted requirement. Do enough to identify value during conversations.

While on a project or during a product increment, the initial requirements documentation is really intended to be just enough to draw out the valuable conversation to confirm understanding while narrowing in on the solution and it’s constraints to facilitate realization of the business value.

 

Internalizing feedback can obstruct the broader perspective and overall objective of the task at hand. Conversely, leveraging feedback as a means of self-improvement can significantly elevate your standing within the team, while enhancing the quality of output and fostering stronger work relationships.

Keeping your ego in check does not mean a dismissal of your ideas, opinions, or self-assurance entirely. Rather, it involves striking a balance — knowing when to advocate persistently for your ideas and when to step back, listen, and glean insights from others. For seasoned analysts, this should be second nature but it’s worth a reminder from time to time.

 

In conclusion, the absence of ego can quell the chaos, amplify your capacity to discover and comprehend the real issues, and embrace diverse perspectives to construct robust and effective solutions. Thus, resisting the urge to take criticism personally and ensuring that our egos do not overshadow the primary goal of problem-solving constitutes an trait every successful business analyst must master.

Strings Attached: The Art of Adapting Templates in Business Analysis

I’ve recently started learning to play the ukulele. I made a decision early on that I’m not interested in learning ‘properly’, I don’t want to commit to formal lessons, I just want to try a fun new hobby. For that reason, the (very little) I’ve learned has been learned largely from YouTube.

When I say I’m not learning ‘properly’, I’m really just learning chords and tabs, I’m not reading sheet music and I’m pretty much just strumming along to the YouTube videos. That is perfectly fine for what I am aiming for, I never want to be a professional, I just want to play some simplified versions of songs I know.

 

In the dim and distant past I took piano lessons. Back then I could read sheet music (in treble and bass clef), knew about timing and some of the theory behind music. That knowledge has all gone now, and I have no idea how to play a piece of sheet music on the ukulele!

Now, you probably didn’t come here to read about ukulele playing, but there is relevance here, I promise! It’s all down to application within a context.

 

From Ukuleles To BA Templates

One of the things that I see a lot on social media is people asking for (and providing) BA templates. There’s a huge draw in using a template, it means that you don’t have to start from scratch. Things like templates and checklists can be very useful to make sure there’s consistency, and to make sure things don’t get forgotten.  (I have a travel checklist for that very reason.)

Yet a template without an understanding of the underlying theory and rationale can be dangerous. It can lead to slavish adoption (“well, I need to put this diagram in, because there’s a section for it… the template is ‘best practice’ after all”).  Just like my ukulele playing will always be restricted by my lack of music theory, someone who picks up a template without understanding why the template was created that way and what techniques can potentially accompany it will likely run into issues.

 

Advertisement

 

An Example: “BRD for the Financial Services Industry”

Let’s take an entirely fictional example and imagine that somebody produces a Business Requirements Document for the Financial Services Industry.  It is pitched as a document that will likely be used in a waterfall or incremental delivery environment, and includes a context diagram, use case diagram, scenarios, functional requirements, non-functional requirements and so on.

It’s hard to criticize any of those sections, there will be times when all of those are useful. But what if the person picking it up doesn’t know what a context diagram is? Even if they do, the whole act of eliciting information to construct a context diagram is an artform in itself.

Or, what about if you’re making a tiny change to the label on a single field? Are you really going to fill in all of those sections? You might, in some circumstances, but in all probability something more lightweight would be appropriate. In fact, a prototype alone might suffice…

Of course, this is a deliberately provocative example, but I’m sure you see the point. There really is no ‘one size fits all’ in business analysis. So much is down to context, and understanding the context is key.

 

However: Templates Can Be Useful

It is worth clarifying here that I am absolutely not arguing against templates, nor am I arguing against the appropriate sharing of templates on social media. They are extremely useful, when used appropriately by skilled practitioners. They can even act as a guide to less-experienced practitioners providing this is accompanied by a desire to learn the underlying theory and techniques.

However, templates are also most useful when they are flexible. What works in one situation won’t work in all, so cut a section, or add a section! It’s important to think about the purpose of the artifact, its consumers and how persistent it is (i.e. how long it is expected to remain current for).

Like so much in change, pragmatic and intelligent application is what matters.