DZone
Java Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Java Zone > Software Development in Troubled Times

Software Development in Troubled Times

John Ferguson Smart user avatar by
John Ferguson Smart
·
Oct. 22, 08 · Java Zone · Interview
Like (0)
Save
Tweet
6.76K Views

Join the DZone community and get the full member experience.

Join For Free

Nowadays, more than ever, developers need to be productive. Ultra-productive. Organizations need to optimize the added value they get out of their development projects, and should be actively looking for ways to do it.

Of course, you can adopt the traditional approach - work harder. 16H work-days, no weekends, to smooth over unforeseen complications in your project. But wouldn't be better just to work a little smarter instead?

The development process is one area where many organizations stand to gain a lot by investing relatively little effort into introducing some new practices, and improving existing ones. There are generally many areas where things can be improved, but here are a few simple tips to streamline your development process, just to get you started.

Rethink your CI notification strategy

By far the most common CI notification mechanism is ye old mail server. However, are you sure that email is the most suited system for the task at hand? Try using instant messaging rather than (or as well as) email for your CI notifications. Remember, email tends to be a distraction - you will be much more productive if you only consult your emails every couple of hours or so. Email was Or, at least for build failures - people need to know about this fast.

Aggressively optimize your build process.

Build metrics are a great way to monitor the health of your build process. Why has the code coverage been dropping off over the last 3 weeks? Why is the number of unit tests not increasing at a regular rate? And why did that build take so long to fix? How long do your unit tests take to run - and are there any that are taking too long? This sort of information is not a luxury - it should play a key role in the ongoing task of keeping your build process fine tuned. Modern CI tools such as Hudson, Bamboo and TeamCity display ample statistics about your builds. Bamboo in particular does a great job in this respect. Whatever CI tool you are using, learn how to get the most out of its reporting features, and use them to identify and fix trouble spots in your development process. And if your CI tool doesn't give you all the information you require? Then find one that does!

Streamline your release process

During the release process, there are many book-keeping tasks such as preparing release notes, identifying which issues have been resolved in a given release, tagging versions and so forth. These are an important part of the software life cycle, and if you neglect them, the QA guys and the end user may become irate. However, automate these tasks as much as possible. Many CI tools integrate nicely with the principle issue tracking systems such as JIRA and Trac, so that you can view what issues where fixed in a particular build based on the version control logs. If you are using Eclipse, Mylyn can help you group work on issues into logical change sets, and proposes a standard template listing the resolved (or just impacted) issues for a particular piece of work. Or you could simply use Subversion hooks to ensure that each Subversion commit referred to a valid issue number.

These are just a few ideas - there are plenty more. The bottom line is - you don't have to tolerate a sub-optimal development process - rather, get in there and do something about it. Good luck!

From http://weblogs.java.net/blog/johnsmart

Software development CI/CD unit test

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Datafaker: An Alternative to Using Production Data
  • How to Determine if Microservices Architecture Is Right for Your Business
  • 5 Steps to Strengthen API Security
  • Java: Why Core-to-Core Latency Matters

Comments

Java Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo