EppsNet Archive: Software Development

Teaching Computer Science: Say Your Ideas Out Loud

[I learned about Scary Ideas from Jim and Michele McCarthy — PE] I’m volunteering a couple mornings a week in a high school computer science class . . . “The main thing I wanted to tell you is that you’ve got to say your ideas out loud . . . “A scary idea is not an idea that’s going to scare people when they hear it, it’s an idea that you don’t want to say because you’re afraid of how people will react to it. Maybe they’ll think you’re crazy. “Here’s a couple examples of scary ideas. “You recognize the speaker in this video?” Everyone does. “Ok, let’s see what he has to say.” I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth. “Keep in mind that he’s… Read more →

Developers Should Abandon Agile

No matter what framework or method your management thinks they are applying, learn to work this way: Produce running, tested, working, integrated software every two weeks, every week. Build your skills until you can create a new fully operational version every day, twice a day, multiple times a day. Keep the design of that software clean. As it grows, the design will tend to become complex and crufty. Resist and reverse this tendency consciously, refactoring in tiny continuous steps, all the time, so that your rate of progress is as steady and consistent as possible. Use the current increment of software as the foundation for all your conversations with your product leadership and management. Speak in terms of what’s ready to go, and in terms of what they’d like you to do next. This is the development team’s best hope for a reasonable life. By keeping the software always ready… Read more →

To Young Women Considering a Career in Technology

You’ve probably read a lot of articles about how sexist and awful the culture is for women in technology. I think if anything deters young women from technology careers, it’s this glut of articles saying how sexist and awful the culture is. I’ve worked in software development for 30 years. In my experience — and feel free to discount this because I’m not a woman — the culture is not tough for women. If anything, men give women the benefit of the doubt because they’d like to have more women around. As Holden Caulfield used to say, “I like to be somewhere at least where you can see a few girls around once in a while, even if they’re only scratching their arms or blowing their noses or even just giggling or something.” Yes, I have seen bad things happen to women in tech, but I’ve seen bad things happen… Read more →

My Name is Fido

From an actual email: Hello, My name is Fido and I’m an IT recruiter at TechDigital Corporation. We are currently hiring a .Net Developer/Software Engineer preferrably [sic] with experience in the Financial domain for a W2 or C2C Contract for one of our direct clients in Green Bay, WI. Fido Xavier Recruiter I live in California. Are there no software engineers in Wisconsin or anywhere between California and Wisconsin? On the Internet, no one knows you’re a dog. Thus spoke The Programmer. Read more →

I Think We Are Kidding Ourselves

More people have ascended bodily into heaven than shipped great software on time. — Jim McCarthy On the other hand, the number of people on LinkedIn claiming to have a demonstrated ability to lead software projects to successful completion, on time and on budget, as well as the number of companies seeking to hire such people, is infinite. Thus spoke The Programmer. Read more →

Pain in the Neck

I started going to physical therapy for neck pain . . . “What kind of work do you do?” the therapist asks. “Software development.” “Do you sit a lot during the day?” “Yes.” “At a desk?” “Yes.” “Show me how you sit at the desk.” “I turn sideways like this in the chair and lean on the armrest, then I kind of scrunch over and stare at a computer screen.” “Oooh, that’s not good. You shouldn’t do that.” “I know. But I get paid to do it and I don’t know how to do anything else.” Read more →

Programmers Don’t Play Polo

On the product page for a book on software development principles, Amazon showed me this: The product on the right — is that a bug in the cross-selling algorithm? I’ve worked in software development for about 30 years and have never met one person interested in the game of polo . . . Read more →

Antipattern: Daily Standup is Too Long

Scrum recommends timeboxing daily standup meetings at 15 minutes. If you can’t finish in 15 minutes, there may be something wrong with your format. Are you actually standing up? What are you talking about? Each person should answer three questions: What have you accomplished since the last meeting? What do you plan to accomplish between now and the next meeting? What, if anything, is impeding your progress? Focus on accomplishments, not just assigned tasks, i.e., don’t say “I’m working on A and I’m planning to work on B.” Don’t have discussions. Anything coming out at the meeting that needs to be discussed can be discussed after the meeting. Try saying this more often: Let’s talk about that after the meeting. Immediately after the meeting if necessary, without even leaving the room, but not during the meeting. Anyone in the meeting who is not responsible for accomplishing things during the sprint… Read more →

Hard Deadlines

Does saying “This task has to be done by Friday” increase the chances that the task will be done by Friday? No, but it increases the chance that it won’t be done before Friday. Better question: Why isn’t it done now? Thus spoke The Programmer. Read more →

Risk = Cumulative Cost – Cumulative Value

Henrik Kniberg has a presentation online called “What is Agile?” It includes a method of visualizing risk as the gap between cumulative cost and cumulative value, as well as methods of visualizing risk mitigation strategies. I found it valuable. Here are some representative slides: Read more →

9 Links

Data Structure Visualizations Good Tech Lead, Bad Tech Lead Google Java Style Guide to 12 Disruptive Technologies How to Write a Cover Letter The Landing Page Optimization Guide You Wish You Always Had Selendroid: Selenium for Android UX Axioms by Eric Dahl Yelp’s got style (and the guide to back it up) Read more →

All Projects Should Be Early

From a Jeff Sutherland Scrum deck: You can maximize the value delivered per unit of time or cost by shipping when the value curve starts to flatten out. Read more →

Passing the Cloudera Hadoop Certification Exam

Today I took and passed the Cloudera Certified Developer for Apache Hadoop (CCDH) exam. Two resources were helpful to me in this successful endeavor: Hadoop: The Definitive Guide by Tom White The Cloudera practice test, which I found much harder than the actual exam. Read more →

Fast Work

A junior high school math teacher posted this on Facebook: That makes perfect sense to me. Work gets done a lot faster if the results don’t have to be correct. Thus spoke The Programmer. Read more →

Certifications

Give a man a fish, he'll eat for a day, offer him a fishing certification and he'll open up a consultancy without ever having seen a fish. — Dan Lyke (@danlyke) July 29, 2013 Read more →

Software Estimation Options

With software estimation you've only realistically got a choice of 5 mins, 1 hour, 1-2 days, about a week, and then all bets are off. — Rob Bowley (@robbowley) September 18, 2011 Read more →

Aside

InfoWorld: In most areas associated with productivity, U.S.-based staff exceeded offshore staff by wide margins . . .

Minimizing Retention

From an actual job description for a Software Development Manager: Worth with management and directs to put together a solid SW Development career development plan in alignment with Organization Solutions all-up to grow hi-potential employees and minimize retention. If you’re writing job descriptions and learning English at the same time, there’s no shame in having a native speaker review your work. The job description goes on like that for 10 or 12 more bullet points. I singled that one out because I like the phrase “minimize retention.” I can recommend a couple of people for that. I assume it’s a language problem in this case — that the author meant to say “maximize retention” or “minimize turnover” — but it might be a kick to have a job where your actual charter is to minimize retention. You would not be an easy person to work for. You would take all… Read more →

Amateur Design

The worst scenario I can imagine is when we allow real customers, users, and our own salespeople to dictate “functions and features” to the developers, carefully disguised as “customer requirements.” Maybe conveyed by our Product Owners. If you go slightly below the surface, of these false “requirements” (“means,” not “ends”), you will immediately find that they are not really requirements. They are really bad amateur design, for the “real” requirements — implied but not well defined. — Mary Poppendieck Read more →

Agile, ALM, and Agile 2.0 — Putting the Cart Before the Horse?

Speaking of selling chickens still in shells, an august panel of industry giants laid out their recent improvements and plans for ALM products (Application Lifecycle Management, for those not in the know). These guys dazzled the audience with how they’ve moved far beyond simple source code repositories and testing tools to a complete integration of all modern software practices. Quite a coup, indeed, since most real live software developers I’m seeing out there today still aren’t using the practices automated by the ALM tools. . . . In other words, many software developers aren’t using practices such as test driven development or source version control. Yet here are HP, Microsoft, and IBM announcing new ALM tools that automate more advanced practice in areas not even in use in the first place. Unbelievable. — Ken Schwaber Read more →

Next Page »