Skip to main content

Tag: Tips

Sprint Reviews – Learning’s from the Movies

My wife and I saw two movies over the holidays. One was The Hobbit: The Desolation of Smaug and the second was The Hunger Games: Catching Fire. Both were the second episodes in a three part series. I suspect both were shot at the same time as their concluding episodes as well.

No, this is not a movie review, although both of them were “reasonable” follow-ups to their opening episodes. But both also had a similarity—one that bugged both my wife and I very much.

Both of them left you (the audience, the customer) hanging at the end. And I’m not talking about a subtle ending that hinted at a future plot direction. I’m talking about an abrupt, no warning at all, CUT off of the movie in lieu of the next (and hopefully final) installment.

It was so abrupt that it was painful and it tainted our impressions of the overall movies. In fact, that’s all we’ve been talking about afterwards. Not so much the positives or the things we enjoyed, but how rude the ending was. How blatantly it disregarded the experience of the audience in order to tack on another episode.

But enough about that. Yes, we were unhappy, but that’s not the point of this article. It struck me that many sprint reviews are like these movies and I want to explore some things to consider for your sprint reviews or demo’s. Call it lessons learned or inspired from these two movies and movies in general.

Here are 5 things to consider when you’re executing your Sprints and planning your Demo’s:

Tell a Story

Some of the most challenging demos are where the team insists on showing everything they’ve done in the sprint AND where the work is disparate and not well connected. I’d much rather the team tell a cohesive story with their efforts for the sprint and tie it to their sprint goal. Another part of story telling is sharing the “behind the scenes” challenges and efforts. For example, how did you plan, what got in your way, how did the team swarm around the work, and how was adversity met – are all questions I might have. I’m often interested in the teamwork and trade-offs as I am in the results themselves.

Practice

I’m sure in most movies the actors don’t just “dive in” and make up their scenes and the dialogue as they go. There are storyboards, planning, and of course, the script. All go into the practice and preparation to make the story unfold in a smooth fashion. I’m not suggesting that any agile team needlessly prepare for the sprint demo, but they should be ready. Have a “script” and do a dry run if you need to. Make sure your audience experiences a strong and thoughtful demo versus your unpreparedness.

Focus on What’s Important

I’ve often heard folks complain that a movie didn’t exactly follow the book. That much of the story had been modified or cut out. I often think to myself what a move would look like if the scripts exactly followed the book. How long and how boring would it be? I think movie adaptations for books must focus on the important threads of a story. Themes matter, priority matters, and you have to be comfortable with trimming things down to their essence via “just enough” and “just in time” thinking.

Connect the Dots – Coming Attractions

One of my “pet peeves” for sprint demo’s is that they need to avoid stand-alone deliver. I like it when they connect the results in the current sprint to past AND future deliverables. Aligning with whatever release plans, roadmaps, or strategy your organization has. Another part of connecting the dots is talking about look ahead, as it relates to architecture, design, dependencies, and integrated testing. Show attendees that you’re not only delivering in the small (sprint), but that you have the “big picture” in mind.

Endings Matter

And back to my two latest movies, please realize that endings matter. You want to leave your audience fully understanding what you’ve delivered and the “big hairy business why” behind it. And you want to tease then with the future by connecting the dots forward. BUT, you want to do it with thoughtfulness and subtlety. Provide insufficient connection, and they won’t know what’s next. So they might not come to your next “performance”. But do it too heavy handed, and they might forget everything else but the hard sell at the end.

And here’s something I like to do in my Sprint Demo’s that movies can’t really do. I like to gain immediate feedback from the audience. You might try the Fist-of-Five as a quick technique to see how everyone feels about the show 😉

Wrapping Up

I continue to be amazed by the soundness of basic agile principles, ceremonies and tactics. That something as simple as a Sprint Review or Demo has so much variability in it – from doing it poorly to doing it incredibly well.

This is where the team comes into play in collaborating around and planning high-impact sprint reviews. One of the biggest mistakes a team can make is falling into a tempo of doing the same old, by-rote sprint reviews. And then wondering why attendees are falling asleep or missing in action.

Consider each Demo to be a unique presentation or movie. Give it its due and consider the above when crafting each performance. Your customers will appreciate you for it.

Stay agile my friends,
Bob.

BTW: here’s a link to a more thorough discussions I’ve had on Sprint Reviews or Demo’s:

  • Slide deck
  • Webinar
  • Blog post

all are somewhat interrelated

Don’t forget to leave your comments below.

Continuous Quality Management of Software Applications

