Geeks With Blogs

News Please visit me at my new blog!!

profile for Aligned at Stack Overflow, Q&A for professional and enthusiast programmers
"free in Christ Jesus from the law of sin and death." Romans 8:2 (ESV) Check out the Falling Plates video on YouTube.
more about the Gospel
And then listen to Francis Chan speaking at LifeLight in SD.



Programming and Learning from SD

Since I started my career as a Software Developer about 7 years ago, I’ve realized that perception of what a valuable use of my time while at work has changed. Scott Hanselman blogged his productivity tips which got me thinking about this more.

Meetings

I have many times grumbled when a new meeting pops up in Outlook. I have been a part of a lot of time wasting meetings, but there are several that are very useful. Daily stand ups or Scrums are essential to keep everyone on the same page. Retrospectives regularly help to identify areas that we can improve on and action items to make it happen. Sprint planning and breaking down tasks can be very productive as a team, gets everyone on the same page, and helps define acceptance criteria and expected behaviors before coding starts. We involve our QA team as well. Catching one missed scenario or getting a un-thought of perspective avoids a lot of waste further on in the project (see “Discussing Executable Acceptance Criteria with the Team”).

Testing

Manual testing is monotonous boring and takes a long time. Especially for developers. How many regression issues have you missed lately? Automate it using BDD and Unit Tests and Automated UI Tests.

Discussing Executable Acceptance Criteria with the Team

Using BDD language (Given x, When this happens, Then this should happen) and working as a team (customer/product owner, testing team, analyst, developers) to define them will help you think of more scenarios, require less back and forth asking what is this supposed to do, less waste when you develop the wrong thing. We can’t know everything up front, but need something to work from. By the end of testing, these can be your specifications and documentation for your product. If you automate it, you don’t have to keep manually re-running those test case.

You’ll also be able to know you are done with a feature and everyone can understand and agree to it.

Learning

I used to be unsure if it was ok to spend company time going through my RSS reader and keeping up what’s new. This time should be limited, but keeping up with HTML5 weekly and JavaScript Weekly email magazines and looking at relevant issues has helped me think about new approaches, talk about and give ideas to the teams I’m working on. Pluralsight or YouTube or Channel9 conference learning videos during lunch with a group of people has paid massive dividends over the years.

Sharing what you’re learned

It’s hard to pull yourself away from a task, but it’s always worth the time to help out a team member or show them something new. As you teammates get better and more knowledgeable, you’ll benefit and have more people to learn from.

Taking a break

Taking a walk outside or around the building can be well worth the time and save your eyes. Have you spent more than an hour on the same problem? Get away from the keyboard and monitor and think about it!

Do less multi-tasking, write down to-dos to remember and to reduce your Cognitive Load (this is good to think about for User experience design as well).

 

Pluralsight's post on being productive mentions having a “zone time”. The Pomodoro technique (I use the Chrome tool Moosti) sometimes help me keep in the zone and keeps me from distracting myself with email, news, blogs, etc…

If you need help seeing where you’re spending your time, check out the CodeALike extension for Visual Studio. I also use Elapser (Silverlight) written by my friend David to track my time.

Conclusion

Meetings can be a waste of time, but not all the meeting time is. Writing code is not the only time that is productive for a software developer. However, as a developer writing code is the most productive thing you can be doing. After all the people writing the check need working, quality software that helps them achieve their objectives.

Posted on Thursday, April 3, 2014 11:57 AM Productivity , Unit Testing , UI Automated Testing | Back to top


Comments on this post: Thinking about Productive Work as a Software Developer

# re: Thinking about Productive Work as a Software Developer
Requesting Gravatar...
<p>Another tool for seeing where your coding time goes:</p>

<p>WakaTime.com</p>
Left by WakaTime on Oct 17, 2017 1:01 AM

Your comment:
 (will show your gravatar)


Copyright © Aligned | Powered by: GeeksWithBlogs.net