June 2010 Newsletter
Great necessities call out great virtues. –Abigail Adams
I choose to be a student of the experience and not a victim of the circumstance. –Mark McIntosh
Software Engineering: n. The art of getting something that sort of looks like useful work out of someone who is not fundamentally a programmer. –Tommy McGuire
Forget injuries, never forget kindnesses. –Confucius
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves. –Alan Kay
The intuitive mind is a sacred gift and the rational mind is a faithful servant. We have created a society that honors the servant and has forgotten the gift. –Albert Einstein
It's not foresight or hindsight we need. We need sight, plain and simple. We need to see what is right in front of us. –Gordon Atkinson, RealLivePreacher.com
We all should know that diversity makes for a rich tapestry, and we must understand that all the threads of the tapestry are equal in value no matter what their color. –Maya Angelou
Watch what people are cynical about, and one can often discover what they lack. –George Patton
This author, who is a committed proponent of agile development, says that there are three particular circumstances where agile methodology is not appropriate: an organization needed complete understanding solution before starting, business stakeholders couldn’t or wouldn’t commit to active involvement throughout the project, and team couldn’t deal with ambiguity or properly communicate with business or customers.
One of the first things that developers learn in database design classes is normalization. However, in practice, normalization is often treated quite differently. This article looks at how theory and practice diverge and how the NoSQL concept is changing ideas about normalization.
Most developers agree that test-driven development (TDD) is a valuable practice for improving development productivity and code quality. But it’s often difficult to get a feel from TDD is all about when getting started. This excellent essay explains the premise behind TDD and shows you how to create relevant tests up front before you write your code.
With the recent spate of high-profile packaged application implementation debacles, many technology executives are showing a renewed interest in in-house application development and agile methodologies are helping smooth the path.
Rather than spending a lot of time and energy trying to figure out how to align IT and the business, this author suggests these 5 ways that IT can take the lead in helping their business customers understand the potential of some of the new technologies that they may have heard about.
Josh Bloch, contributor to Java Collection class and author of Effective Java, gives his views on where he sees Java going under Oracle. Interestingly, he thinks that the lack of innovation in Java recently is the fault of Sun.
The REST principle is one of the foundations of services-oriented architecture (SOA). However, since fundamentally all web applications are RESTful, this author points out that practical implementations of REST APIs actually violate the principle that the service be “self-describing”, but that this is ultimately an advantage. Moreover, this emphasizes that all architectures evolve when put into practice.
Technical professionals are sometimes counterintuitive and are often motivated more by intrinsic rewards, such as technical challenges, than money. Here are some of the factors that savvy managers need to take into account.
This author claims that the one key element for successful implementation of agile development methodologies is that the management ranks (most all levels) actually “get” agile and develop an agile mindset.
Excerpted from Susan Cramm’s soon-to-be-released book of the same name, this slideshow lists eight (only eight?!) places where IT and business often disconnect. I just wish it would give us some hints about what to do to fix these gaps!
Automated GUI testing is often (always?) sold to IT management as the panacea for all of their testing problems. But as most testers know (all too well in a lot of cases!), test automation is an arduous task and test automation efforts need to be managed as a “development project within a development project”, including analyzing their value. This article gives some excellent advice on how to do test automation effectively.
In this article from a forthcoming book about the consequences of software failure, the author recommends using a balanced approach to IT governance to reduce risks associated with software problems by doing a little work now to prevent them instead of a lot of effort later dealing with the fallout.
A frequent topic of discussion among test professionals is what is the appropriate ratio of testers to developers and/or of test effort to development effort. This article emphasizes that the only accurate answer is “it depends” and goes on to provide some criteria to use in determining this for your project.
Uncle Bob Martin eloquently explains why testers are often the people on a software development project who best understand the application, because of the need, for them to be effective, “to divine the system that the customer imagined; and then to illuminate those parts of the system that are not consistent with that imagination.”
By using spare CPU cycles on PCs inside Microsoft, developers found and fixed 1800 bugs, including some security vulnerabilities on Office 2010 before shipping. Looks like a pretty good paradigm for security testing in large organizations.
Frequently, the SQL used to read and write data to/from your database has the most profound impact on application performance of any aspect. This excellent, comprehensive tutorial gives you some hands-on concepts using diagrams to better understand and improve your queries.
Whether you are developing desktop or web applications, most programmers don’t have a lot of experience with user interface design. This simple, yet elegant, checklist contains some excellent tips to keep in mind. While they are all important and valuable, the most important to me is #3: Optimize the design for the most frequent or important tasks.
One of my college professors said that you were a real engineer once you understood the jargon in your area. Here’re some humorous new terms to describe the practice of programming. Interestingly, many of the terms are about errors and bugs, which just shows that we are still a long way from error-free development.
The Internet is full of chatter about the semantic web (sometimes called Web 3.0), but very little of it gives you an explanation or context for what it is. This short (~15 minutes) video gives a very good overview of the concepts and the ways that it will transform the web.
Test-Driven Development (TDD) is an excellent tool for improving your code and accelerating agility in your development work. But it’s difficult to start with TDD from scratch. This article links to 10 excellent articles on what TDD is all about and how to actually do it.
A new book chronicles how so-called “Internet addiction” is really just another form of the human trait of distraction wherein people crave the next “hit”. The author suggests trying to find real-world analogues to online activities to develop focus. And here are some tips for reducing technology-induced distraction.
Most of us have heard the research results that say that multitasking is actually counterproductive. This author tells you how to stop multitasking and shows the benefits both personal and professional.
Most of us have heard about the so-called “jobless recovery”. This article explains the corporate strategy perspective that backs up this idea. Essentially, most organizations believe that the increase in productivity during the downturn is sufficient to maintain momentum.
While most IT workers were satisfied with their jobs in 2009, even though they felt underpaid, a new Towers Watson study, over half indicate that they see little chance for career growth. At the same time, most respondents said that security and stability is the most important characteristic of their job.
One of the results of the prolonged recession and improvements in technology is that almost 1/3 of workers feel obligated to stay connected to work 24/7, even during weekends, vacations, or holidays. At the same time, almost 3/4 say that technology has helped them do more with less, according to a survey from Intercall.
Simplicity has an amazing calming effect. Most of these tips won’t be new to you, but taken together (i.e., synergy) they take on a whole new meaning. My favorite tip on the list is put all of your distractions (including your structured procrastination activities) together at a single time. Although I should probably heed the suggestion to write shorter e-mails more diligently.
Texas A&M University (my alma mater by the way!) researchers have shown empirical evidence of what most of know intuitively: meetings are not a valuable way to generate new ideas. Their results indicate that ideas offered in brainstorming sessions ultimately result in less creativity on the part of the entire group.
Many people worry so much about making mistakes in their work that it holds them back from doing their best. Messing up is not something to be feared as long as you take responsibility for your error and use it as an opportunity to learn something.
Distraction and procrastination are the silent killers of productivity. This article will help you understand both the science and psychology behind maintaining focus and how concentration is becoming a lost art.
After all of those frustrating years of having to frequently change your passwords on various systems, new research says that changing passwords does not make good economic sense.
The U.S. Congress appears poised to revise the 1996 Telecommunications Act due to the recent discussions about net neutrality and the federal appeals court ruling that the FCC overstepped its bounds in its ruling against Comcast concerning traffic shaping.
AquaSnap makes arranging Windows on your desktop more efficient by turning each of the edges and corners into dockable locations. Just drag your window to the appropriate docking hotspot and it will automatically snap to that location. In addition, it allows you resize your window into half or a quarter of the screen, so that you can arrange multiple windows for simultaneous display.
Who has time to remember to run their disk defragmenter? With Auslogics Disk Defrag Screen Saver you don’t have to! It runs defragmentation as a screen saver and even displays the fragmentation status and defragment process.
Rex is the toy dinosaur from Toy Story… Oops… Sorry! Anyway, this Rex is a regular expression development tool, with a twist. Instead of validating that a particular string matches the given regular expression, it creates a finite state machine from the given regex and then returns a specified number of strings that match. This is a great way to help understand an unknown regex.
Zen Coding is a small plug-in for many IDEs, including Eclipse, IntelliJ IDEA, NetBeans, and even a variety of text editors, such as Notepad++, Akelpad, and UltraEdit, that makes coding HTML and CSS easier. Essentially, Zen Coding provides a shorthand that expands the simple input into the actual HTML and CSS code. For example, div#content>p*3 expands to:
ERMaster is a full-featured data modeling tool in an Eclipse plug-in. You can model tables and relationships and it will export the model to DDL for a variety of database platforms including MySQL, Oracle, and PostgreSQL. Models are stored as XML for simple management.
Think that you know a lot of programming languages? Put your skills to the test with the timed quiz of 20 “Hello, World” examples.
In this online Flash game, you must fix (actually, just find!) bugs in NVidia driver source code to save the world! If you can’t find the error fast enough, then the world ends in a mushroom cloud.
Sub-titled “The Arena for Accountable Predictions”, Long Bets is a philanthropic site where people (usually well-known ones) can make predictions about finance, technology, and more and have them challenged with the proceeds from the bet going a charity selected by the winner. It also serves as a forum for discussion about predictions.
Here’s all that stuff that your professors failed to tell you in school about how we got all of these programming languages that we know a love. :)
Doubtless, this video of the first 30 seconds of the Apollo 11 launch, shot at 500 frames/second (20 times the usual speed!), is the most amazing you’ll ever see in the history of space flight. It includes full narration of the scene. I still remember standing on a street with my dad watching this on a TV screen in a department store window.