RSS feed [root] /software_engineering /weblog



title search:


Thu Nov 09 11:20:56 GMT 2023


(google search) (amazon search)
download zip of files only

Sat Feb 29 12:50:29 GMT 2020 From /weblog/software_engineering


Release at fix time or release at fix features?

Launch early and learn from it, but will we lose customer because of it?? -

A method to determine which label to deploy, look a bit obvious -[..]so-er-which-build-label-do-i-deploy.html

A sample procedure of zero downtime deployment -[..]

Knightmare: A DevOps Cautionary Tale -[..]/17/knightmare-a-devops-cautionary-tale/

(google search) (amazon search)

Sun Jan 05 12:05:34 GMT 2020 From /weblog/software_engineering/testing


WatiN, alternative of selenium -[..]2/how-to-unit-test-watin-mbunit-and.html another person saying this is better -

And someone work hard on make FITness and Selenium work together, more information can be found at[..]m/2006/09/fitnesse-selenium-wrapper.html[..]ng-web-tests-with-fitnesse-and-selenium/

A story of how to overcome various issues of applying selenium in acceptance testing -[..]07/08/selenium_is_the_pain_worth_it.html[..]9/webtest-vs-selenium-webtest-wins-13-5/ Why the functional test is important

How many resources should put in a functional test?

Kent discuss about how to balance low level unit test and high-level functional test -

(google search) (amazon search)

Tue Nov 12 12:09:43 GMT 2019 From /weblog/software_engineering/team


Recently I help the company offshore some work to CN developers, many difficulty I've encounter, most difficult one is it is hard to share the vision and big picture to CN developers.

This article mention a few good notes , the one I think I am lacking is having short meeting with them often. I will see if we can have video conferencing so that we are easier to meet.

The other tips here -[..]_id=45367&asrc=EM_NLN_1439070&uid=703565 but I think the tips list is too long and probably only apply to large enterprise

Tips of communication with offshore team -[..]on-in-software-development-projects.html[..]ur-remote-team-and-then-getting-it-right

(google search) (amazon search)

Thu Aug 22 00:00:00 GMT 2019 From /weblog/software_engineering/testing


The evil test:

1. Evil tests create a lock on how the code is implemented.
2. Cause duplication.
3. Builds uncertainty on the tests (red is meaningless).
4. Decrease productivity.
5. Discourage change.

use thread in junit -[..]blog/2007/11/05/false-positives-in-junit

Don't try to test everything -[..]ay?entry=unit_testing_avoiding_extremism

Why TDD fail? Because test is too complicate to write - ( I agree it a lot )

Hard to test something? Unreadable tests? Slow running tests? It takes too long to write a test? Some solution suggested -[..]/last-d-in-tdd-means-more-than-just.html

Comment out test so that the code compile -

A list of TDD antipattern -

And the long discussion using random in unittest -[..]rivendevelopment/message/20458?var=1&l=1
Here is an example of using random in unittest, it actually same for every new instance! -

Test abstraction smells -[..]com/2011/11/test-abstraction-smells.html

Basically, we should keep it simple, and driven the development rather than post test -[..]stteam/Posts/13-01-24/top-5-tdd-mistakes

A good list of anti-pattern -[..]2014/05/06/getting-unit-testing-to-fail/
Test rely on shell script return is difficult to maintain, say the script running at background can cause problem -[..]m/2014/01/10/another-shell-test-pitfall/

Six Things That Go Wrong With Discussions About Testing -

(google search) (amazon search)

Mon Apr 29 02:54:01 GMT 2019 From /weblog/software_engineering/testing


Customer attitude will affect how the software engineering workflow a lot:[..]gprog/message/7420?threaded=1&var=1&p=24

Do you think this piece of code are too simple to have test case to cover? read this -[..]t-the-software-craftsmanship-conference/

Related blog, finding the common between taking photo and software testing -[..]hotographic-testing-lessons-learned.html . However, there is one big difference, it is harder to define a good photo than bug feel software

If it is good to put developer as tester? -[..].com/2011/03/programmers-as-testers.html

In fact I am kind of agree about this article, but maybe I just not TDD hard enough -[..]ectural-meltdown-around-iteration-three/

Tooling, Insight and Humility -[..]reasons-for-testers-to-learn-to-program/

Insufficient Requirements is not an excuse -[..]-blog-posts-9-insufficient-requirements/

What is the meaning of working -[..]14/03/very-short-blog-posts-14-it-works/

How Much is Enough? Testing as Story-Telling -

(google search) (amazon search)

Tue Apr 09 10:38:55 GMT 2019 From /weblog/software_engineering/testing


Yet other discussion of Stubs, Fakes, and Mock Objects -

While reviewing this article, Marty Andrews pointed out an important insight: there are two ways to use a mock object, either as a testing technique or as a design technique, and the intended use helps shape the available choices.

Someone post some arguement that using mock probably a bad idea , which look like a endless arguement... -[..]xRuiz?entry=mocks_for_concrete_class_can

Alberto Savoia on Testing the Untestable, raise a point that mocking make testing more portable, it probably true, but database setup may be not that difficult to port. -[..]ut-isolation-but-about-responsibilities/[..]ing-the-invasion-of-dots-and-parentheses

Fakes should have their own tests -[..]/testing-on-toilet-fake-your-way-to.html

Again, other post on pros and cons for difference approach -

(google search) (amazon search)

Thu Jul 26 15:47:33 GMT 2018 From /weblog/software_engineering


Here is one way of how people estimate percent of completion -

I believe the general practice in my company is to take your estimate and triple it. Noone EVER complains that a project was completed too quickly. -[..]iscussTopicParent=15151&ixDiscussGroup=3

McConnell: 25% isn't necessarily a bad number. What's bad about it is that the average project is something like 100% late and 100% over budget at the time it's shut down. With better development approaches, a lot of those projects would get shut down when they've used 20% of their budgets rather than 200% of their budgets.

Schedule chicken , someone leave the responsiblity to other sliencely -[..]ion=edetail&ObjectType=COL&ObjectId=7923

If you need to deliver software in 9 months, you could make a plan to deliver software in 9 months and hope it works. Or you could start delivering software every week. Maybe in the first week you aren't so good at it but after four weeks you and the rest of your team will be better. I call it the reduce risk by practicing technique. I can't believe how many people line up against me on this, even quality experts. - Ward Cunningham

Estimate via experience -[..]mating-software-feature-development.html

Explain what is Velocity in scrum -[..]2008/01/understanding-your-velocity.html

Concern about estimation -

Test Effort Estimation -[..]mation_approch-bid-00oQI1TW93593159.html

Reducing focus on estimation, I think it is good move, as estimate always inaccurate -[..]se-for-reducing-focus-on-estimation.html[..]ng-budget-instead-of-estimates-in-agile/

Discussion about noestimates-software-contractors -[..]2016/01/noestimates-software-contractors[..]2015/12/noestimates-software-contractors

(google search) (amazon search)

Wed Jun 06 03:59:50 GMT 2018 From /weblog/software_engineering/project

project management

Linus share about project management, most importance is people, and also discuss about tools, how to collabrate people and how to delegate -[..]Software-Development-Management/ba-p/440

Only the programmer who is going to write the code can schedule it. Any system where management writes a schedule and hands it off to programmers is doomed to fail. Only the programmer who is going to do the work can figure out what steps they will need to take to implement that feature. -

Never, ever let managers tell programmers to reduce an estimate. Many rookie software managers think that they can "motivate" their programmers to work faster by giving them nice, "tight" (unrealistically short) schedules. I think this kind of motivation is brain-dead. -

Micromanagement or Macromanagement?

But, unfortunately, as a general rule, Project Managers have no training. Even if they do have training in the form of an MBA, MBA education is impractical and useless; the academic community has completely failed us in this respect. Furthermore, Project Managers are more often based on personal friendships and company politics; they are rarely based on management skill.
And, finally, most managers do not acknowledge that management is a skill that they must study and learn so they don't study or learn it.[..]DiscussTopicParent=8469&ixDiscussGroup=5

An explanation of agile, I think it is more about project management -

Some common problem of software project management -[..]thomas/[..]ou-know-your-project-is-in-trouble-when/[..]roduct-management-vs-project-management/

Brief description of thoughtworks codejam -

Listen first. Measure later.[..]

Paper of burn up and burn down - Per my understanding, we can say burn down is push by management where DEV work as task consumer and completing per define tasks within limited time; where burn up work in the other way round.

Why rewrite usually bad -[..]astianKuebeck/entry/why_version_2_0_will

Why need to manage user/client -

The blog list several software projects fail case study -

The law of late project -[..]et/2009/11/the-law-of-late-projects.html

Friendship, what make one big team working -

On an Agile Team, a person is removed from the team by assigning them work. -[..]e-between-agile-teams-and-project-teamd/

Some say an method "Impact Mapping" is very useful -[..]com/2014/07/15/complexity-is-the-excuse/

Transfer project to products -

Frequent planning -[..]can-lead-to-short-and-frequent-planning/

(google search) (amazon search)

Sat Feb 24 16:23:55 GMT 2018 From /weblog/software_engineering/team


No problem is a big problem, So we want to actually encourage conflict in the sense of encouraging openness about disagreement, which in turn suggests that it is essential that we are prepared to resolve conflict -[..]0/conflict-will-and-should-occur-be.html

Should DEV work in prod? -[..]developers-working-in-production-of.html

