Search This Blog

Loading...

30 March 2014

Training the Software Requirements Engineer

What are different type of training required for a Software Requirement Engineer?

The correct answer is, it depends. Software requirements training should fit with the type of project management used by your organization.

One type of training you don't need

Many people think a software requirements engineer should thoroughly understand programming and software engineering. Obviously, you should know something about the software engineering discipline, but knowing too much can destroy your ability to write good requirements. This happens for two reasons.

First, good requirements should ignore the technology (such as which platform or language is used). This is because requirements should not dictate the solution; they should only define the problem to be solved. Devoting too much study to the technology will bias a requirements analyst toward particular solutions. This makes consideration of alternate solutions more difficult for the design engineers.

Second, requirements elicitation is an art as much as a discipline. Managing stakeholders, conducting meetings, choosing elicitation methods, and choosing methods for representing information require strong skills in psychology and communication. Putting all your energy into learning programming languages and tricks will cost you on the human side. It would be as great a mistake as putting all your energy into market research. You need to know enough about programming to win the respect of the designers and to communicate with them, but your job is to build a bridge between the customer and the designer.

What should I wear? Well... where are you going?

Organizations that work with large systems that integrate multiple technologies tend to follow traditional Project Management and Systems Engineering methods. They use some variation of the Waterfall model, such as the V model.

For a high-level understanding of Systems Engineering requirements methods, I recommend starting with INCOSE's (International Council on Systems Engineering) Systems Engineering Body of Knowledge (SEBOK) and using the SEBOK as a guide to subjects for study. Also consider studying Model-Based Systems Engineering, one subset of traditional methods, and SysML, the modeling language used for MBSE.

Organizations that work primarily with software tend to follow Agile project management methods. In Agile environments, requirements engineers tend to go by the title Business Analyst. I recommend starting with the IIBA's (International Institute for Business Analysis) Business Analysis Body of Knowledge (BABOK) and using the BABOK as a guide to subjects for study.

Agile is a set of principles and not an actual method. I have asked for a recommendation for a book that describes the different methods (such as Scrum and Kanban) but have been told no such book exists; for each Agile method, you need to find a different book.

The requirements methods differ considerably between traditional and Agile. Traditional methods nail down requirements and then negotiate schedule and cost. Agile nails down schedule and cost and then negotiates, prioritizes, re-prioritizes, and drops requirements.

The two methods do share some of the same tools. I suggest studying Unified Modeling Language (UML). UML is not a language, but a set of graphical methods for defining requirements. The most commonly recommended book on software requirements is Software Requirements, 3rd edition, by Karl E Wiegers and Joy Beatty.

23 March 2014

Classes for Technical Writers / Communicators

Any suggestions for what further education pairs well with technical communication?
-- Nicholas
Ask the Right Question

Nicholas has asked the right question -- sort of. I don't think anybody can answer the question for him.
 
A technical communicator translates the Subject Matter Experts' (SME's) geek-speak into plain human-speak. Learning the SME's language will play a pivotal role in success. Even introductory courses in the chosen domain will dramatically shorten the learning curve once he lands a job.
 
The question omits any decision about the domain in which Nicholas will practice. When he chooses a direction, he will be better able to determine the answer for himself.
 
If Nicholas has not chosen a domain, yet, I would suggest that he visit his school's career office and the state employment office and ask, "What industries show growth potential for Technical Writers?" Once he has a list of, say, the top ten fields, he can consider which field(s) would most personally reward him.

After that, he can ask, "What subjects would best help me learn the language of the SME's in that field?"
 
Supporting Skills
An employee does not just sit down and start doing the job. Each job has supporting knowledge areas such as planning work, reporting activities, conducting meetings, and defining and adhering to ethics. A successful employee also looks ahead in the direction that the career and the profession will take. That adds soft skills, management, and industry trends to the list.
 
I will name two of the most important skills Nicholas could add to his quiver.
 
First, the most important SME in anybody's career is the boss. Learning about project management (I suggest PMP Exam Prep by Rita Mulcahey) will help Nicholas:
  • Understand how he can support his manager's success
  • Learn more about organizing his own work
  • Start his climb up the career ladder
The knowledge areas defined by project management standards can also serve as springboards into further studies.
 
Second, the ability to visually model processes and information would help Nicholas in any industry. To that end, he should familiarize himself with the Unified Modeling Language (UML). An Internet search will turn up plenty of tutorials.)
 
UML is not a language (not in my vocabulary, anyway), but rather a set of graphical styles and standards for defining and illustrating relationships between entities and for defining the processes in which entities interact. If Nicholas works in the software field or supports business processes, he will probably need to understand UML, anyway.
 
Basic Life Skills for Success in Any Technical Career
 
People normally associate project management with management and producing products, and they associate UML with software engineering, systems engineering, and business analysis. However, the set of tools these two topics would give Nicholas, and the ways of thinking that they teach, would be invaluable in almost any domain. He can study those areas while thinking about the industry he wants to work in.
 
"Professionals" distinguish themselves by continuously and independently learning. Schools lead students through semi-standardized curricula, but professionals write their own curricula. Nicholas should plan his future studies but bear in mind that:
  • he will continuously update that plan, and
  • he does not have to do all his studying now.

The Dramatic Death of Windows XP (yawn)

(Updated: 8 April 2014)

Death! Destruction! Hackers! Viruses! Despair!

For the last decade, it seems, we've heard about the impending crisis due to Microsoft discontinuing support for its 12-year old Windows XP operating system, Office XP, and Office 2003. This snippet comes from NASA's CIO:
Using Windows XP past April 8, 2014 may leave users significantly more vulnerable to viruses and malicious code. There is a high likelihood of a significant increase in attacks targeting XP users by malicious actors once support is officially discontinued.
That's pretty calm, compared to some sources.

Windows XP End of Support: A Hacker's Paradiseheartlandtechnologies.com
 
Hackers Will Feast On Windows XP Starting April 2014
invisionkc.com/

Windows XP Could Be Infected Within 10 Minutes of Support Ending
tomshardware.com
End of Windows XP support will be 'starting pistol for hackers'
telegraph.co.uk

Take a valium, breath into a paper bag, and count to ten.

Obviously, the hype will drive many to replace their XP operating systems with Windows 7 or 8. This will bring a boom in sales to Microsoft. It will also benefit computer manufacturers when people find out that Windows 7 or 8 won't run on their old computers.

In fact, it will probably benefit Apple as people who really wanted a Mac finally go through with that purchase they've been putting off.

XP still accounts for almost a third of personal computers, worldwide. The loss of support from Microsoft will eventually make XP computers a soft target for hackers. However, as the world rushes give Microsoft more of their money, XP will become less common and, therefore, a less interesting target for hackers.

XP will not suddenly become vulnerable to all viruses on April 8. Microsoft updates operating systems after weaknesses are discovered. That process of identifying and responding to new threats takes weeks to months. Since Microsoft releases its updates once per month, XP won't miss its first security update until May.

When XP misses its first security update in May, the hackers will pick apart the updates for Windows 7 and 8. Since some of the vulnerabilities in 7 and 8 date back to XP, the May update will give hackers clues about weaknesses in XP. Deciphering all that will take time. Inserting code to exploit the weaknesses into new viruses will take more time. Then they have to start distributing the viruses, and it takes more time for viruses to spread.

Microsoft stops, but not everybody stops.

Microsoft stopping its XP updates does not mean that antivirus software will stop working! Antivirus makers such as AVG and Norton will continue updating their software.

Keep Calm and Compute On

I have an old XP desktop that I use for recording audio. I generally do not use it for accessing the Internet.

On April 8, I'll make sure I have the latest updates from Microsoft. Then I'll back up the softpacks in case I need to restore the drive.

I'll order the barkeep to pour me another sarsaparilla, and pay attention to tech news. When I begin to fear that XP has become too vulnerable, all I have to do is turn off its access to the Internet. I right click on the Wireless icon and click on Disable.