mughdaMay19Today’s software applications are fundamentally different in nature as compared to what we have seen them till very recently. It is primarily in terms of how they are being developed, their complex architecture, variety of usage by end users, varying needs of users from the applications and its ability to sustain to big data needs. So it is of paramount importance that the applications are envisaged rightly for these needs and are ensured that it is getting rightly built throughout the life cycle phases of the same i.e. conceptualize to deployment. Continuous Application Quality Management (CAQM) is simple approach that will help all the software application teams to join hands and ensure the right application with right quality is delivered thought the life cycles. The testing team OR quality assurance team can play extremely important role in the same by providing right orchestration and collaboration of various independent teams of software development like BA, designer, architects, user experience team, QA, developers and many others. This article reveals the CAQM approach with some relevant tips and tricks of how to go about it.

CAQM is extremely powerful approach to ensure critical to quality requirements are gathered from right stakeholders and they are implemented well in an application.

What is “continuous application quality management i.e. CAQM”?

Every individual software system/application possesses unique set of quality requirements which are critical to that application. These quality requirements can be from functional perspective OR non-functional aspect as well. Most of the software projects pay attention to these quality requirements only at the time of system testing or performance testing. That is a reason that many a times software system which is functionally excellent fails to cater to the need of users as no one paid enough attention to these “critical to quality requirements” when the system was getting built. Even if there is adequate focus on to test these requirements during testing phase, it might be too late and too costly to fix the issues as cost of fixing a defect rises exponentially with each LC stage.

CAQM suggest that there should be focus on “critical to quality requirements” right from the beginning by various stakeholders involved in the application development. It also ensures that these parameters are monitored, measured through-out the life cycle of an application and corrective OR preventive actions are implemented at right time to get the application health on track.

Let me explain this concept with a simple day to day example. With this example, it would be very easy for you to relate the scenario with software application as well. Let’s say I have a mission in hand that in next 6 months I need to clear certain medical test of military entrance exams which has very stringent requirements on my health parameters. So first thing I will do is understand the “critical to quality” requirements of this entrance test i.e. the requirements in terms of health parameters like height, weight, BP, blood sugar levels, thyroid, B12 levels, vision etc. which will help me clear the test if they are in the best possible range. So I will identify the key parameters and its values that I should be attaining after 6 months. I visit my family doctor and discuss this. As he knows my medical history, he suggests 2 more parameters to track as they impact the thyroid levels. Then I conduct all the medical tests and measure the parameters. I create a plan like below in consultation with my doctor so as to reach to the target value of parameters. I also decide the frequency in which I need to measure the parameters on ongoing basis till the entrance exam date. So I create health assessment dashboard for all the parameters that are critical for me to be exactly same or better as that of target values like the one below. I have given it for couple of parameters and couple of intervals. But I need to maintain it for all parameters throughout the journey.

mugdha Table1 May20

I can also track all my parameters on a spider chart graph as shown in the diagram. It helps to get a quick understanding of where exactly I stand today and where do I need to reach.

mugdha May20

So as I have started right with identifying right health parameters, their expected target values, by consulting SMEs to understand what more should be focused. Then I am taking a stock of where am I on start of the journey so that I know how much ground is to be covered. I take necessary efforts and actions and measure the parameters on regular small intervals and take necessary course correction so as to ensure that I will achieve my targets. So with this approach likelihood of me clearing my military entrance test is more as compared to what I would have normally done. Normally one may not have gone with so much of a methodic approach and ensure regular frequency check -ups and possibly would have just checked the values before entrance tests. In such case, chances of me not clearing the tests are more as I have simply left it to my luck factor.

So essential take away from this approach is

  • Gather right requirements/parameters that are critical for our mission
  • Reach out to right set of stakeholders to understand these requirements from their perspective
  • Set target values to these parameters so that the final outcome will be the best
  • Periodically measure the values/health of the project
  • Consult subject matter experts to take corrective/preventive actions at that stage only instead of making it very late in the cycle
  • Implement action items and check its effectiveness in next interval results. If not effective, re-plan the same.

A very similar analogy can be drawn for software quality as well. Traditionally, for better software quality we just rely on system testing and performance testing just towards the end of life cycle and if something drastically wrong is found, it is almost impossible to go back and correct the same. We will still correct something and release application to production. But people may not use it because it is not serving the “critical to quality” needs of an end user.
Hence I will recommend the CAQM approach to address this issue and ensure right software is built and delivered.

