The Alpha-Team |
In 2010, a crack development team was formed inside of a Fortune 500 company. These developers promptly escaped the maximum security Project Management Office and instituted an Agile Scrum. Today, they survive as green-field developers. If you have a problem, if traditional corporate IT cant help, and if you can find them, maybe you can hire… Alpha Team.
When Thom interviewed at said Fortune 500 company, he didnt know he was interviewing for Alpha Team. He assumed that it would be like any other huge enterprise development shop- tedious line-of-business applications that helped ship widgets but didnt do much more. The product and the team was sold to him as being very exciting, and he liked the idea of the stability a large company offered, so Thom joined the Alpha Team.
The team room was slightly larger than the inside of a large van. John, the team lead, greeted Thom with a sly grin. Great to have you on the team. Youll be sitting between Albert and Murdock. I hope you dont have any plans for lunch- todays our weekly team lunch. Good chance for you to get to know everyone.
The teams architect, Murdock, grabbed Thom for a few minutes to brief him on the applications architecture. It wasnt surprising: a SQL server backend, a web-service based middle-tier, and a hybrid ASP.NET and WebForms presentation tier. This application is extremely flexible, Murdock said. Thats the main goal, really. Weve got it set up so our business analysts have a lot of control over the display, so that we arent wasting time just changing field names around. The exact details were simply described as magic, which Murdock didnt have time to explain right then; Its documented, and I need to crank on a few tasks, our burndown is terrible this sprint.
Albert showed Thom where to find the key documents. You should start with the environment setup. I pity the fool that tries to set up their dev environment without reading that. Thom spent the rest of the morning following Alberts advice. The environment setup document covered how to install and configure Visual Studio. There was nothing unusual or surprising in the document, except perhaps its enthusiastic level of detail- it was over 100 pages of screenshots covering every possible screen and message you might encounter while configuring your environment.
Thom didnt meet the product owner until lunch. Im sorry I wasnt there in the morning, but you know how it is with meetings, Templeton said. User engagement, same old, same old, right? The good news is that I specced out a feature which we can sneak into this sprint. It should be easy for you to implement.
Oh, that sounds good, Thom said. Are you sure we should change the deliverables mid-sprint?
Templeton shrugged it off. Dont think of it as changing the deliverables. Thisll just give you a head start on the next sprint. Youll probably need the extra time while youre learning the ropes.
The new feature was a simple memo field on a transaction entry screen. It was a string field, with a 500 character max-length, and was informational only. Templeton had estimated it out as a 50 hour task, which seemed amazingly generous, but when Thom checked the backlog, add a single field was routinely estimated between 40 and 100 hours. Thom wondered: had he joined a team that padded out its estimates and spent only three days doing real work out of any given month? Or was there something much more wrong?
Thom dug into the docs and the code to try and find out. The first time he saw Alberts documentation reference the Data Dictionary, he assumed it was a reference to the SQL Server data dictionary. The Data Dictionary kept appearing, again and again, which seemed odd. Then Thom saw this line:
The Data Dictionary should be stored at \CorpFileSrv01\d$\TransApp\DataDictionary.accdb. Contact the service desk to be granted write permissions. Use Access to edit the file.
Thom had found the magic in Murdocks design, but it was dark, twisted and evil magic. For example, lets say you wanted to add a memo field to the transaction screen in the accounting module. First, you needed to find out the ModuleID
for the accounting module by looking in the Modules
table. Then, you could go to the Screens
table and find the record for the transaction entry screen. With that ScreenID
, you could now add a record to the Elements
table, which described the field. The elements table required you to specify the DisplayName
of the field, the DataType
, ServiceName
, ApplicationName
, and DatabaseName
. You also had to create a set of records in the Validations
table, which described the validation rules which should be applied tot he field.
Once Thom had entered a set of records to describe his TransactionMemo field, he could then add widgets to the ASP.NET page. The label needed to have the ID lbl_TransApp_Accounting_strMemo
. Memo was the value in ApplicationName
. The actual text box needed to be IDed txt_TransApp_Accounting_strMemo
, while the read-only display of the memo field needed to be IDed txt_show_TransApp_Accounting_strMemo
.
The idea was that business analysts could control the DisplayName without involving the developers. Since Access databases couldnt be versioned by source control, and since the BAs were constantly changing things in production based on user feedback, there was only one version of the Access database, shared by production, test, development, QA, etc. Since Access isnt exactly built around multi-user deployments, or trivial things like security, the BAs constantly changed columns they shouldnt, breaking one or more environments in the process.
Thom decided to keep his head down, and just do his best. After a few months, all of the team lunches in the world couldnt help his morale, and he was ready to quit. Ready, that is, until he heard about the Beta Team. You see, in 2014, a crack development team was formed inside of that Fortune 500 company. These developers escaped from legacy code. Today, they survive as rearchitects , identifying and redesigning broken applications. If you have massive technical debt, if you have an unsupportable product, and if you can find them… maybe you can apply to work on the Beta Team.
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |