about img
blogger img

UnderPaidLoveMonkis posts img

Corys posts image

scotts posts image

buchos posts img

Software Development's Archive

Are you a n00bz?

UnderpaidLoveMonki @ 11:12 pm Monday, February 11th, 2008

From Steve Yegge’s blog entry,

Does this style look at all familiar? It should! This is, to put it as impolitely as possible, n00b-style. (Incidentally, if u dont no wat a n00b iz, u r 1.)

This is how junior programmers write code. Junior programmers with five to ten years of experience under their belts (still n00bs in their own way) attempt to build giant systems and eventually find themselves stuck on the cliff waiting for a helicopter bailout, telling themselves “my next system rewrite will be better!” Or they fall off the cliff – i.e., the project gets canceled, people get laid off, maybe the company goes under.

Read on for the rest of this great read. After you finish, I want to ask you a question. Are you a n00b? Do you know a n00b? Do tell, I’d like to hear about it! :)

Automate, Automate, Automate…!

UnderpaidLoveMonki @ 10:06 pm Thursday, February 7th, 2008

In “Improving problem resolution through automation,”

When developers are distracted and bogged down by trying to identify the root cause of a problem, they are no longer focused on core development activities that truly add business value. And when testers spend time manually gathering problem information and documenting problems, they are no longer focused on uncovering application issues prior to release. This drain on resources results in unfortunate and measurable tradeoffs between release dates, software stability, software performance, software usability and software functionality.

The more inefficient the problem resolution process is, the more painful, visible and costly these tradeoffs become. By merely by automating its application problem resolution processes, this moderately sized application development team can reallocate over $3 million to develop new applications or functionality, improve quality or release applications faster. And these are only the hard savings.

Drop everything you do and automate it….NOW!

Measuring Code Quality

UnderpaidLoveMonki @ 8:32 pm Wednesday, February 6th, 2008

Source

85 Rules of Software Operations

UnderpaidLoveMonki @ 9:41 pm Saturday, January 26th, 2008

If you work in the Operations department of a technology company, then you must read “(85) Operations Rules to Live By.”

TDD really works!

UnderpaidLoveMonki @ 9:04 pm Saturday, January 26th, 2008

In “Research Finds TDD Boosts Developer Productivity,”

“We found that test-first students on average wrote more tests and, in turn, students who wrote more tests tended to be more productive. We also observed that the minimum quality increased linearly with the number of programmer tests, independent of the development strategy employed.”

“The external validity of the results could be limited since the subjects were students. Runeson [21] compared freshmen, graduate, and professional developers and concluded that similar improvement trends persisted among the three groups. Replicated experiments by Porter
and Votta [22] and Höst et al. [23] suggest that students may provide an adequate model of the professional population.”

It’s hard convincing non-agile developers, i.e., waterfall, to practice test driven development (TDD) in order to improve quality of software being developed. Here’s proof published in IEEE on the results of TDD performed on various people. The original article is located here.

A SCAlable LAnguage — Scala

UnderpaidLoveMonki @ 10:57 pm Tuesday, January 22nd, 2008

From an article under the Java Technology section of IBM’s Developerworks,

Scala is a functional-object hybrid language with several powerful factors working in its favor:

* First, Scala compiles to Java bytecode, meaning it runs on the JVM. In addition to enabling you to continue leveraging the rich Java open-source ecosystem, Scala can be integrated into an existing IT environment with zero migration effort.
* Second, Scala is based on the functional principles of Haskell and ML, yet still borrows heavily from the familiar object-oriented concepts Java programmers love. As a result, it can blend the best of both worlds into a whole that offers significant benefit without sacrificing the familiarity we’ve come to depend on.
* Finally, Scala was developed by Martin Odersky, probably best known in the Java community for the Pizza and GJ languages, the latter of which became the working prototype for Java 5’s generics. As such, it comes with a feeling of “seriousness”; this language was not created on a whim, and it will not be abandoned in the same fashion.

Scala is available in the Ubuntu Gutsy 7.10 repositories. To install, type sudo apt-get install scala. Enjoy.

A software business story tested through time

UnderpaidLoveMonki @ 11:56 pm Wednesday, January 16th, 2008

Note that this article, “How Software Companies Die,” was written back in 1995. It seems to me that not much has changed since then, especially if the software companies haven’t adopted Agile practices. I’m not saying Agile is the answer, but there’s more to it than that. Read the article and you may be inspired to build the next Google!