(google search) (amazon search)

Wed Dec 06 06:39:32 GMT 2017 From /weblog/software_engineering/team


Nice story and nice photo, really a master skill to drive the team to have same vision -

Team Decisions: Consensus versus Consent, closely related to team vision establishing -

(google search) (amazon search)

Thu Mar 30 06:47:41 GMT 2017 From /weblog/software_engineering/testing

test data

Suggestion of how to manage the test datas -[..]citcon-melbourne-2008-managing-test.html

Difference Pattern of managing test datas -[..]damentals-of-data-testing-setup-and.html

How to get the data feed and design automated test trading system -[..]m/2011/02/16/trading-system-testability/

False assumption about time -[..]alsehoods-programmers-believe-about-time

Create your own clock -[..]3/12/the-virtual-clock-test-pattern.html

Just change the return of Calendar -

Discussion about creating test data -[..]est-data-builders-and-object-mother.html[..]r-data-access-code-unit-tests-are-waste/

Dummy, fake, stub, spy and mock -[..]

Generation of test data -[..]/tools/open-source-test-data-generators/

Using test container, and compare it with other test data solution -[..]28/database-testing-with-testcontainers/

(google search) (amazon search)

Fri Jan 06 14:08:55 GMT 2017 From /weblog/software_engineering/team


Discussion toolkit -[..]YCOLUMN&ObjectId=12875&objecttype=ARTCOL

Other tips -

Appreciation inquiry, a communication tool helping adopting new thing -

A lot of engineer will silence when under stress, how do you communicate with them that time? Here are some suggestions -[..]048&elq=1C1DC5420DC8451CB08AEBA44D4F6BC7

There are five dangerous faults, which may effect to a software engineer:[..]/the-five-faults-of-a-software-engineer/

Benefit of whiteboard over software, communication! -

How to communicate with difference type of learners
Active versus reflective learners: "Active learners tend to retain and understand information best by doing something active with it--discussing or applying it or explaining it to others. Reflective learners prefer to think about it quietly first."
Sensing versus intuitive learners: "Sensors often like solving problems by well-established methods and dislike complications and surprises; intuitors like innovation and dislike repetition."
Visual versus verbal learners: "Visual learners remember best what they see--pictures, diagrams, flow charts, time lines, films, and demonstrations. Verbal learners get more out of words--written and spoken explanations. Everyone learns more when information is presented both visually and verbally."
Sequential versus global learners: "Sequential learners tend to gain understanding in linear steps, with each step following logically from the previous one. Global learners tend to learn in large jumps, absorbing material almost randomly without seeing connections, and then suddenly 'getting it.'"[..]/03/rich-communication-in-real-life.html

How to handle tough discussion -[..]iscussing-the-undiscussable-book-review/

Good message structure underlies all forms of effective workplace communication -[..]ood-message-structure-underlies-all.html

A methodology to test the feeling of the team -[..]2/12/web-discussions-flat-by-design.html

It is the most important skill for programmer -[..]/the-most-important-skill-of-programmer/ and also there are pointer of how to improve your communication skill

Slack is good? -[..]per-day-on-slack-29f8b08c0d82#.l27wrcft0

(google search) (amazon search)

Mon Nov 28 16:10:37 GMT 2016 From /weblog/software_engineering


“Introduction of Lean Project Management” -

Applying Kanban -[..]s/applying-kanban-to-it-processes-part-2[..]-and-kanban-for-it-operation-kanban.html

Deming’s 14 Points, obvious and theoric, but still a good reading -[..]ng-lean-thinking-to-software-development

Free Online Kanban Tools -

(google search) (amazon search)

Tue Nov 15 08:56:18 GMT 2016 From /weblog/software_engineering/testing


Being proactive! -[..]to-be-first-class-citizen-as-tester.html

Well, of course it say yes...... -[..]6/27/software-testers-need-learn-coding/

(google search) (amazon search)

Tue May 10 15:07:56 GMT 2016 From /weblog/software_engineering


How to produce damn good software -

Recommendation of managing bugs -

Collecion of link about software engineering -[..]01/selection-of-successful-software.html

The Big Ball of Mud and Other Architectural Disasters -

1. – Have a clear development process.
2. – Understand the vision and goals of the project.
3. – Use iterations.
4. – Transparency.
5. – Commitment.
6. – Leadership
7. – Customer focus.[..]echnical-tips-to-deliver-great-software/

If it aint broke, don't fix it; vs continue improvement - , one good question asked is, what mean broken? Bug? or Quality? What is Quality?

The Mythical Man-Month Revisited -

Story from QuickBooks -[..]rticleId=240003694&siteSectionName=tools

How long did the source code live? -[..].uk/2016/02/24/longevity-of-source-code/[..]arn-from-real-examples-how-to-avoid-bugs

