Back to all stories
TCI Software Developers advance skills and knowledge at MADExpo
July 05, 2011
What is MADExpo?
The latter part of last week part of our software team attended the Mid-Atlantic Developer's Expo in Hampton, VA. The event was devoted to covering a variety of software and web development topics such as .NET, SharePoint, and mobile web technologies as well as more "soft skill" topics such as tips for creating presentations, consulting considerations, and user experience and design for different platforms. One of our developers has provided a summary of some of the takeaways from the expo.
MADExpo featured several sessions about mobile development. Many of them focused on developing for mobile devices in the .NET environment. These sessions were extremely helpful in identifying what it takes to develop a mobile application for iPhone, iPad, and Android devices using .NET, which our software development team has the most experience using. The knowledge we gained from these sessions will allow us to move into a broader market with the skills we already have meaning less time and money to learn new technology to be able to develop for these popular platforms. However, because .NET is not native to Android or iOS devices additional software will be required in order to actually get any application developed in this environment packaged in such a way that these devices can run it. .NET is native to Windows phone, however, which is also an up and coming market.
There was also a lot of emphasis on HTML5, which is the latest and increasingly popular mode of developing for the web. HTML5 allows you to achieve a rich user experience and create websites or applications that look and feel native to the user of any mobile device without actually having to develop in the native language. Learning about HTML5 was beneficial because most of our developers have a working knowledge of HTML so the learning curve to HTML5 is not very steep. HTML5 seems like an appropriate choice for converting many of the handbooks we have in print format into an electronic version for mobile devices such as the iPad or other tablets. HTML5 is probably the most versatile platform for developing mobile applications because it runs in the device's browser rather than as an actual application, but it does have some limitations that prevent it from being as seamlessly integrated into the device.
There were also several sessions that explored important considerations for designing interfaces and user experience for mobile devices and how that differs from desktop applications. The knowledge we gained from these sessions allows us to ensure that applications we develop for mobile devices will be user friendly, interactive, and visually appealing.
So we now have much of the very basic background knowledge to get started building mobile applications either using .NET or HTML5 for a variety of devices.
Thanks to @chrislove @toddanglin and @ambroselittle for your insights.
There were also several sessions that presented an interesting perspective on some of our "soft skills" such as communication and project management.
One in particular, "Bullets Kill: A presenter's guide to better slides" gave a lot of great information about how to build engaging presentations. The presentation itself was a great example of this. The presenter emphasized that bullets are often misused in presentations and most of the time can likely be eliminated entirely in favor of an image, a sentence, or even just a couple words. The presentation should be created for the benefit of the audience rather than the speaker. It is not a script, it is intended to help the audience understand what the presenter is saying. It should convey only the bare minimum to capture the idea behind the presenter's explanation. If there is too much text, the audience knows what is coming, reads the slide faster than the presenter can explain it, and then attention is lost and usually never regained.
This session was very helpful in rethinking the way that presentations are designed. He took a very minimalistic approach but made the presentation visually engaging with only hints of what he was talking about in order to maintain the audience's attention. I believe this is an important skill that should be communicated to all professionals. Half the battle of giving a presentation is keeping the audience's attention and these techniques really illustrated how to do that.
Finally, he emphasized the importance of rehearsing and reducing. You should rehearse the presentation enough to be able to give your presentation without a PowerPoint at all. You never know when there will be a technology fail and inevitably its going to happen. Reducing is all about continually eliminating bullets.
Thanks to @jayharris for your insights on this topic.
Another particularly helpful session about "soft skills" was Agile Development Inside and Out. This session took a look at the software development process that we use and had some very useful tips about how to improve it and get the most out of an iteration.
It was particularly helpful in the discussion of requirements development and generating scenarios. There was also a lot of discussion about how the team should function as a whole while keeping in mind the roles of individuals.
It also exposed some weaknesses in our process such as that we have a tendency to plan too much into an iteration and it ends up getting pushed off to the next one, which was cited as "evil" by the presenter. However, I believe this is difficult to achieve considering we have a fixed schedule and cost and its assessment as "evil" depends on the project context. A possible solution cited was to have the customer prioritize the requirements 1 - n so that cost and schedule are fixed, but scope is not. When we hit the end of the schedule we have provided 275 out of the 405 requirements, but because they have been prioritized there is less risk of project failure.
We should also work more toward letting the real users of the system test it out in a casual manner. This is important to project success and user satisfaction because the user has ownership as well so when it comes to the end of the project there aren't any surprises.
Co-locating was also a major weakness because the entire time is not located and working in the same area.
We were ahead of the game in some areas such as test driven development and pair programming, which many others attending the session weren't practicing.
There was an emphasis on transparency and adapting your course as you go. The key take away was "setting attainable goals."
Thanks Phil Japiske (@skimedic) for your insights.
In the end
Overall the conference was a lot of fun and I think as a team we gained a lot of knowledge in some up and coming areas that will allow us to drive TCI successfully into new markets while sharping our skills with practices we already use.
Web Development ,
Software Engineering ,