Expert answer:Read the following article by Paul Ford from Bloomberg Businessweek,I will upload it. a) One-page max. overview of the article. (10 pts)b) One-page max. focusing on one technological aspect of the article. Select a specific language, software, or website (e.g., StackOverflow on p. 84, machine learning, p.22.) and provide a description and information about what it is and why it matters to a businessperson. You may want to bring in additional information as a footnote. (20 pts)c) One-page max. focusing on one business aspect of the article. Ideally, you will select a situation in the presented TMitTB case and describe it from a Project Management/SDLC point of view. You MUST bring in additional information from your textbook (cite as a footnote) and RELATE the case to the concepts in your textbook. (30 pts) ( i will upload the e-book)Formatting: *remind me during class to go over this.11-pt font, Helvetica or Arial (including header & footer)Zero-point spacing before/after paragraphsOne Line break between paragraphsSingle line title/header, bold & centered.Your name only in the header/footerPage numbers in the header/footerLine spacing at 1.15Alignment at Justify Text Margins 1 inch all around
paul_ford__what_is_code____bloomberg.pdf
Unformatted Attachment Preview
Bloomberg the Company
Bloomberg Anywhere Login
WHAT
CODE?
BUSINESSWEEK JUNE 11, 2015
A message from Josh Tyrangiel
1
The Man in
the Taupe
Blazer
You are an educated, successful person capable of
abstract thought. A VP doing an SVP’s job. Your
office, appointed with decent furniture and a healthy
amount of natural light filtered through vertical
blinds, is commensurate with nearly two decades of
service to the craft of management.
Copper plaques on the wall attest to your various leadership abilities inside
and outside the organization: One, the Partner in Innovation Banquet Award
2011, is from the sales team for your support of its 18-month effort to reduce
cycle friction—net sales increased 6.5 percent; another, the Civic Guidelight
2008, is for overseeing a volunteer team that repainted a troubled public
school top to bottom.
You have a reputation throughout the organization as a careful person,
bordering on penny-pinching. The way you’d put it is, you are loath to pay
for things that can’t be explained. You expect your staff to speak in plain
language. This policy has served you well in many facets of operations, but it
hasn’t worked at all when it comes to overseeing software development.
For your entire working memory, some Internet thing has come along every
two years and suddenly hundreds of thousands of dollars (inevitably
millions) must be poured into amorphous projects with variable deadlines.
Content management projects, customer relationship management
integration projects, mobile apps, paperless office things, global enterprise
resource planning initiatives—no matter how tightly you clutch the purse
strings, software finds a way to pry open your fingers.
Here we go again. On the other side of your (well-organized) desk sits this
guy in his mid-30s with a computer in his lap. He’s wearing a taupe blazer.
He’s come to discuss spending large sums to create intangible abstractions
on a “website re-architecture project.” He needs money, support for his team,
new hires, external resources. It’s preordained that you’ll give these things to
him, because the CEO signed off on the initiative—and yet should it all go
pear-shaped, you will be responsible. Coders are insanely expensive, and
projects that start with uncomfortably large budgets have an ugly tendency
to grow from there. You need to understand where the hours will go.
He says: “We’re basically at the limits
with WordPress.”
Who wears a taupe blazer?
The CTO was fired six months ago. That
CTO has three kids in college and a
mustache. It was a bad exit. The man in
the taupe blazer (TMitTB) works for the
new CTO. She comes from Adobe and has
short hair and no mustache.
Here is what you’ve been told: All of the
computer code that keeps the website
running must be replaced. At one time, it
GRAPHER: COREY OLSEN FOR BLOOMBERG BUSINESSWEEK
was very valuable and was keeping the
company running, but the new CTO thinks it’s garbage. She tells you the old
code is spaghetti and your systems are straining as a result. That the thirdparty services you use, and pay for monthly, are old and busted. Your
competitor has an animated shopping cart that drives across the top of the
screen at checkout. That cart remembers everything customers have ever
purchased and generates invoices on demand. Your cart has no memory at
all.
Salespeople stomp around your office, sighing like theater students, telling
you how embarrassed they are by the site. Nothing works right on mobile.
Orders are cutting off halfway. People are logged out with no warning.
Something must be done.
Which is why TMitTB is here.
Who’s he, anyway? Webmaster? IT? No, he’s a “Scrum Master.”
“My people are split on platform,” he continues. “Some want to use Drupal 7
and make it work with Magento—which is still PHP.” He frowns. “The other
option is just doing the back end in Node.js with Backbone in front.”
You’ve furrowed your brow; he eyes you sympathetically and explains: “With
that option it’s all JavaScript, front and back.”
Those are all terms you’ve heard. You’ve read the first parts of the Wikipedia
pages and a book on software project estimation. It made some sense at the
time.
You ask the universal framing question: “Did you cost these options?”
He gives you a number and a date. You know in your soul that the number is
half of what it should be and that the project will go a year over schedule. He
promises long-term efficiencies: The $85,000 in Oracle licenses will no
longer be needed; engineering is moving to a free, open-sourced database.
“We probably should have done that back when we did the Magento
migration,” he says. Meaning, of course, that his predecessor probably
should have done that.
You consult a spreadsheet and remind him that the Oracle contract was
renewed a few months ago. So, no, actually, at least for now, you’ll keep
eating that cost. Sigh.
This man makes a third less than you, and his education ended with a B.S.
from a large, perfectly fine state university. But he has 500+ connections on
LinkedIn. That plus sign after the “500” bothers you. How many more than
500 people does he know? Five? Five thousand?
In some mysterious way, he outranks you. Not within the company, not in
restaurant reservations, not around lawyers. Still: He strokes his short beard;
his hands are tanned; he hikes; his socks are embroidered with little ninja.
“Don’t forget,” he says, “we’ve got to budget for apps.”
This is real. A Scrum Master in ninja socks has come into your office and
said, “We’ve got to budget for apps.” Should it all go pear-shaped, his career
will be just fine.
You keep your work in perspective by thinking about barrels of cash. You
once heard that a U.S. dry barrel can hold about $100,000 worth of singles.
Next year, you’ll burn a little under a barrel of cash on Oracle. One barrel isn’t
that bad. But it’s never one barrel. Is this a 5-barrel project or a 10-barreler?
More? Too soon to tell. But you can definitely smell money burning.
At this stage in the meeting, you like to look supplicants in the eye and say,
OK, you’ve given me a date and a budget. But when will it be done? Really,
truly, top-line-revenue-reporting finished? Come to confession; unburden
your soul.
This time you stop yourself. You don’t want your inquiry to be met by a
patronizing sigh of impatience or another explanation about ship dates,
Agile cycles, and continuous delivery. Better for now to hide your ignorance.
When will it be done? You are learning to accept that the answer for software
projects is never.
1.1
Why Are We Here?
We are here because the editor of this magazine asked me, “Can you tell me
what code is?”
“No,” I said. “First of all, I’m not good at the math. I’m a programmer, yes, but
I’m an East Coast programmer, not one of these serious platform people from
the Bay Area.”
I began to program nearly 20 years ago, learning via oraperl, a special
version of the Perl language modified to work with the Oracle database. A
month into the work, I damaged the accounts of 30,000 fantasy basketball
players. They sent some angry e-mails. After that, I decided to get better.
Which is to say I’m not a natural. I love computers, but they never made any
sense to me. And yet, after two decades of jamming information into my
code-resistant brain, I’ve amassed enough knowledge that the computer has
revealed itself. Its magic has been stripped away. I can talk to someone who
used to work at Amazon.com or Microsoft about his or her work without
feeling a burning shame. I’d happily talk to people from Google and Apple,
too, but they so rarely reenter the general population.
The World Wide Web is what I know best (I’ve coded for money in the
programming languages Java, JavaScript, Python, Perl, PHP, Clojure, and
XSLT), but the Web is only one small part of the larger world of software
development. There are 11 million professional software developers on earth,
according to the research firm IDC. (An additional 7 million are hobbyists.)
That’s roughly the population of the greater Los Angeles metro area. Imagine
all of L.A. programming. East Hollywood would be for Mac programmers,
West L.A. for mobile, Beverly Hills for finance programmers, and all of
Orange County for Windows.
There are lots of other neighborhoods, too: There are people who write code
for embedded computers smaller than your thumb. There are people who
write the code that runs your TV. There are programmers for everything.
They have different cultures, different tribal folklores, that they use to
organize their working life. If you told me a systems administrator was
taking a juggling class, that would make sense, and I’d expect a product
manager to take a trapeze class. I’ve met information architects who list and
rank their friendships in spreadsheets. Security research specialists love to
party.
What I’m saying is, I’m one of 18 million. So that’s what I’m writing: my view
of software development, as an individual among millions. Code has been
my life, and it has been your life, too. It is time to understand how it all
works.
Every month it becomes easier to do things that have never been done
before, to create new kinds of chaos and find new kinds of order. Even
though my math skills will never catch up, I love the work. Every month,
code changes the world in some
interesting,
wonderful,
or disturbing way
2
Let’s Begin
A computer is a clock with benefits. They all work the same, doing secondgrade math, one step at a time: Tick, take a number and put it in box one.
Tick, take another number, put it in box two. Tick, operate (an operation
might be addition or subtraction) on those two numbers and put the
resulting number in box one. Tick, check if the result is zero, and if it is, go to
some other box and follow a new set of instructions.
You, using a pen and paper, can do anything a computer can; you just can’t
do those things billions of times per second. And those billions of tiny
operations add up. They can cause a phone to boop, elevate an elevator, or
redirect a missile. That raw speed makes it possible to pull off not one but
multiple sleights of hand, card tricks on top of card tricks. Take a bunch of
pulses of light reflected from an optical disc, apply some math to unsqueeze
them, and copy the resulting pile of expanded impulses into some memory
cells—then read from those cells to paint light on the screen. Millions of
pulses, 60 times a second. That’s how you make the rubes believe they’re
watching a movie.
Apple has always made computers; Microsoft used to make only software
(and occasional accessory hardware, such as mice and keyboards), but now
it’s in the hardware business, with Xbox game consoles, Surface tablets, and
Lumia phones. Facebook assembles its own computers for its massive data
centers.
So many things are computers, or will be. That includes watches, cameras,
air conditioners, cash registers, toilets, toys, airplanes, and movie projectors.
Samsung makes computers that look like TVs, and Tesla makes computers
with wheels and engines. Some things that aren’t yet computers—dental
floss, flashlights—will fall eventually.
When you “batch” process a thousand images in Photoshop or sum numbers
in Excel, you’re programming, at least a little. When you use computers too
much—which is to say a typical amount—they start to change you. I’ve had
Photoshop dreams, Visio dreams, spreadsheet dreams, and Web browser
dreams. The dreamscape becomes fluid and can be sorted and restructured.
I’ve had programming dreams where I move text around the screen.
You can make computers do wonderful things, but you need to understand
their limits. They’re not all-powerful, not conscious in the least. They’re fast,
but some parts—the processor, the RAM—are faster than others—like the
hard drive or the network connection. Making them seem infinite takes a
great deal of work from a lot of programmers and a lot of marketers.
The turn-of-last-century British artist William Morris once said you can’t
have art without resistance in the materials. The computer and its
multifarious peripherals are the materials. The code is the art.
2.1
How Do You Type an “A”?
Consider what happens when you strike a key on your keyboard. Say a
lowercase “a.” The keyboard is waiting for you to press a key, or release one;
it’s constantly scanning to see what keys are pressed down. Hitting the key
sends a scancode.
Just as the keyboard is waiting for a key to be pressed, the computer is
waiting for a signal from the keyboard. When one comes down the pike, the
computer interprets it and passes it farther into its own interior. “Here’s what
the keyboard just received—do with this what you will.”
It’s simple now, right? The computer just goes to some table, figures out that
the signal corresponds to the letter “a,” and puts it on screen. Of course not—
too easy. Computers are machines. They don’t know what a screen or an “a”
are. To put the “a” on the screen, your computer has to pull the image of the
“a” out of its memory as part of a font, an “a” made up of lines and circles. It
has to take these lines and circles and render them in a little box of pixels in
the part of its memory that manages the screen. So far we have at least three
representations of one letter: the signal from the keyboard; the version in
memory; and the lines-and-circles version sketched on the screen. We
haven’t even considered how to store it, or what happens to the letters to the
left and the right when you insert an “a” in the middle of a sentence. Or what
“lines and circles” mean when reduced to binary data. There are surprisingly
many ways to represent a simple “a.” It’s amazing any of it works at all.
Coders are people who are willing to work backward to that key press. It
takes a certain temperament to page through standards documents,
manuals, and documentation and read things like “data fields are
transmitted least significant bit first” in the interest of understanding why,
when you expected “ü,” you keep getting “�.”
2.2
From Hardware to Software
Hardware is a tricky business. For decades the work of integrating, building,
and shipping computers was a way to build fortunes. But margins tightened.
Look at Dell, now back in private hands, or Gateway, acquired by Acer. Dell
and Gateway, two world-beating companies, stayed out of software, typically
building PCs that came preinstalled with Microsoft Windows—plus various
subscription-based services to increase profits.
This led to much cursing from individuals who’d spent $1,000 or more on a
computer and now had to figure out how to stop the antivirus software from
nagging them to pay up.
Years ago, when Microsoft was king, Steve Ballmer, sweating
through his blue button-down, jumped up and down in front of a
stadium full of people and chanted, “Developers! Developers!
Developers! Developers!”
He yelled until he was hoarse: “I love this company!” Of course
he did. If you can sell the software, if you can light up the screen,
you’re selling infinitely reproducible nothings. The margins on
Ballmer chants “Dev
SOURCE: YOUTUBE
nothing are great—until other people start selling even cheaper
nothings or giving them away. Which is what happened, as free software-
based systems such as Linux began to nibble, then devour, the server market,
and free-to-use Web-based applications such as Google Apps began to serve
as viable replacements for desktop software.
Expectations around software have changed over time. IBM unbundled
software from hardware in the 1960s and got to charge more; Microsoft
rebundled Internet Explorer with Windows in 1998 and got sued; Apple
initially refused anyone else the ability to write software for the iPhone when
it came out in 2007, and then opened the App Store, which expanded into a
vast commercial territory—and soon the world had Angry Birds. Today,
much hardware comes with some software—a PC comes with an operating
system, for example, and that OS includes hundreds of subprograms, from
mail apps to solitaire. Then you download or buy more.
There have been countless attempts to make software easier to write,
promising that you could code in plain English, or manipulate a set of icons,
or make a list of rules—software development so simple that a bright senior
executive or an average child could do it. Decades of efforts have gone into
helping civilians write code as they might use a calculator or write an e-mail.
Nothing yet has done away with developers, developers, developers,
developers.
Thus a craft, and a professional class that lives that craft, emerged.
Beginning in the 1950s, but catching fire in the 1980s, a proportionally small
number of people became adept at inventing ways to satisfy basic human
desires (know the time, schedule a flight, send a letter, kill a zombie) by
controlling the machine. Coders, starting with concepts such as “signals
from a keyboard” and “numbers in memory,” created infinitely reproducible
units of digital execution that we call software, hoping to meet the needs of
the marketplace. Man, did they. The systems they built are used to manage
the global economic infrastructure. ■ 1 If coders don’t run the world, they
run the things that run the world.
Most programmers aren’t working on building a widely recognized
application like Microsoft Word. Software is everywhere. It’s gone from a
craft of fragile, built-from-scratch custom projects to an industry of
standardized parts, where coders absorb and improve upon the labors of
their forebears (even if those forebears are one cubicle over). Software is
there when you switch channels and your cable box shows you what else is
on. You get money from an ATM—software. An elevator takes you up five
stories—the same. Facebook releases software every day to something like a
billion people, and that software runs inside Web browsers and mobile
applications. Facebook looks like it’s just pictures of your mom’s crocuses or
your son’s school play—but no, it’s software.
GRAPHER: BORU O’BRIEN O’CONNELL FOR BLOOMBERG BUSINESSWEEK; SET DESIGN: DAVE BRYANT
2.3
How Does Code Become Software?
We know that a computer is a clock with benefits, and that software starts as
code, but how?
We know that someone, somehow, enters a program into the computer and
the program is made of code. In the old days, that meant putting holes in
punch cards. Then you’d put the cards into a box and give them to an
operator who would load them, and the computer would flip through the
cards, identify where the holes were, and update parts of its memory, and
then it would—OK, that’s a little too far back. Let’s talk about modern typinginto-a-keyboard code. It might look like this:
ispal: {x~|x}
That’s in a language called, simply, K, famous for its brevity. ■ 2 That code
will test if something is a palindrome. If you next typed in ispal “able
was i ere i saw elba”, K will confirm that yes, this is a palindrome.
So how else might your code look? Maybe like so, in Excel (with all the
formulas hidden away under the numbers they produce, and a check box
that you can check):
But Excel spreadsheets are tricky, because they can hide all kinds of things
under their numbers. This opacity causes risks. One study by a researcher at
the University of Hawaii found that 88 percent of spreadsheets contain
errors.
Programming can also look like Scratch, a language for kids:
That’s definitely programming right there—the computer is waiting for a
click, for some input, just as it waits for you to type an “a,” and then it’s doing
something repetitive, and it involves hilarious animals.
Or maybe:
PRINT *, “WHY WON’T IT WO …
Purchase answer to see full
attachment