CAQM is based on ISO 9126 concepts which define “Critical to Quality” requirements of any software. ISO 9126 defines various software characteristics like functionality, reliability etc. For each of the characteristics there are sub-characteristics associated like maturity and fault tolerance are sub-characteristics of reliability. For each of the sub-characteristics there are multiple metrics that can help evaluate that particular aspect of the same. One such sample metric is given below

  • TurnAround time is a metric defined under efficiency characteristics and time behavior sub-characteristic.
  • Definition: – What is the wait time the user experiences after issuing an instruction to start a group of related tasks and.
  • Formula: – T = Time at which user finished getting output results – time at which user finished placing request

A quick summary of ISO 9126 characteristics and sub-characteristics is given below for reference.

mugdha Table2 May20

But in case if your applications CTQ requirements are something other than the one mentioned in ISO 9126 model, you can include them for your application and track them.

How to implement CAQM in software development?

The below section depicts how CAQM can be implemented in a software project.

mugdha Table3 May20

Key success criteria

The key success criteria for implementing this approach is –

  • Collaborative approach – Typically the activities in CAQM demand that they need to be done in a collaborative fashion having various teams involved in as mentioned above. Every team needs to have a single vision i.e. best quality of application in optimal time to market and cost. They should be extremely open and flexible to accept the issues and problems that have occurred due to their contribution in the SDLC and should be ready to rework on it even if indicated by some other team.
  • Customer willing ness to invest extra– As these are some additional activities that are suggested on and above the basic SDLC phases activities, there should be willingness by client to spend extra money on the effort and time needed to perform these activities. The expected ROI on these investments is huge as compared to the investment made.

  • No cuts on any of the standard technical reviews of process artifacts at various life cycle stages – The approach suggested in CAQM is over and above the traditional life cycle appraisal and prevention activities. This does not recommend any cuts in the reviews/testing etc. which is part of the life cycle phases.

In absence of any one of the points below, the overall approach for CAQM will not be effective.

Conclusion

CAQM is an approach using which there can be constant focus on key health parameters of the application. Application health is monitored in multiple logical intervals and corrective/preventive actions can be taken up at right point in time.

This needs a collaborative approach for successful implementation. Though primarily it is based on ISO 9126 model, we can have any other critical to quality attributes which are specific to the application or client context. CAQM can be achieved in simple spreadsheet based tools that we can create to capture, track and create trend analysis of the data. If done in a right way and right spirit, it helps achieving great results in terms of application quality, productivity, cost and time to market.

References
1. ISO 9126 model

Productivity-Killing Monsters of Requirements and Tips to Slay Them

As a Business Analyst or Project Manager, you are on the front lines of bringing products to market that build value for your business. If you’re like most BAs, however, you spend too much time reporting status, explaining context and tracking decisions. From listening to you over the years, we’ve started the list by identifying six of the biggest challenges—or monsters—that BAs and PMs face (see list, below) but many other monsters lurk out there, slowing down your project and throwing obstacles in your way.

monsters

Example Monsters

Swoop Monster

This executive monster comes to you at the last minute with critical feedback you asked for weeks ago. Right when you’re about to move forward, she’ll swoop in to mix things up; chances are, Swoop results in more work and less time to get it done.

Rework Monster

The Rework monster pops up months after you’ve made a decision and moved forward. He wants all the details, asking you to prove who decided what was decided, when and why. Guess what happens next? You get to redo something!

CYA Monster

The CYA monster has selective memory and doesn’t remember that conversation where you both agreed on a new direction. Do you have the backup necessary answer this monster’s detailed questions?

Missing Monster

This monster is an essential contributor to your project, with a long history on your team and an ironclad memory. This monster is great… until he suddenly disappears forever with all that intelligence.

Meh Monster

Your finished product lands with a resounding… “meh” from this monster. He was expecting x, y, and z, but you delivered q, r and s. All that work you did turns out to be based on mismatched expectations so the best you could deliver is disappointment.

Cog Monster

The Cog monster blocks you from knowing the whole project, treating you like a task rabbit. She thinks as long as you do your part, and every other cog does theirs, the whole product will hum. Cog monster doesn’t understand the importance of providing context so that everyone knows what is being built and why.

Tips to Slay These Monsters

  • Give management better visibility and a continuous feedback loop to address issues before it’s too late. Be transparent and open for feedback at all phases of the project, and have frequent check-ins to get reactions early. If your team and executive staff are in the same office, this is easier to accomplish.
  • Provide full context of every decision so everyone understands the scope of the project and why. Cog monsters need your help seeing the value of context in empowering people to do their best work. This applies upstream to your stakeholders and customers so they understand what they’re getting and it applies downstream to your design, development and QA teams so they know exactly what to build and to test properly.
  • Embrace changes intelligently by connecting the dots, quickly assessing the impact and communicating updates to the right people involved automatically. As you know, we can’t talk about requirements without talking about change!
  • Break large, complex projects into smaller manageable parts, and let people filter in on what’s relevant to them. Manage project scope item by item to get work done. People naturally work on a list of a few items at a time. It’s how our brains work and we’re more productive that way.
  • Be proactive. People have selective memories. We all remember what we want to hear. What stakeholders forget is the additional things they add along the way or that you’ve had to reprioritize features as the scope evolves over time. Make sure everyone approves of the trade-offs resulting from the decisions.
  • Collaborate. New tools for managing requirements and the product delivery process can house the conversations, comments and decisions in the same place where the work takes place. Context is captured, reviews are public and nothing stays in someone’s head. Rethink the document-driven, meeting-heavy process and shift to a more modern way of working

Don’t forget to leave your comments below.

The Magic Behind Functional Requirements – Data!

For me a good day of gathering requirements is marked by a business user saying, “That’s a very good question.” In the majority of instances the trick of coming up with those questions is the same – while talking to users about their business processes, I am mentally mapping the information those processes involve to a data model.

In a previous life I was a Data Administrator. Relational database technology was new and ‘normalisation’ was a magical art. Apprentice data analysts could get to third normal form. Full data wizards understood fourth and fifth normal form. Hard to believe it now but we ran sessions with business users that focused purely on data. We asked them to put their processes out of mind and focus only on their information requirements. Our deliverables were entity/relationship models intended to support the development of enterprise-wide, reusable databases. It was a VERY painful process for all involved.

I’d estimate that data administrators (myself included) spent about 30% of their time documenting business data requirements and the other 70% debating with other data administrators about such things as naming standards, domains, and whether “Double-headed arrows,” “Crows Feet” or “A Big Dot” was the best way to represent the “Many” end of relationships on Entity/Relationship (E/R) diagrams. I really miss those days – NOT!

Fast forward twenty-something years to today. The Unified Modelling Language has morphed E/R diagrams into Class Diagrams (although Relational databases for the most part are still the norm rather than genuine Object-oriented databases). When people talk about requirements the two main types are Functional and Non-Functional. Data requirements are typically relegated to entries in a glossary or one or more E/R diagrams in an appendix.

Business users now, as then, have zero (or less) interest in looking at a data model. However, they are more than happy to be shown a screen ‘wireframe’ representing the way a system would present data to them in support of their business process. The trick, at least in my case, is applying my data perspective during discussions of these wireframes, but without using the “E” or “R” words. Most typically a screen equates to an entity (e.g. Customer, Contract, Order). So does a displayed table of items (e.g. Order Line Item, Payments). Fields in the screen (or columns in the table) either are ‘facts’ about that entity or reference some other entity (e.g. the Customer ‘named’ in an order or the Product ‘short description’ in an order line item).

OK, back to the magical source of ‘good’ questions. The basic data normalisation technique is ensuring that each attribute is a fact about the most appropriate entity. [“The key, the whole key and nothing but the key, so help me Codd.”] If not, then it is a fact about some other entity.

For example in an Order Line Item, “Quantity” is definitely a fact about the Line Item. The “Product” being ordered is a fact about that Line Item, but because there are a bunch of ‘facts’ about Products irrespective of them being ordered, there needs to be a Product entity. Users entering Line Items need a way to ‘identify the product’, and having done so the screen is populated by fields that are facts taken from the identified instance (e.g. short description, unit price). A “good question” might be, “When a Product is ordered, is the Unit Price the same in all cases, or can the unit price be different (e.g. Customer-specific price schedules)?”

Another ‘good question’ that has its basis in normalisation is, “Can that fact have multiple values at the same time (e.g. an Employee being classified as having multiple Skills)? Or the cardinality of a relationship (e.g. can a Contract involve more than one Supplier?).

If you have data analysis skills, I encourage you to apply them during requirements gathering. If you are light on data modelling skills, I encourage you to learn more about the subject. Regardless, I encourage you to keep these skills hidden from your business users and let them think you have magical abilities to ask ‘good’ questions.

Anyone else, “been there, suffered that”? If so please add any examples and/or tips for gathering requirements without diverting Business Users from their focus on their processes.

Don’t forget to leave your comments below.

The Industry Agnostic Business Analyst – Defying Market Trends