(But first, I'll probably update the virus scanner one last time.)

Then, to free up disc space, I uninstall my browsers and email program. No big deal!

But, but, but... the ATMs!

On the dangerous side: I have read that all ATMs use a version of XP. I have not seen any articles describing what ATM owners intend to do about it.

However, I suspect that ATMs use Virtual Private Networks (VPNs) to communicate with bank servers. A VPN is an encrypted link, like a tunnel through the internet between two computers. A VPN would block most other Internet communications.

When was the last time you saw somebody using an ATM to browse the Web, download music, or check email? Those are the most common sources of malware. ATMs don't get exposed to viruses and hackers like our home or work computers do.

I'm sure many hackers will take up the challenge as new weaknesses in XP become known, but again, such things take time, and ATMs have a lot of security already in place.

Recurring Theme

Do you see what I'm getting at? Instead of an asteroid slamming into Earth at 20,000 miles per hour, it will be more like The Blob, creeping slowly as people run around in panic.

We have time to take steps and to figure this out.

Steps to Protect Your XP Computer

  • It is 9 PM, California time. Microsoft is still allowing me to download and install the latest security updates. If you haven't done so, open Internet Explorer, click on Tools, Windows Update. Then guide your computer through the update. I suggest using the Custom update because some of the optional updates will add to your computer's security.
  • I went to update our house guest's laptop and found that, apparently, it had been years since she had run the update. Almost 160 updates are being downloaded now. (Estimated time, almost 6 hours!)
  • Make sure your Windows Firewall is turned on.
  • Make sure your antivirus software has the latest updates and virus definition files. If you use the Internet much, make sure the antivirus software scans your computer at least weekly. If you do something that raises your suspicions, run the scan manually.
  • If you don't have an antivirus program, get one. PC Magazine's The Best Free Antivirus for 2014 names AVG and Avira Free Antivirus (2014) as the best for keeping viruses out of your system. (Look under Real-Time Protection in the article. If you have viruses already, look under the Cleaning Up the Mess.)
  • There's good news about antivirus programs: Most of the antivirus programs that support XP will be supported for another year -- even Microsoft Security Essentials. Make a mental note, though: In April 2015, you may have to replace your antivirus program with another one.
  • If you log on as the only user, you are probably the Administrator. That means that, when you run a program, it can make changes to Windows. If you are not the Administrator, you may still have admin privileges. To prevent infected Web sites from making changes to your computer, you need to log on as a regular user without Admin privileges.
  • If you are the Admin or sole user of the computer, go into the user accounts settings and create a new user (you). Make sure the new user account does not have Admin privileges.
  • If you have a secondary account but also have Admin privileges, have the Admin log in and disable your Admin privileges.
  • Although Internet Explorer is up to version 11, the latest version that supports XP is version 8. Microsoft will stop supporting IE 8. I recommend Chrome and Firefox. Install them and don't use IE unless you find a good reason to.
  • As I said above, when I begin to fear that XP has become too vulnerable, all I have to do is turn off its access to the Internet. I right click on the Wireless icon and click on Disable.

Use Google to Search for Jobs on Craigslist

You can use Google to look for jobs on Craigslist by keyword.

Go to Google.com and type

site:[the URL of the Craigslist site for the city where you want to work] [keywords]

For example,
site:goldcountry.craigslist.org/ barista coffee espresso

If you don't care where the job is, just use "craigslist.org" instead of "goldcountry.craigslist.org".

One of the advantages of this is that an employer might post a job under any of several categories. This way, you don't have to move from page to page in your search.

As another advantage, you don't have to read through all the postings that don't relate to your search.

You can get Google to send you an email alert with your search results.

Just go to www.google.com/alerts and enter your search as shown above. Then adjust the settings and click on Create Alert.

You can change the alerts and their settings by clicking on "Manage your alerts."

You can create more than one alert.

Here are some ideas:
  • Create an alert for each city or region where you would take a job. Just browse around the Craigslist site to get the URLs.
  • Instead of having Google search just Craigslist, have it search the whole internet for your name (and variations on it). This way, you can monitor your reputation.
  • If you want to keep up with the news about a particular company, you can set up an alert for it, too.

19 February 2014

Change Request Analysis or Filing the Change Request -- Which First?

As sample question for PMI's PMP exam asked, in part, whether an analysis should be performed before "raising the change request." I believe that the PMI-approved answer is that, when somebody such as the customer requests a change, the first step is always to analyze the impact.

Defining the Change Request

The answer to this question depends on how one defines submitting, filing, or "raising" a Change Request (CR). If it means submitting the request to the Change Control Board (CCB), expecting its approval, then one definitely should perform the analysis first.

However, I define filing a CR as placing it under control of the CCB. That does not mean that the entire board oversees the CR before it has been analyzed. It means that the CR is entered into a Change Request Log so it can be tracked and analyzed with adequate oversight.

Preventing Duplicated Analyses

Performing the analysis before filing the CR implies that, if the request is not practical, the Change Request may never be filed. That can cause problems.

Suppose the customer suggests a change to the Chief Engineer, and the CE does an analysis of the change. Then the customer suggests the change to the Project Manager, and he does a separate analysis. Later, one of the engineers thinks of the same change and does yet another analysis. Do you see the waste?

To avoid such waste, an organization should have a coordinator act as gatekeeper for the Change Control Board. Each Change Request (CR) should be filed with the facilitator before an analysis is performed. The coordinator can cross-reference the change against previous CRs to identify similar or duplicate analyses that have already been performed. This prevents duplicated effort. The coordinator can also suggest other resources, such as studies or subject matter experts. Or, the coordinator might create efficiency by combining the analysis with another activity.

Tracking Progress

Now, imagine that the customer asks the PM to make a change, and the PM performs an analysis, but it falls off the PM's desk into the trash can and is forgotten. Later, the customer sues the company because it did not make the requested change.

Instead, imagine that the PM filed the CR with the CCB coordinator FIRST, before analyzing the impact. The coordinator would create an entry in the Change Request Log and assign a due date for the analysis. When the due date comes, the coordinator asks the PM, "where's your analysis?"

Objective Evidence

Later, if the customer asks, "Why wasn't that change made?" the PM can ask the coordinator to look it up in the CR log. The PM finds the file number of the analysis and sends a copy of it to the customer.

Controlling the Cowboys

One last scenario: Suppose the hydraulics engineering manager falls in love with a certain change. He takes a week to perform the analysis and then files the CR with the CCB. However, the CCB has a wider perspective and wants the analysis performed by the Mechanical Engineering director in coordination with Purchasing and Manufacturing. The second analysis takes another week. If the hydraulics manager had submitted the CR to the CCB first, they could have saved a week and gotten the change approved earlier, when it was less expensive to make.

Conclusion

The PMI answer may assume that you should not bother the CCB until you have analyzed the change. However, allowing the CCB to coordinate CR analyses can reduce analysis costs, save time, create accountability for completion of CR analyses, increase the quality of the analyses, and ensure that the analyses become part of the project records.

18 January 2014

Put Off Blaming Procrastination

Work will always expands to fit the schedule.

Recent posts on the theme of procrastination, or more specifically, finishing work on deadline rather than early, have stepped on my toes. I'd like to speak up on behalf of my fellow "procrastinators."

The theme implies that people have nothing to do besides that One Task. It implies that they sit around playing games and don't have to scramble to meet multiple, simultaneous, arbitrary deadlines and then die inside when people criticize the lack of perfection.

On Time is Late -- Are you sure about that?

Before dealing with "procrastination," one should question the value of beating deadlines rather than meeting them.

The Lean principle of Pull states that early delivery can cause waste. Normally, one thinks of storage costs as waste, but doing work before it's needed presents other costs. For example, racing to complete a task might sacrifice planning, risk management, or quality. It might also cause neglect of lower-priority tasks or accelerated cost of funds.

The real schedule-waster is not procrastination. The great Time Thieves are multitasking and perfectionism.

The assignments will multiply to fill the schedule.

Multitasking eats up time by inserting course changes into the day. Human minds are not like Intel chips with four independent CPUs. It takes time to push task A into the stack, bring up task B, recall where you left off, and start making progress again. Moreover, what manager will forgive neglecting task A, which is due tomorrow, just so task B can be completed a day ahead of its due date one week from now?

The reach for perfection will stretch to the deadline.

Management teaches "procrastination" by forgetting to balance constraints. If you expect perfection in any human endeavor, expect employees to pour every available hour into quality.

Managers who want early deliveries need to increase collaboration with their reports. That means, first, avoiding micromanaging, but still sharing enough involvement to guide energies toward the right balance between progress and quality. It means, second, putting themselves in a position to say, "Stop! That's good enough," when the task reaches sufficient progress and quality.

The prevalence of multitasking and perfectionism make "procrastination" not a performance problem, but a management problem. Sure, when employees fail to adapt, it becomes a performance problem; but I caution against pointing fingers at the effects when the cause lies within Leadership's hands.

05 December 2013

Should I ask for introductions to expand my network?

Reference: Giammatteo, Giacomo. Should You Ask For Introductions on Linked in? 2 December 2013. http://nomistakes.org/ask-introductions-linked/?goback=%2Egde_1800872_member_5813661638988947460#%21

The author of the referenced article correctly state the rules, and his reasoning is solid. I recommend reading the article. It will help you understand the most common view about asking for favors when networking.

If you have 15 gazillion connections like he does, and you receive dozens of requests each day, you have to be selective. That is not selfishness; it is survival. 
I have a little over 300 connections, and I have received one request for introduction in the last four years. If I imposed the same rules, it would be terribly selfish.
 
Providing an introduction is a small favor to do. I look at the profiles, decide whether the fit is appropriate, and then (if appropriate) provide the introduction. I might even give the requester some unsolicited advice about networking etiquette.  The author does not distinguish between asking for introductions and asking for recommendations. I think that one can make an introduction without recommending the requester.
 
In the introduction, I will state to what degree I know the requester. If I do not know him, I will say so; but I will leave the receiver of the request with the freedom to look at the requester's profile and make his own decision.

Others' non-responsiveness has taught me not to ask for favors until I have developed our relationship. When I started building my LinkedIn network, I requested several introductions. I never heard back, not even a "no."

That means you have to impress your connection enough that he offers help; or you have to do him enough favors that he owes you a favor in return.

That seems manipulative. It is quite frustrating when you are just beginning to network and your need is now and desperate.

But those are "the rules."

I abide by them, but I do not impose them.

My advice to those who wish to ask for introductions follows: 
  • If they have a few dozen connections, they might be unsociable. Don't expect results. On the other hand, they might not know "the rules" yet, so it might work. Give it a try.
  • If they have a few hundred connections, wait to ask for favors until you've established a relationship (not just a connection) or done them some favors.
  • If they have thousands of connections, make sure you've established a relationship AND done them some favors.
A good network takes years to assemble. Start building yours now. Make it a hobby. Do not wait until you need it.