The Pragmatic Craftsman :: Simplicity from complexity : by Stanley Kubasek ::

Evans — Getting From Use Cases to Code

This is as good of an article on requirements as I’ve ever read. It is 20 pages long, but you should make effort to read it. The article comes from Gary Evans (very good writer) and it was published in July 2004 edition of The Rational Edge. (I have been subscribed to Rational Edge (free) e-zine for couple of months now, and it is one of the best publications that I read.)

Evans tells you how to get from a start of a project — gathering requirements — to the point where you can write code. What’s different about Evans than the other writers is that he takes you along step by step and shows you an easy example as he explains something. Very good job, Evans. So, he first tells you about use cases, and shows you how to write one. Then he goes on and takes you through a step of finding classes from the use case. Next is seeing the interaction between the classes through an UML class diagram and a sequence diagram. After that, you add attributes to it and you are almost ready to code.

Almost ready, because this was only part I of the series. The second is coming next month. But even without the second it would be quite easy to go from the diagrams to code. I really enjoyed the article. See more about the author on Evanetics.com

Stas on Software-Eng

OK, you might have noticed that I have been changing, rearranging stuff on this blog: first it was called tech.pal, then Stas on IT, and now Stas on Software-Eng. Hey, Stas, can’t you settle on something and stop changing it. The problem with that is until now, I hope, I couldn’t. This is similar to designing software: your first attempt will almost never be correct. Only after you refine it, rethink it, and rework it, you will have the optimal solution. I think I got it after couple of trials. I’m going to call it Stas on Software-Eng. Why? There are couple of reasons.

First, and this is what inspired me to change it, is that I wanted a variation of the very successful Joel on Software blog. I wanted to call it Stas on Software but I wanted to be a little more original, so I compromised and I chose Stas on Software-Eng. So far so good, I’m happy :-) ))

Second, and this is the bottom line, Software Engineering is my specialization, my passion, and my future (I sure hope so) — I have a B.S in Computer Science and an M.S. in Computer Science with a specialization in Software Engineering. So Software Engineering is of great interest to me. And it will be for as long as I can make a living out of it. And for as long as I’m going to enjoy writing software. Hopefully for as long as I live.

So you know why I chose the name, now I’ll tell you what I want to talk about in it. I’m still a fairly inexperienced software developer: I’m 26 — turned 26 last week :-) — with around 4 years of software-development experience. My goal is to become a true software craftsman, sort of an all-star developer. I know this is going to be a long journey and it is not going to be easy. But I am going to become one because I’m commited to it, and I’ve always achieved my goals (and that’s my goal). I want to share my experiences in the journey: what I’m doing; what I want to do; what works; what doesn’t work; what I like and don’t like; my views on software engineering; and more. Basically, I want to talk about any software-engineering issue, with the main theme of becoming a master craftsman.

Software Engineering Principles

Parse error: syntax error, unexpected ‘http’ (T_STRING) in /srv/www/kubasek.com/public_html/wp-content/plugins/php-execution-plugin/includes/class.php_execution.php(273) : eval()’d code on line 1

Joel on Software

JoelOnSofware.com: this is a very good, very well-written blog about software development with a concentration on managing the development process. Joel has some great essays on Painless Functional Specifications: A series of articles on writing functional specifications. If you’re involved in software development and don’t write specs, he’ll probably convince you that you should — in the end, you’re hurting yourself and wasting time if you don’t (but still a lot of us don’t write it!).

The Joel Test gives you a pretty good indication where your software team, and company, is. The Archive section gives you a bigger picture of what he’s written about.

Read the blog and improve your software development! I know I’m going to be reading it and I recommend it to any software developer/engineer and project manager.

Joel started a company, Fog Creek, recently, that looks very enticing — I would definitely would want to work for his company. Check out the about page and see for yourself. I wish more CEOs were looking out for programmers as much as he is. We would develop better software (that’s a proved fact)!

IT — Occupational Outlook Handbook 2004/2005

This is a pretty good, useful resource if you’re involved in IT, or planning to become. This handbook shows Computer occupations, their outlook, stats, what to look for and more. Plus, it’s coming from the U.S. Department of Labor, Bureau of Labor Statistics, so you know it’s legitimate.

Anyway, for computer programmer, they say to expect a 10-20 percent growth (average for other occupations) in 2002-2012 period; there will be increased competition (off-shoring) in the field. The following are their significant points:

  • Nearly half of all computer programmers held a bachelor痴 degree in 2002; about 1 in 5 held a graduate degree.
  • Employment is expected to grow much more slowly than that of other computer specialists.
  • Prospects should be best for college graduates with knowledge of a variety of programming languages and tools; those with less formal education or its equivalent in work experience should face strong competition for programming jobs.

As for software engineers, the outlook seems very good, as they’re projected to be one of the fastest growing fields from 2002 to 2012. The following are their significant points:

  • Computer software engineers are projected to be one of the fastest growing occupations over the 2002�12 period.
  • Highly favorable opportunities are expected for college graduates with at least a bachelor痴 degree in computer engineering or computer science and with practical work experience.
  • Computer software engineers must continually strive to acquire new skills in conjunction with the rapid changes in computer technology.

See the report here — Professional and related occupations

Code Complete by McConnell


Code Complete
by Steve McConnell
ISBN 1556154844
Date Read 2003

My Rating


This book will make you a better programmer, and give you guidance (tips & advice) for continual improvement. As simple as that. This book is also recommended by almost anyone who’s read it (it’s a favorite for Martin Fowler — great IT guru, writer). If you are serious about programming, and about getting better, you cannot skip this book. An update to this classic is coming up soon (June 2004), so you should probably wait for the 2nd edition (I know I’ll read the second edition also).

People refer to this book as the encyclopedia of good programming practice, and it definitely is.

All in all, this is my favorite book on programming: if I had to pick one book out of all the books I’ve read (and the list is growing) I would pick this one.

This book convinced me to become part of the software community. I joined the professional societies for computer professionals, IEEE Computer Society and the ACM, subscribed to IEEE Software (best magazine on software there is) and I see that I’m growing. :-) What’s more, in retrospect, I should’ve done it long time ago, since this book was published in 1993. :-( Read this book and see yourself grow…. A must read.

Training Your Foreign Replacements

This is not a joke. Some IT people are required to train their replacements from India, China, and others, and after they’re done, they are fired! Are you kidding me? That must really suck! Believe it or not, some big companies are doing it! This practice has to stop! Nobody wants to dig their own grave. How low can the U.S. companies go to save a buck or two?

Read the whole article here, which appeared on Yahoo! News

Kreitzberg and Shneiderman on Programming vs Cryptography

Programming can be fun, so can cryptography; however, they should not be combined.
–Kreitzberg and Shneiderman

How to Prevent Offshoring From Taking Your Job

A very good, 6-step guide for the thinking technologist @ ComputerWorld.com

You should read it if you’re work in IT, as outsourcing is becoming more of an issue for us — and it will probably increase over time.

So what’s the ultimate solution? Put yourself into a position where you cannot be outsourced: give them value that they cannot get anywhere else!

Anyway, read the article here that tells you how you can actually do that (or help you in that direction).

Gates: CS still good career

A fall-off of computer science majors — 23 percent fewer this year, according to a poll of several hundred North American universities by the Computing Research Association — has prompted industry leaders such as Microsoft Chairman Bill Gates to lecture at schools, telling students that their skills can still earn them a healthy salary even as companies export jobs overseas.

Professors report that students are less enthusiastic about computer science at even the most prestigious academies, and are concerned that this attitude is fostered by more than just the disappointment of the dot-com implosion. On the other hand, computer science students who have elected to follow other career paths claim their computing skills give them an edge: Matthew Notowidigo, who has chosen to become an investment banker after majoring in computer science at MIT, says an understanding of computing technology will be critical to nearly all fields in the future.

John V. Guttag, head of MIT’s computer science department, says that in order to combat the erosion of computer science majors, “we have to emphasize…that a good computer science education is a great preparation for almost anything you want to do.” Gates says the most talented students are not being drawn to computer science because there is little excitement or understanding surrounding the field. He told students in a series of lectures that breakthroughs in artificial intelligence, speech recognition, and machine-to-machine communications are on the horizon thanks to years of research, faster computers, and better software. Gates added that computer analysis and modeling is becoming increasingly vital to well-entrenched disciplines such as biology and industrial design, as well as emergent disciplines such as nanotechnology.

NY Times Article (free registration required).

Favorite Quote

Topics

Tags

Archive

Currently Reading

Info

© 2001-2025 Stanley Kubasek About me :: Contact me

Me on Twitter

»see more

Recent Entries