It is common within the ICT industry, to come across job advertisements listing prior domain experience as mandatory for a Business Analyst. Finance and health are among the worst culprits and those of us who have faced a position description stating ‘experience in a financial organisation is essential’ will understand exactly what I mean. Whilst prior domain experience certainly has benefits for the organisation in terms of shortening the learning curve of a Business Analyst, and getting them started faster, there are also pitfalls that organisations should be aware of and should take into consideration.

I recall my first Business Analyst position in the health industry. The organisation was looking for a Business Analyst with experience in health. Fortunately having worked with the Program Manager previously was enough to get me in the door with my proven analysis skills and experience. The clinical project I was assigned required me to work as a Business Analyst very closely with subject matter experts from Nursing and Allied Health disciplines. Naturally I was aware of my lack of domain knowledge and relied on my inherent Business Analysis skills and techniques to get up to speed quickly – document analysis was a great place to start.

To my surprise, the subject matter experts on the team commended my ability to actively listen and understand their domain to the point that I was adopted by the team as a ‘pseudo clinician.’ I received comments like ‘we are really glad you haven’t worked in health before, it means you ask the obvious questions instead of bringing your own assumptions and past experiences that may not align to how we define and do things here.’ Another comment was ‘it is so nice to not have to hear you tell us, how the place you used to work does things, and that “x” word actually means something completely different in your prior organisation.’ The take away lesson I learnt, is that the power of ignorance should not be disregarded and can actually be used as a strength to create the right frame of reference from the start, instead of having to alter perceptions brought from other ‘similar’ organisations within the industry. It is easier to create new understandings than to change those already deeply embedded.

Travelling further back to my university days, I recall a business lecturer emphasising the value of learning critical lessons from other industries that ‘do what they do best.’ For example, if you are working on a system to manage capacity within an aged care facility, why not look to the lessons learnt and finely tuned practices of the airline or hospitality industry for creative ideas and advice? The benefit of having a Business Analyst who has worked across multiple industries is that they can bring a new perspective to solving cross-industry problems. I have worked in mining and construction which many would assume is quite a contrast to health, however from a process and systems perspective, body parts and tyres are really not that different – they each need to be screened and assessed, have attributes which need to be recorded, have an acceptable range for blood pressure or tyre pressure, require monitoring and reporting.

In my current role as a Service Delivery Manager for an expert Business Analysis consultancy, I would rather hire a Business Analyst who is foremost a Business Analyst and not a health or finance industry subject matter expert. Similarly, I would take my car to a mechanic and not a motoring enthusiast. When I look for a great Business Analyst to join our highly skilled team, I look for someone who is well versed in the core competencies, skills and techniques required for the role, whether that is business process modeling, stakeholder management, use case documentation, business/functional/non-functional requirements specification, requirement traceability, business case development, enterprise analysis or workshop facilitation. The frustration however comes with placing these expert people into clients who are more focused on hiring a Business Analyst with subject matter expertise, than a Business Analyst who is great at their own job, and who brings a diverse range of experiences with them to the role. The divide between a Business Analyst and ‘the business’ needs to remain preserved – the role of the Business Analyst is to facilitate decision making and provide objective advice, however when the Business Analyst is also the subject matter expert, objectivity can be compromised and the Business Analyst may creep into decision making, or making assumptions and prioritising requirements without the business input.

With all this said, my first Business Analyst role in the health industry did assist me in some ways with my subsequent health role – for example I was familiar with software solutions used within the industry which could be applied to my later role, although it would not take long for a Business Analyst without prior health experience to also quickly come up to speed on this. My experience working with clinical stakeholders was an advantage, however the same core stakeholder management skills come into play whether proving your value and credibility to a clinician or tyre performance manager.

Many industries feel they are unique, just as many stakeholders feel their processes and requirements are very different from the next. If this were the case, it would be difficult for cross-industry process classification frameworks to exist, and Business Analysis guidelines such as the Business Analysis Body of Knowledge (BABOK) to be developed. I therefore still arrive at the conclusion that whilst prior domain knowledge does have advantages, it is certainly not everything it is promoted to be by the industry and it is not my preference in hiring someone for a role. The industry has not yet matured in this space, and those on the job hunt will share this frustration. So I urge you to keep educating the market with the benefits, as the industry agnostic Business Analyst has a lot of value to offer – as Business Analysts many of us know this, perhaps it will take the industry a while longer to catch up. However, with the modern pressures now on industry to innovate or perish, some will be more open to looking at the agnostic Business Analyst providing cross-industry innovation.

Don’t forget to leave your comments below.