(google search) (amazon search)

Thu Feb 18 03:12:52 GMT 2016 From /weblog/software_engineering


Examples of stories -

Introduction to story point -[..]in/2011/03/questioning-story-points.html

Imperative vs Declarative Scenarios in User Stories -[..]clarative-scenarios-in-user-stories.html

Turn good story to great
1. Get your story right
2. The unwritten rule of what goes inside
3. Choose your words carefully
4. Use acronyms sparingly
5. Convention over OVER-complication


Checklist for user story -[..]hecklist-for-effective-user-stories.html

See the picture in your backlog. -[..]012/03/how-to-create-user-story-map.html

INVEST mnemonic to describe the characteristics of good stories:

Independent: the stories can be delivered in any order
Negotiable: the details of what's in the story are co-created by the programmers and customer during development.
Valuable: the functionality is seen as valuable by the customers or users of the software.
Estimable: the programmers can come up with a reasonable estimate for building the story
Small: stories should be built in a small amount of time, usually a matter of person-days. Certainly you should be able to build several stories within one iteration.
Testable: you should be able to write tests to verify the software for this story works correctly.

Story Mania, User Incognito, Disastrous Details, Story Handoff, Criteria Crisis -[..]er-stories/5-common-user-story-mistakes/

Define Motivations, Don't Define Implementation -[..]replacing-user-story-with-job-story.html

Why large team is not suitable to use user story to collect requirement -[..]/07/user-stories-dont-work-for-most.html

How to split stories -[..]tting-user-stories-the-hamburger-method/

Visually mapping story to backlog -[..]ping-visual-way-building-product-backlog

(google search) (amazon search)

Thu Feb 18 03:12:10 GMT 2016 From /weblog/software_engineering/testing


UnitTest DB, check if proper index applied -[..]og/2012/09/test-driving-database-indexes[..]an-integration-testing-with-junit-rules/[..]ust-say-no-to-more-end-to-end-tests.html

(google search) (amazon search)

Thu Dec 03 15:56:46 GMT 2015 From /weblog/software_engineering


Developers working in Production. Of course! Maybe, sometimes. What, are you nuts? -[..]developers-working-in-production-of.html

(google search) (amazon search)

Thu Oct 15 07:28:11 GMT 2015 From /weblog/software_engineering/project


Semantic Versioning 2.0.0 -

(google search) (amazon search)

Thu Jun 11 03:41:22 GMT 2015 From /weblog/software_engineering


The crucial bridge between theory and practice is called execution -[..]l/2012/2/22/importance-of-execution.html

Analysis for Continuous Delivery: Five Core Practices

1. Start with a minimum viable product (MVP).
2. Measure the value of your features.
3. Perform just enough analysis up front.
4. Do less.
5. Include feature toggles in your stories.

Discussion about various issue when thing change -[..]ankensystems-half-strangled-zombies.html[..]-patterns-in-development-and-operations/[..]/06/08/deadly-sins-software-project.html

(google search) (amazon search)

Thu Apr 09 04:10:12 GMT 2015 From /weblog/software_engineering/testing

GUI test

How to write unit test for RCP application in eclipse -

and functional robot tester -[..]ame/2007/12/18/announcing-swtbot-01.html

A lot of links of tools -

CI for eclipse RCP -

Don’t write E2E tests instead of UI tests. Instead write unit tests and integration tests beside the UI tests.
Hermetic tests are the way to go.
Use dependency injection while designing your app.
Build your application into small libraries/modules, and test each one in isolation. You can then have a few integration tests to verify integration between components is correct .
Componentized UI tests have proven to be much faster than E2E and 99%+ stable. Fast and stable tests have proven to drastically improve developer productivity.

(google search) (amazon search)

Thu Feb 26 08:04:04 GMT 2015 From /weblog/software_engineering


Practicing refactoring -[..]ticles/refactoring-external-service.html

One new refactoring for making interface change -

(google search) (amazon search)

Mon Jul 14 08:25:03 GMT 2014 From /weblog/software_engineering/testing


Automated deployment test on VM -[..]tion-using-docker-maven-and-jenkins.html

(google search) (amazon search)

Thu Jul 10 02:51:51 GMT 2014 From /weblog/software_engineering


Activity map -[..]rogress-toward-delivering-customer-value

(google search) (amazon search)

Thu Jul 10 02:38:17 GMT 2014 From /weblog/software_engineering/testing


Create a thread-pool to execution concurrency -[..]how-to-find-a-concurrency-bug-with-java/[..]com/2009/10/14/unit-testing-concurrency/[..]sting-multi-threaded-code-with-easymock/

Discussion about a tool that google used to test data racing -[..]adsanitizer-slaughtering-data-races.html

(google search) (amazon search)