Live data from Hacker News

The shittiest project I ever worked on

blog.plover.com

61–70 of 187 posts

Re: The shittiest project I ever worked on

#61

> In 1995 I quit my regular job as senior web engineer You had the job title "senior web engineer" when the web was 4 years old. That's pretty cool.

Sorry if it reduces self-esteem, but we (software developers) are not engineers. I've been brainwashed for many years by my brother, who is a Phd civil engineer, that professions that hijack the term engineer are kidding themselves. I know it sounds cool, and my current title is 'Senior Software Engineer', but it is all a scam.

As a software guy who used to work in a factory alongside "actual" mechanical and E&E engineers, I daresay our goals and responsibilities are so similar, that we have every right to call ourselves engineers.

Re: The shittiest project I ever worked on

#62

Earlier quoted context omitted.

Just say we will load data(phone number) using AJAX in JSON format and everyone will be happy. Page is static. JSON is a static file with a phone number. And use jQuery to load the JSON file.

My sarcasm detector is showing erratic results from your post. AJAX was 3 years from being invented and John Resig was about 10 years old in 1995. Perhaps a whooshing sound should be made though, if I didn't get the joke..?!

You missed "If you removed the dates from this story.." in the parent comment.

Re: The shittiest project I ever worked on

#63
post #8

Earlier quoted context omitted.

Ha! I think the people who downvotted this didn't realize that "mjd" is Mark Jason Dominus aka the guy who wrote the blog post.

Even then, the post adds no value to the discussion, so it deserves downvotes anyway. Its a great blog post, and I upvoted it, but its a bad comment, and I downvoted it.

Sure it does. It says that mjd is on HN, and reading this article's comments at least enough to post this, and that he has a sense of humor.

I'm sure if someone so desired, they could ask a specific question regarding the story either in reply to the root comment or as a root comment and expect it may be seen by the author, and possibly get a reply.

Re: The shittiest project I ever worked on

#64

Earlier quoted context omitted.

Sorry if it reduces self-esteem, but we (software developers) are not engineers. I've been brainwashed for many years by my brother, who is a Phd civil engineer, that professions that hijack the term engineer are kidding themselves. I know it sounds cool, and my current title is 'Senior Software Engineer', but it is all a scam.

I'm not convinced. Care to make a case?

Well it is really just semantics, so there is no right or wrong, and anyone can define what particular words mean to them.

But there are a couple of things that make me personally think software engineering is a misnomer.

Firstly, traditional engineering disciplines are generally pretty black and white. It is applied maths and science. If you build a bridge, you can use physics and maths to pretty much prove that it will handle a particular weight/load and so forth. Software development is rarely like that, and even if you are writing software for an engineer and therefore you could argue that you can prove the calculations the system is generating, it is really the problem domain that is engineering but the way the software is put together is not so easy to prove.

Secondly, I think the term actually does us a disservice. Software development requires intuition, craftsmanship, pragmatism, determination, adaptability, artistry. It also often requires understanding human nature, empathy for users, being able to learn and understand endless problem domains, an eye for the aesthetic. All of these things aren't generally required for traditional engineering disciplines.

Re: The shittiest project I ever worked on

#65
post #63

Earlier quoted context omitted.

Even then, the post adds no value to the discussion, so it deserves downvotes anyway. Its a great blog post, and I upvoted it, but its a bad comment, and I downvoted it.

Sure it does. It says that mjd is on HN, and reading this article's comments at least enough to post this, and that he has a sense of humor. I'm sure if someone so desired, they could ask a specific question regarding the story either in reply to the root comment or as a root comment and expect it may be seen by the author, and possibly get a reply.

I think the quality of the other responses to the parent indicates exactly how likely that is. A whole subtree full of gray comments.

Maybe I'm just getting old.

Re: The shittiest project I ever worked on

#66

Earlier quoted context omitted.

Sorry if it reduces self-esteem, but we (software developers) are not engineers. I've been brainwashed for many years by my brother, who is a Phd civil engineer, that professions that hijack the term engineer are kidding themselves. I know it sounds cool, and my current title is 'Senior Software Engineer', but it is all a scam.

It's kinda ironic, but my girlfriend's business school classmates (most of whom are electrical, mechanical, or chemical engineers) seem to think that software engineers are at the top of the engineering totem pole. Something about being the only engineering subdiscipline that's paid what they're worth. If it's a scam, it seems to be working.

As a former chemical engineer, I agree with your gf's classmates. In late 90s, I was working on an advanced chemical manufacturing process control project with a team of software developers. I found out they were getting paid twice as much as me and they were half as productive as me (they knew nothing about manufacturing, chemicals and process control) and I was twice as stressed as them. The best decision I made was to dump chemical industry for technology industry soon after ... Never regretted.

Re: The shittiest project I ever worked on

#67

Although it's a fun read, it's a classic example of diving into coding without giving a project it's due diligence. There's nothing that's derailed my projects more consistently when I started out as not understanding the user's needs. They'll never tell you what they want, only what they don't want after you deliver something. I think that's the key difference to an experienced dev/BA. One who can actually sit with…

> Although it's a fun read, it's a classic example of diving into coding without giving a project it's due diligence.

If everybody was so picky the size of the IT industry would diminish by 90%.

Re: The shittiest project I ever worked on

#68

> In 1995 I quit my regular job as senior web engineer You had the job title "senior web engineer" when the web was 4 years old. That's pretty cool.

I find it hard to believe. In 1995 people barely knew what the internet was. I was accessing the internet through Trumpet Winsock on Windows 3.11 and had a 14.4k modem. The idea that Time Warner already had a sophisticated Web division smells like BS to me. I would accept 1997 or 1998, but not 1995.

