Showing posts with label software development. Show all posts
Showing posts with label software development. Show all posts

Monday, June 12, 2017

Upcoming speaking engagement in Washington

Hello all,

It has been a while, hasn't it?  I apologize.  I have been horribly distracted.  Now, however my attention is forced to be focused as my first professional speaking engagement is coming up.  Yay!  I'm very excited.   I hope to have a lot of fun, meet a bunch of people, and learn a heap of stuff.  When I go to these conferences, I always get a little shot in the arm from talking to people that I don't know and hearing that they are working to overcome the same obstacles and solve similar mysteries.  It really helps to know you're not the only one out there doing this work.

I will be at the BA World conference in Washington, D.C. June 19-22.  I will be speaking on the 20th.  If you're a BA and have not attended one of these, you really should.  They help you get some fresh ideas and perspectives. More than anything, they're a chance for you to think about the work and not the day to day grind.  That's a luxury some don't get at all and most of us don't get enough of.

To learn more, visit the site for the Washington conference and watch for upcoming conferences that you can join in with.

The Art of Taking A Compliment

How many of you are uncomfortable receiving public praise?  How do you generally respond when people thank you or give you praise?  Isn't it strange that the one thing humans desire greatly, to be valued, causes so much discomfort when it happens?

How did it become so?  When did we all get taught that getting a compliment isn't the best thing in the world and to be grateful for them?  I don't know about most people, but for me, I learned it when I learned that "Pride goeth before the fall."  Who thought that was a good idea?  I mean, excess pride is a bad idea.  I get that, but having reasonable pride in yourself and your work is a good thing, right?  As a female, I think that I have been given a little too much warning on having pride, especially in my work-life.  I have been taught that no one likes a person who speaks highly of themselves.  I have been taught by my managers in reviews that no one can attain the highest score for their work because you're really just doing your job, right?  It's all a lie.

When someone pays you a compliment on your work performance, they most likely really mean it.  You did something that they think deserves recognition.  To pass off their praise as not necessary or really not being earned, you're doing them an injustice, IMHO.  Instead of looking away and playing it down, look them in the eye and say "Thank you."  That's all you need to do.  You don't need to explain yourself or qualify your achievement.  Just roll with it.

If the compliment doesn't seem genuine, say "Thank you." anyway.  If someone continues to pay you insincere compliments, you should speak to them.  They're trying to butter you up for something or are hiding something about themselves by trying to distract you.  Talk to the person and see if you can figure out what's really going on.  Maybe you intimidate them, making them feel insecure.  Maybe they feel like if they praise you all the time, you'll like them.  There are as many reasons for insincere praise as there are for sincere.  Talking to people to help understand their motives can help you be a more in touch and emotionally savvy person and that is never a bad thing.

Monday, September 12, 2016

If You Want to Be a B.A., You’ve Gotta Love Data

I am frequently surprised when I meet Business Analysts who don’t have much knowledge about databases, why they’re structured in different ways for different purposes, or even how to write a select statement.  I think as analysts, we have to take some of the blame for this happening, but I also think that non-IT businesses who have an IT group often pigeon hole business analysts firmly in business and don’t foster in their BAs a need to understand data, database architecture, or any other data skills.  That’s a shame.

As Business Analysts, we work with the business teams to understand the business, the conceptual objects that are created by our business and the processes that affect them.  We also should understand how the data in the business is used today and have some ideas of how that data could be used to greater advantage in the future.  As we work on a project, we do discovery on what elements of information are needed to complete a business task.  We should understand how those information elements relate to each other and how they are comprised of various attributes.  Working through analysis on a human resources project will almost invariably ask you to create an object to represent a person.  How that person is related to an employer, other employees, benefits packages, payrolls, etc. is the stuff that data design is made for. 

Most IT shops have DBAs who will assist with the creation of tables, relationships, indexes, and all else that goes into creating the data infrastructure that supports a product.  As BAs, we are not likely to be asked to do that work ourselves.  I put it to you, however, that you must know the concepts behind data design and architecture so that you can work together with your DBA in a meaningful way.  You are going to understand the nuances of information interrelations.  You will have a good idea of what elements are most important, which data will be most frequently referenced, so you have valuable insights that will help the DBA do their jobs more effectively.  As a B.A., you can definitely add value in the data design phases of any project.

During discovery and data design, you will use data modelling.  Data modelling refers to the creation of a description of how a database is or will be structured and used.  Some common models are: Flat, hierarchical, relational, and object-relational.  These models allow you to quickly and efficiently convey to others how what objects are important in your business process and how they relate to each other.    Entity-relationship models are a very useful means to communicate those relationships.  You should also be aware that individual items of data have their own properties.  Is it a numeric field?  Is it a text field?  Is the value stored in this field always one of a predetermined set of answers?  If you don’t have a sound background in data modelling, there are many wonderful ways to learn about them, from taking a class in person to participating in a class online.  You can also find many, many websites on the topic as well as books. Please look at the end of this article for some links and suggestions.

Once you’ve conquered the art of working on the design of a database, you need to be able to work with the information.  You need to be able to recover it and manipulate it.  You need to be able to pull out pertinent information from several tables and combine the results.  For this, you need SQL.  As a BA, you need to at least be able to construct a select statement and give it criteria upon which to select and a way to sort the data.  Ultimately, it would be handy for you to know how to create a complex selection between several tables and store the results into a temporary table.  You should also understand how to update, add, and remove records.  These basic skills are relatively easy to do, once you know the ins and outs of data and relationships.  SQL script is relatively natural and easy to work with.  It just takes time and practice.  You also need a data base that you can completely muck up and not cause a problem.  If you can do that, you will be able to help your team test your software, set up specific scenarios for “what if” testing and create reports that will benefit your stakeholders.

Again, there are tons of resources out there that are free or moderately priced.  Go out and find a book about SQL. Don’t get paralyzed in choosing which “flavor” of SQL to use.  Your employer has probably chosen their database technology, go with it.  Or, you can use an open sourced database manager and learn from it.  SQL for Oracle is not drastically different from SQL for Microsoft or an open sourced system.  Making the effort to learn and being rewarded by the warm glow of learning will reinforce your effort.

You may have noticed that I haven’t even started a rant about understanding data flow within and between systems.  That’s a whole other article.  Be prepared.  Until then, happy modeling.

Resources
Coursera is a wonderful source of learning.  Courses are developed and delivered by major universities.  There is little to no charge to learn.  Visit www.coursera.org to learn more. 

EdEx is another free to low cost option for folks looking to learn about many different topics.  Visit www.edex.org and search for topics to get started.

SQLcourse.com offers an interactive SQL learning environment.  It’s pretty nifty in that you can actually interact with a SQL interpreter to do your practical work.  www.sqlcourse.com

Microsoft Virtual Academy has free on-demand courses for beginners to advanced folks.  They’re set up so that you can create lesson plans for yourself and they feed in to MS certification, if you want to go that far.  Here’s a link to the English SQL Server Courses: https://mva.microsoft.com/product-training/sql-server#!index=2&lang=1033

A great choice is the “For Dummies” series.  Do not discount these books for learning.  Amazon.com has almost every version you would want.   You can also get these books on Google Play.


The O’Reilly series of books (the ones with the interesting animals on the front) are consistently well written and very useful for different levels of users.  Amazon and Google Play are good sources.

Wednesday, July 27, 2016

Three Critical Competencies

I was talking to my husband about work the other day and reflecting upon other similar conversations when I had an epiphany.  It was one of those "It's so obvious" moments.  Whenever there are deep and continuous problems with a workplace, a product, or a project, you can boil everything down to a deficit in one or more of these things:
1.    Communication
2.    Trust
3.    Leadership



Failing to have a good communication strategy for any effort is a fast track to tragedy.  In order for any group to effectively work toward any goal, they have to understand what that goal really is.  They need to know why that goal is valuable to their organization or to their customer and how they can individually contribute to attaining that goal.  More importantly, they need to know when a change comes along, what that change is, and why that change is valuable.   Furthermore, the leaders of any effort must be able to effectively communicate to their customers.  Without a clear establishment of expectations for delivery of a project or product, the client can create a fantasy of what they're getting and build upon it as the effort progresses.  Those unrealistic expectations are not likely to be communicated to the work team until the product is presented to the customer.  Then the fruits of your organization's labor are met with a luke-warm reception, if not open hostility due to your having missed the mark, as far as the client is concerned.  A constant flow of information between work teams, leadership, and customers is crucial.  If a group's leaders founder in their communications, they will be met with confusion, frustration, anger, and resentment from both sides.



Trust is a three way relationship.  Not only do team members need to have trust in their leadership, leadership must have trust in their team members.  Open and honest communication about an effort is instrumental in building trust.  The communication must flow freely within a work group, both up and down the leadership ladder.  If team members do not feel like their leaders want to hear honest assessments of the situation, a decision, or an issue, they will shut down communication.  Leaders will then find that they are the last ones to know about problems.  They will not have input from their best advisers on the project, the people who are doing the work.  The work team whose leader does not trust them will not get the full picture of what they're trying to accomplish.  The team may not even be given an understanding of the scope and interrelationships of efforts and so make fallacious assumptions about the work and further undermine both their trust of leadership and leadership's trust in them.  To carry trust even further, the customer must be able to trust that they are getting what they have asked for and what the team has promised to deliver.  Setting realistic expectations and communicating constantly about status and deliverables will keep trust alive between the customer and the supplier.



Leadership is a quality some believe comes from a title.  This could not be further from the truth.  Leadership is seldom given and is almost always developed organically.  Work teams will naturally start to look toward those individuals who express a clear vision of how things are.  They will respect and follow the person who they feel is giving them the opportunity to succeed by providing key information on what is to be done, the goals for doing work, any supporting information, and honest acknowledgement.   They will follow the person(s) making decisions they feel are well considered and take account of different perspectives.  If a work group's managers or other leaders dither rather than decide, the team will feel rudderless since they have no definite goal and no rationale for that goal. Output will suffer and a joint effort will experience thrashing as different factions start working to their own agenda which likely will be divergent.  A more insidious risk lies in the team starting to follow poisonous leaders who can and will crop up in work groups with a power vacuum.  There is always the possibility of a person within a group who will be critical of the project, the organization, and/or leadership and offer themselves as the person speaking the truth about the situation.  

You MAY be able to limp along with communication and leadership alone, but your team(s) will not be as engaged as they could be.  Trust is the glue that binds teams and keeps them working harmoniously together.  Trust breeds frank communication of issues or risks because the team members feel that they can say the hard and unpopular things without fear of retribution.  They feel valued and invested in the work being done.  They have some skin in the game.  That's why I believe that you really must have communication, leadership, and trust in any work effort in order to succeed together.


Tuesday, July 26, 2016

Agendas - Everybody Needs One

I did a PowerPoint presentation on this some while ago and thought I'd transfer it to blog format.  Everyone seems to "know" the value of agendas but still, we all get invited to and, worse yet, set up meetings without them.  I'm guilty.  I will admit it.  We are all busy and we all are crunched for time.  I put it to you that one reason for that is wasted time attending meetings with no direction or output expected.  If we had purpose for every meeting we attended, I'm willing to bet we would not feel so pressed for time.



Agenda: n. a list of items of business to be considered and discussed at a meeting; a list or program of things to be done or addressed.  Derived from the Latin agere, which means "to do".

Agendas are about getting something done.  Whether it's making decisions, informing others, or producing an actual product, the agenda establishes expectations of completion when all is said and done.  When was the last time that you felt like the bulk of time spent in a meeting was productive or walked out of a meeting feeling accomplished?  When was the last time the converse was true?  Did either instance of meetings have agendas? Did the poor meetings use and follow their agenda?  Having and using a good agenda can help assure success and give all attendees the sense that the meeting was time well spent.

Why do you, as a meeting organizer need an agenda?  Many folks feel like they don't need an agenda.  They may feel that it cramps creativity or doesn't suit the purpose of the meeting.  Can you think of a meeting that doesn't need an agenda?



I believe that having an agenda makes sure that everyone understands why they are there in that room and what they are expected to do.  It gives them a level foundation upon which all participants can build and do the work at hand.  It allows them to focus upon the expected output for the meeting and get things done.  People won't waste time wondering why they are there and should give enough freedom to let creativity flow.  Further more, it allows a team to know when they've accomplished what they needed to get done, because they know what that is.  If a meeting does not have an expressed outcome, it is impossible to know if you accomplished anything.  If you know what you have to do, it's even possible that you can finish early and get back some time in your work day.

Meetings without clarity of purpose cost employers big money, when you look at the cost of everyone's time.  If they produce nothing, it's time wasted and money wasted.  Meetings without a clarity of purpose reinforce the attitude that meetings are not real work.  This results in people arriving late, skipping the meeting entirely, or disengaging from the task at hand by fiddling with their cell phones, doodling, or daydreaming.  No one comes to work to waste time so workers in fruitless meetings become frustrated and disengaged further from the work.

Agendas set the stage for success in the short and long term.  You know you should never embark upon a project without a plan.  Treat each meeting as a mini-project and have your agenda (plan) ready. You will be surprised at how well people start regarding your meetings.  If you give people a clarity of purpose, they will place a value on them.  They will stop dreading them.  They will stay engaged during the meeting, feel like they are contributing and generally be more engaged in the project.

A good agenda sets the plan for success.  A bad one will leave people adrift and may result in the failure to accomplish the meetings goals.  Being realistic is critical to meeting success.  If you try to cram too much into a meeting, it will fail.  You must also be sure to include everyone that is required to do the work to be done.  If making decisions, you will need to have all of the decision makers there.  You will need to present all the information, options, or ideas for consideration.  You will need to make time to hear from all of those at the meeting.  If you don't need to hear from someone, don't invite them, or make them optional attendees.  In your agenda, establish roles and responsibilities for attendees, as needed.  Advise them of these roles and responsibilities well before hand, so that they can prepare.  If you fail to do so, your meeting will come to a screeching halt and you will have an upset team member on your hands.  Time box your meeting, assigning time for each segment of the work.  Doing so gives you a tool to move the meeting along.  Stick to your timings when appropriate, but recognize when the team needs to extend a segment and let them do it, but remind them of the impact.  Start and end your meeting on time, with allowances at the beginning and ending to allow people to arrive from other meetings and depart to their next one.

Because time is money, invite only those people directly participating in or affected by the outcome of the meeting.  This is especially important for working sessions and decision making meetings.  Give attendees as much time to prepare as possible.  They need to get their work and their thoughts in line to contribute.  Be sure to communicate roles and responsibilities early too.  That way your attendees are prepared to do what is expected of them.  Also, inform the participants of the format of the meeting and the ground rules, especially if you are asking them to be active within the meeting.  By making sure that everyone knows why they're there and how to prepare and participate, everyone will provide value that will get the work done.

Remember, agendas set the stage for success.  They help the work team focus on what is to be done and ensure that the task is completed at the end of the meeting.  They help people understand their roles and the reason they are invited and they provide a plan for the activities to take place.  In the end, they're the checklist that helps you, the facilitator, know that you've guided the team to success.





Wednesday, March 30, 2016

Stress, Relief, and Benefits


Every single person I have worked with, as a BA, battles stress and anxiety.  Really, anyone in I.T. has probably experienced an acute case of either or both once in their work career.  How we handle stress is important.  It's important to us, as individuals.  We need to take care of ourselves so that we don't get sick or burned out in our jobs.  Acute stress and anxiety in a team are counter productive and can destroy a team, if it carries on long enough to become chronic.

I personally believe that we American Adults are not generally well taught how to handle stress and anxiety.  We are told to buck up, shake it off, and/or cope.  No one ever tells us how to do those things.  As a result, we just carry stress around with us as it builds and builds until you either have an explosion or you just burn out and stop caring, stop trying, and freeze up.

I believe that is why there is suddenly a great interest in Yoga, Tai Chi, meditation, and other disciplines which aim to make us more aware of our bodies and our minds.  They also generally focus on relaxation even in the midst of exercise.  This focus on relaxation in the face of doing new and sometimes challenging things is instrumental in helping a person learn to calm themselves and relax when in the presence of stress.

With this in mind, I have made it a goal to practice Yoga and yoga-ish exercise every day.  I have blocked out time in my workday (no more than 15 minutes) in order to unplug and do some yoga.  I also have the intent to do this type of break at home.  Now, it's not possible to be able to do this every day; we get smothered in work or sick, or just have no will.  Here's the important part, THAT'S OK.  What could be more horrible than heaping more stress upon yourself for not doing your de-stressing practices?  The thing that I am striving for is the concept of perfection.  As I am a mortal being, living in the mortal world, I will never reach perfection.  That's fine.  As long as I am always moving toward it and looking to the hope of future improvement, I'm reaching my goal.


Maybe we all should find our de-stressor, un-stressor, anti-stressor; pick your term.  Then, allow for that activity every day. It needs to be something small, that doesn't require a lot of special equipment or preparation.  Something that you can do upon need and at regular intervals.  What is your best way of relaxing in the face of stress?  Only you can find out.

If we can obtain the goal of a less stressed work environment, collaboration and innovation are more possible.  Those positive energy activities cry out for an unstressed environment.  Therefore, I am coming to believe that an unstressed workforce is a collaborative and innovative workforce.  I'm not saying that there should be no challenges.  I am saying that having a high level of stress on a continuous basis works against those two essential business needs and is therefore highly detrimental to any organization experiencing it.

What are your thoughts?

Monday, March 14, 2016

You Are A BUSINESS Analyst


I am a Business Analyst.

What I do is so much more than the title implies.  Systems Analyst doesn't do it justice either.  In my line of work, you must either know the business inside and out or get the skills that allow you to elicit a client's needs, wants, and pain points quickly and with a deep understanding.  Furthermore you need to be able to take those items and translate them to features and functions that the development team can create, inside the known framework and architecture inside your organization.  You need to know the up-stream and down-stream impacts on other systems and you also need to plan for the future.  When you put it all together, it's an intimidating amount of knowledge and skills.  At the end of the day, however, it's the business and their needs, wants, and pain points that drive our jobs as Business Analysts.

I have heard many great and not-so-great technical team members grousing about "If it weren't for the stupid users, our jobs would be so much easier."  In my youthful cynicism and life as a developer, that was something I could get behind.  I just wanted to get the software done. All these wants and needs and nitpicking was holding up my ability to deliver.  As I have gotten more experience and a well rounded sense of what it really takes to build good software offerings for my clients, I have come to realize that internalizing that statement and making it your battle cry is a short road to failure.

If you sit down and really think about what we do as I.T. professionals in general, it should be a very short while before the truth smacks you in the head like the cold fish of reality.  Our jobs exist, our careers exist, and really our technology exists, expressly to support the day to day processes which are needed to run a business.  Sure, a business could try to function in this day and age without technology, but I believe even the smallest of businesses would struggle to survive and definitely struggle to grow without some investment in I.T. to support and promote them.

Too often, we techie types forget these important concepts.  We just want to get the job done.  We lose sight of the fact that without the business, our jobs and our very skill and knowledge wouldn't exist.  The earliest analog computers were not created as an abstract exercise.  The Antikythera Mechanism is the earliest known analog computer that helped compute astronomical positions and therefore aid in ships' navigation.  This navigation was not undertaken for fun.  Around A.D. 100, sailing great distances was a very risky commercial and/or military activity.  Knowing where you were at any given time was the difference between loss of a ship and its cargo or a successful commercial venture.  Having the ability to understand where you were going was the difference between reaching the beach on the shores of your enemy or accidentally invading the shores of your closest ally.  When the people who built this device, and others like it, sat down to work on them, you can safely assume that business and/or military interests were on their minds.  They had to take into account all the issues and concerns associated to them while designing their mechanism.  Otherwise, their mechanism wouldn't have served any purpose except of an idle curiosity to play with and then set aside.

As Business Analysts, it is imperative to remember who drives your work.  You must listen to and empathize with your business.  A good analyst will sit down and watch users or potential users in order to see what their day is like, what matters to them, and what would make things easier.  A good analyst will work with the business to find the underlying problem(s) that are driving the request that put you there in the first place.  A great analyst will work with the business to determine and understand how best to solve those underlying problems and what mode those solutions should take.  A really great analyst will know when to suggest non-technical solutions that the business can implement with less risk and definitely less cost.  Any analyst worth their salt should then be able to take all their good business information and work with the technical team to design an efficient solution to meet all the needs and wants for the business.  Through out all this, the analyst will be an advocate for the business' interests.  Most importantly, they will realize that all of these processes, wants, and needs are the space in which your job is made.  It's where you add value for the business and help to ensure that it not only continues to function in today's world, it grows and thrives in the future.

I will grant it that there are folks out there who design write elegant code for their own satisfaction.  However, if they are paid for doing so, you can bet there was a business problem and a business process behind it all.  Remember, analysts, the business is your reason for being a Business Analyst.