Unit Testing

UnderpaidLoveMonki @ 10:13 pm Wednesday, January 16th, 2008

Should a software QA team do unit testing? Hrm, interesting question. Well this article from SearchSoftwareQuality will answer that question and some other questions you may find interesting. :)

Agile Methodologies

UnderpaidLoveMonki @ 12:13 am Thursday, January 10th, 2008

This blog post explains the various software development methodologies:

- Spiral Model
- Incremental Development
- Rational Unified Process (RUP)
- eXtreme Programming (XP)
- Scrum
- Dynamic Systems Development Method (DSDM)
- Crystal Methods (Alistar Cockburn)
- Feature-Driven Development (FDD, Peter Coad)
- Test-Driven Development (TDD)
- Component Based Development (CBD)
- Lean Software Development (LSD, M.Poppendieck)
- Waterfall

Agile & ROI

UnderpaidLoveMonki @ 12:05 am Thursday, January 10th, 2008

Good blog post from Tyner Blain regarding Return on Investment and Agile development.

Speaking of Agile…

UnderpaidLoveMonki @ 11:59 pm Wednesday, January 9th, 2008

Tyner Blain blogs:

A client at a large company with large development teams and a long history of waterfall development made a comment: “The only people who are talking about doing this project in Agile are developers who think it will allow them to avoid responsibility.” My client may have been right (that people were saying that) but the developers who were saying it were wrong. Agile increases responsibility - it doesn’t absolve it.

When you’re asked (or required) to do the wrong things, you’re fighting an uphill battle to be able to do the right things. And creating software product success requires you to both do the right things, and do them right. Agile methodologies have been developed specifically to help development teams to do the right things, and to do them right. But the methodologies work because the development teams assume more responsibility, not less.

Amen to that. It’s been an uphill battle for me…

Enterprise Scrum

UnderpaidLoveMonki @ 11:49 pm Wednesday, January 9th, 2008

There is no “enterprise” scrum! Scrum is scrum! Key concept is basically the KISS principle and it’s not rocket science.

First off all there is no “Enterprise Scrum” - it is the same simple, empirical framework for developing complex systems that is applied everywhere rather than just in software development.

In Schwaber’s experience the enterprise-wide roll-out of Scrum take some time. He offered the case of a 1000-developer organisation. Here, they spent six months on the roll-out (training everybody in the Scrum practices) and after that 3-5 years to implement it make it stick by iteratively removing the impediments to producing quality software in the organisation. As he said, “Culture eats strategy for breakfast”, so this phase is all about changing people’s habits and getting the waste out of the system. During this implementation a senior management executive Scrum team is in place using Scrum to deal with the impediments and demonstrably solve the top issues as they become visible during the transition.

Read on

By the way, here’s Edsger Dijkstra’s take on software quality.

Rails 2.0 is out!

UnderpaidLoveMonki @ 10:00 pm Thursday, December 6th, 2007

Lo and behold after I performed a “gem update” tonight, I started seeing rails 2.0 being installed! WOOHOO! Let the games begin! It’s a good christmas afterall! :)

UPDATE, Part 2: Activeresource finally showed up in the mirrors and it is now installed. Rails is running perfectly! Awesome!

UPDATE: Oop, I spoke too soon:

ERROR: While executing gem … (Gem::GemNotFoundException)
Could not find activeresource (= 2.0.0) in any repository

:(

Startups

UnderpaidLoveMonki @ 9:20 pm Friday, November 30th, 2007

Software is critical to any modern business. So the key to success of any startup is to have rock star technical team that can quickly turn the vision into a piece of software and then evolve it and iterate it until it turns into a real business.

What an excellent article! This is a must read if you do coding and want to form your own startup.

Google eats own dogfood

UnderpaidLoveMonki @ 9:56 pm Wednesday, November 28th, 2007

Google employees use many of the tools Google produces. They even have launched an internal “dogfood” campaign in 2006. But what they see may be newer versions of the services than those released to the outside.

If a Google employee encounters trouble with any Google tool, they can call their internal support hotline named “Tech Stop.” The hotline promises 24-hour availability.

That’s awesome to hear that Google eats its own dogfood! That means the products they produce are being used by their own employees. Truly amazing. Can’t say that many software shops eat their own dogfood. Furthermore, their inhouse support is awesome. Here’s more details on what’s going on inside Google’s intranet and their remote offices.