How old is 'big data' thing? Would you be surprised to see a 'senior big data engineer' title these days?

> The idea that Time Warner already had a sophisticated Web division smells like BS to me

the title 'senior' doesn't imply the division was sophisticated. If something smells like BS, doesn't mean it can't exist. There is a lot of BS around.

Re: The shittiest project I ever worked on

#69

Although it's a fun read, it's a classic example of diving into coding without giving a project it's due diligence. There's nothing that's derailed my projects more consistently when I started out as not understanding the user's needs. They'll never tell you what they want, only what they don't want after you deliver something. I think that's the key difference to an experienced dev/BA. One who can actually sit with…

Kind of agree with you and OP, so let me add to the discussion with the caveat that YMMV etc. Some of these points may overlap with comments by fellow HNers in these threads.

In any organization as a prospective customer, there are three forces at work that matter to a consultant: users, decision makers and finance folks. Ideally, the decision makers appoint a dedicated person (or team) who mediates users and finance guys to create a coherent road map for the system to be built. What tends to happen in practice is a combination of chance, human errors and conflicts in priorities.

To survive, we must understand ourselves as consultants, the terrain and the opposing forces (anything that prevents money getting deposited in the bank).

Consulting is a business => the individual consultant must shoulder quite a lot on himself:

* Advertising himself

* Finding work

* Meeting prospective customers

* Writing proposals

* Closing the deal

* Writing a contract

* Defining the scope of work

* Nailing what is to be done and what is to be avoided

* Constructing components of software

* (In worst cases) baby-sitting customer's devs / ops

* Testing his modules

* Getting money in his account

So, when we talk with customers, there is inherent pressure in closing the deal versus precisely defining everything. Icing on the cake: back of the mind, you might worry about milkman's bills and the birthday gifts to be brought for your kid's friends. Always have a good runway: six months seems optimum. Technically, even three months should suffice, but it is insufficient for the edge case when these three things hold true simultaneously:

* You've to walk away from a customer in the middle of a project, and

* Dry sales pipeline, and

* Unexpected crisis at the personal front: very close friend in need of money for surgery etc.

God be with you.

Now, back to the main track. The key is to first understand the priorities of stakeholders. The contradictions are easier to grasp once we put ourselves in the individual's shoes:

* [Convenience] The users want everything including the kitchen sink,

* [Accountability for the risk] They want it yesterday but won't commit to it on paper since you're in early sales stage,

* [Cost] The finance folks want stability and the most economical price,

* [Availability] The decision maker prefers to spend the least of her time to be spent on this activity, except when it's her pet project.

These roles may be played by different people or the same person.

Again, we don't have to agree, but acknowledge that things are meant to be imperfect. Most people are actually decent and rational. Now, somehow, the consultant must figure out a good path. To begin, he should have a good handle on:

* The industry in which the customer operates, e.g. BFSI, Energy, online marketplaces, food, fashion etc.

* The nature of the market: oligopoly, crowded, emerging et al.

* The level of Govt. regulation: HIPAA? PCI?

* The customer's position: among top tier, mid-size, small firms.

* Customer's customers: helps to track the wind.

* Standard pain areas in the market.

* How customer's competition and partners survive the pain, specifically the differences among the customer's approach and the competitor's ones.

* The financial health of the customer: if possible, try to talk with their existing suppliers in other arenas (e.g. the guy who supplies printer cartridges, the cleaning lady etc.).

Based on that, assuming we've landed a hot lead, say that we want to convert it to money. There will be a lot of conversations over the phone, e-mail, chats, face to face; what is to be left out of those conversations is really context sensitive. The important parts are:

* What problem we're going to solve for all stakeholders?

* How we're going to solve it?

* Communicating our approach and progress on a timely basis.

* Improving Vulcan skills: like money, expression of anger is a great servant but a terrible master.

I leave out the details on the development process, since it depends on the individual.

Here are a few things which worked for me marvellously in certain contexts and doomed in others:

* Setting expectations by explaining the cone of uncertainty in the estimation process. Always be prepared for some customers, who deliberately mislead you that they don't understand the mumbo-jumbo, projecting ignorance as a shield so that they can ruin you on payments. Mostly you should refuse such customers, unless you're in an extreme crisis on multiple fronts.

* Writing use cases for the modules / systems I was supposed to work. Most customers say that they don't want any time spent on "documentation," to which I reply that writing a document is not "typing" but "nailing the thoughts to deliver higher quality work."

* Creating mock ups using sketching tools (even Excel/LibreOffice can be good enough, if one is pressed too much for time) in the absence of UX designers on the team.

* Writing test cases before writing my code. Helps to ease the integration.

* Optimizing lazily: progressively refining the artefact (document / mock up / test / code).

* Knowing the expected value of each task: (amount of money * satisfaction * improvement in reputation) / (e-mail tennis * stakeholder's understanding of requirements * payment latency * time spent)

Finally, reducing it to just one sentence: be nice, believe in yourself and humanity, be multi-dimensional and please heed Guy Kawasaki's advice about reading voraciously and omnivorously.

Edit: formatting.

Re: The shittiest project I ever worked on

#70

> In 1995 I quit my regular job as senior web engineer You had the job title "senior web engineer" when the web was 4 years old. That's pretty cool.

I find it hard to believe. In 1995 people barely knew what the internet was. I was accessing the internet through Trumpet Winsock on Windows 3.11 and had a 14.4k modem. The idea that Time Warner already had a sophisticated Web division smells like BS to me. I would accept 1997 or 1998, but not 1995.

It's a rank indicator, not about experience. Also, fancy job titles are free employee motivation.
Post reply on HN