-Поиск по дневнику

Поиск сообщений в rss_thedaily_wtf

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 06.04.2008
Записей:
Комментариев:
Написано: 0


The Industry Vet

Среда, 22 Апреля 2015 г. 14:00 + в цитатник

Like most schools, Andys requried a capstone project for their software engineering track. It was a group project, which meant the projects success was largely dependent on the luck of the draw. For his partners, Andy drew Mindy and Al. Mindy, he knew from other classes and had worked with before.

The Intellectual Group

Al was a stranger, but Al had made his presence known from the very first day of class. You see, Al had industry experience. Al had been working with a global manufacturing company for a few years, and didnt really need this class. He lived this stuff. He knew more than the professor, so Al spent most of his time trying to help the other students, even going so far as to hold is own informal office hours in one of the computer labs. At their first team meeting in one of the conference rooms in the library, Al explained, This project here looks pretty close to some of the work Ive been doing.

Youve implemented a database for a library to track users and assets?

Not exactly, Al said, but its a basic data-driven application. Ive written thousands of these.

Thats really great to hear, Andy said, because Mindy and I havent actually taken the databases class yet- we dont really know SQL.

Great! Al said. I can work on the data-layer.

As an experienced enterprise developer, Al took the weekend to write up a specification for the database layer, which he gave to Andy and Mindy. They could use a stubbed version of the database layer, while Al did all the work on that side.

Now, Al warned as they reviewed the latest ER diagrams in a quiet corner of the campus coffee shop, Ive worked on a lot of projects like this, so let me warn you- well probably need to spend some time doing some serious integration testing to link all of these modules together.

Oh, Id expect as much, Andy said. If you can finish your work within the next week, well have two weeks left to do our testing.

Will do, Al said.

Al didnt do. He didnt get his database layer committed until one week before the due date. He skipped the next team meeting and sent an email, Project crunch at work, not available. Will send updates.

Andy and Mindy fired the application up with a pile of instructor-provided test data. It took nearly 100 seconds to filter through the 1000 test users and find a single users account. Performance got worse with larger data-sets, like the list of books in their library.

If it were just poor performance, Andy would have thrown indexes at the problem and hoped that cleared things up. There were worse problems, though. For example, according to the database, todays date was Martha Sawyer. User Jim Mahony had $155132 in late fees, there were 15,005.542 books in the database, and 16,000 of them were available to be checked out to users.

Andy decided to take a look and see if he could address those bugs. He immediately regretted the decision, because one look at the code told him that he had just given up on getting any sleep for the next week. Al did okay at managing database connections, but his vast industry experience apparently didnt include the use of the where clause. Every single query he wrote followed the pattern:

SELECT * FROM `table`

Al always loaded the results into a 2-d array. If Al needed to filter, he passed the matrix into a linear search. If Al needed to sort, he passed the matrix into a bubble sort.

Andy didnt really have any choice. He threw out Als work and reimplemented the database layer from scratch. At their final meeting before turning the project in, Andy diplomatically explained, I had to make some changes to your code.

Oh, sure, Al said. I know there were a few bugs in there. Its not like youre my parter in the Digital Electronics class- the day before our logic circuit project was due, he ripped out all of the wiring Id done on the bread-board and did it from scratch. That guy was a real jerk.

Well… actually… 

[Advertisement] BuildMaster is more than just an automation tool: it brings together the people, process, and practices that allow teams to deliver software rapidly, reliably, and responsibly. And it's incredibly easy to get started; download now and use the built-in tutorials and wizards to get your builds and/or deploys automated!

http://thedailywtf.com/articles/the-industry-vet

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку