Wednesday, October 20, 2004

Search Hints

It is becoming increasingly difficult to find entry level jobs in today's marketplace. I have been asking around, especially about Silicon Alley, a New York City state of mind for entrepreneur's popular during the .com era. A friend of mine Doug Blewett gave me these leads: check out the "gigs" section here and check out this place to post your resume.



If anyone else has suggestions for sources of entry level jobs in software engineering, development or related fields, posting the information in a comment would be appreciated. There are a lot of fine fledling software engineers at Stevens and other schools in the New York/Philadelphia/Boston area that would appreciate their first break. I will continue to post leads as I uncover them. Thanks and later!



Monday, October 18, 2004

Test This Site

A motif in my lectures is the lack of appreciation for testing and testers. In addition, especially in the era of outsourcing, there is simply not enough research done on testing. Since my lecture this week in the Software Engineering class is on testing, I was rummaging through my testing resources. A gem is this site, The Testing Standards Working Party, hosted by the British Computer Society's Special Interest Group in Software Testing. The site offers everything from a glossary to How To's to Papers on testing. Highly recommended!



Do you have any suggestions for testing resources? If so, add a comment mentioning them. Thanks and later!



Wednesday, October 13, 2004

Q Quest

Striving for quality in products and process must be measured quantitatively so that you know you are making progress an must be attended to daily so that you do make progress. However quality does not end there, it begins there. Continuous improvement is not a slogan, a work principle or a technique, it is a life style. Striving for quality in all aspects of your life is something we all aspire to, although it is difficult and requires focus. However even after writing those sentences the words seem hollow and do not convey an appreciation of the quest for understanding and achieving quality.



So the best I can do is recommend an author, Robert Pirsig, and his books that do a great job of exploring quality. Zen and the Art of Motorcylce Maintenance was his first book and was popular when I began graduate school and still is today. A web version of Pirsig's book can be found here, but if you find you like the book, buy the paperback to support this kind of work. His second book, Lila: An Inquiry Into Morals, continues his exploration. Both books are written as novels and take some work, but at the end you will have a better appreciation for the quest.



Any other recommended Quality books out there or any opinions on the Pirsig books. I would appreciate your comments. Later!



Tuesday, October 12, 2004

Figure to Configure

One of the simplest and most valuable software engineering methodologies/processes to implement is software configuration. It pays off time and again when you need a convenient way to reverse a change made to software, backup an entire project (since it is all in one place) or to find a file relevant to a specific project. I have a cvs repository on my notebook and all of my software code and documentation are stashed there.



Unfortunately most do not appreciate the value of configuration management until they are burned badly. In the past five years I know of two sizeable software projects that had to do substantial rework and recoding because they did not use a software configuration mechanism. Several others had problems reassembling files of projects where employees left and did not have a software configuration mechanism. All of the projects that I manage must use a software configuration mechanism and I use it for my personal software. Our current favorite is cvs, an open source solution, but there are other popular commercial and open source options available. A great place to get the latest information on configuration management tools is CM crossroads. It provides information. pointers and advice on all the latest configuration management tools. In addition, if you use cvs, the pdf of Open Source Development with CVS, third edition by Fogel and Bar is here.



If you have experience with configuration management tools or resources or question about their use, share it with the community by adding a comment. Later!



Tuesday, October 5, 2004

We have met the enemy and they are us!

An article at msnbc.com states that software disasters are often people problems. The direct link to the MSNBC article can be found here. I was referred to the article by a posting in slashdot. Quoting the article:

Such disasters are often blamed on bad software, but the cause is rarely bad programming. As systems growm more complicated, failures instead have far less technical explanations: bad management, communication or training.



Although the article confuses what software is and is not (the SAP system is software, the application software added to it is not), the points it makes are still relevant. It refers to issues with requirements, stakeholder participation, operations, testing, end user training and inhomogeneity of technical understanding. Inhomogeneity of technical understanding is a multics term for a horrible project scenario which exists when managers do not understand software technology and developers do not understand the big picture, the context in which their software would run. Unfortunately this occurs all too frequently.



The article cites a National Institute of Standards and Technology study that software bugs cost $59.5 billon each year and a third of that can be attributed to inadequate testing. The pdf for the 300+ page report,"The Economic Impacts of Inadequate Infrastructure for Software Testing," can be downloaded here.



The title of this post was a quote from the comic strip, Pogo, penned by Walt Kelly which was an adaption of an Admiral Oliver Hazard Perry quote after a naval battle. You can find more information about the context of his quote here.



As always commenst are appreciated. Later!



Monday, September 27, 2004

Useful Use Cases

Requirements elicitation and representation is always difficult, especially when the results need to be understood by two potentially diverse populations: the stakeholders (users, management, customers, ...) and the architects, designers and developers of the system. Use cases, emphasizing scenarios, are a great middle ground for representing large hunks of the requirements in a style that is both understandable to the stakeholders and specific enough for the technical community charged with architecting, designing and implementing them.



Use cases were introduced by Ivar Jacobson in his book, Object-Oriented Software Engineering: A Use Case Driven Approach, ISBN:0201544350. However, if you are not ready to purchase the book for $60, a great free resource on Use Cases is Rebecca Wirfs-Brock's OOPSLA 2002 tutorial, The Art of Writing Use Cases. You can download a copy of it here. Wirfs-Brock's site is an excellent resource for many OO requirements, design and architecture topics. Definitely worth browsing.



If any one has had experience using Use Cases or knows of further resources, I would appreciate it if you would add a comment. Later.



Monday, September 20, 2004

Reliable Advice

Attached is a description of the new edition of John Musa's book, Software Reliabilitiy Engineering: More Reliable Software Faster and Cheaper. Thanks to Professor Bernstein for forwarding John's notice to me. Software reliability is one of the key "ilities" (along with usability, enhance-ability, ...) of interest when developing a software architecture. John's book has been a classic in this area and provides the reader with tons of practical advice and even free software to deal with software reliability issues.



Has anyone else used or read Musa's book? I would be interested in your comments. Later!



Musa's description of the book:



The new edition of "Software Reliability Engineering: More Reliable Software Faster and Cheaper," now available, focuses on making software practitioners more competitive without working longer. This is a necessity in a world of globalization and outsourcing where professionals want more time for their personal lives.



John D. Musa has written what is essentially a new book. It reflects the latest software reliability engineering (SRE) practice. Reorganized and enlarged 50% to 630 pages, the material was polished by thousands of practitioners in the author's classes at a wide variety of companies worldwide.



One of the book's new features is a series of workshops for applying each area that you learn to your project. The frequently asked questions (answered, of course) were doubled to more than 700. All the popular features of the previous edition have been updated and rewritten. These include the step-by-step process summary, the glossary, the background sections, and the exercises. The user manual for the software reliability estimation program CASRE, downloadable at no charge from the Internet, reflects the latest version. The list of published articles by SRE users of their experiences now numbers more than 65. Everything is exhaustively indexed to make the most detailed topic easily accessible to those using it as a deskside reference.



The book separates basic practice from special situations for faster learning. Musa presents the material in a casual, readable style, with mathematics placed in separate background sections. All this was done to make the book especially effective for self learning. It also furnishes everything you need to implement SRE in your organization, even discussing the most effective methods of how to persuade people to adopt the practice.



One of the first Print on Demand (POD) professional books, it is coupled with a web site where you can browse and order the book. The web site has a complete detailed Table of Contents and extensive samples from the book that simulate the bookstore browsing experience. POD uses the latest automated technology to custom print each order and ship it anywhere in the world. It is as fast as you can obtain a traditionally published professional book. The cost is similar. POD technology makes it economic to keep the book in print for as long as even a handful of people want it.



Musa is one of the founders of the field of software reliability engineering. He is an IEEE Fellow and is Engineer of the Year in 2004. Listed in Who's Who in America since 1990, Musa is a prolific researcher, international consultant and teacher, and experienced and practical software developer and manager. ACM Software Engineering Notes noted for the first edition, "The author's experience in reliability engineering is apparent and his expertise is infused in the text."



The book, published by AuthorHouse, comes in hard cover and paperback editions. It contains 630 pages, including prefaces and appendices.