Software dev, tech, mind hacks and the occasional personal bit

Category: Design / Architecture Page 1 of 2

AI and Software Craftsmanship

I remember a decade or two ago, people were talking about the idea of software as a craft, with apprenticeships, journeymen etc. This always struck a chord with me. A lot of the time, software (for me) has been about talking with people, working out what they really need, and carefully and iteratively developing the UI, code and and infrastructure. Don’t get me wrong, there’s some Engineering as well, in designing the architectures, scalability, failover, backups, etc, as well as in every DB query and service call.

It’s been a good three decades where the coding itself was a craft. Object oriented (or functional) beauty, DRY, readability, good naming, etc were lofty goals and paid their own way in terms of software maintenance costs, extensibility and lifespan, and developers were rewarded highly for these skills. It’s been a good run, but I can only think this period is coming to an end.

With AI coding, the industry is in the throws of an industrial revolution of code – more volume, less care, factory style. Maybe this is not a bad thing, but it looks like the end of the age of coding craftsmanship. That being said, you get better results with an experienced developer at the helm of the coding machinery who understands things like modularity, encapsulation, interfaces, frameworks, on-going maintenance effort, security, etc.

Software development is by no means just coding. It encompasses talking with people to find out what they need, working out what to build, designing efficient humane user interfaces, designing the architecture and implementing the infrastructure, constant decisions and trade-offs, telling people about what you’ve built and getting them to use it, supporting the software and maintaining it over time. Most of these areas are still crafts that rely on the skills and experience of humans and not (yet? maybe ever?) well done by AIs.

I’ve always thought that being a generalist is the best course in software – being able to do a bit of everything from talking to people, to writing code and understanding the infrastructure and networking. I can only see this is ever more true with AI growing in its abilities. The wider the range of your skillset, the less risk a lot of it will be replaceable by AI.. and besides, it’s more fun to do a variety of different things.

So in conclusion, software development is not dead and replaced by AI. Though I feel the coding craftsmanship part of it is ending.

Web Fonts built into all browsers (for sans-serif)

The fonts built into modern browsers are varied – it is hard to avoid loading your own fonts. Arial is the rare exception – it is well supported across all old and modern browsers. It looks a little different between Windows and Mac / iOS especially as a larger bold heading. On Android, it is substituted by Roboto. On Linux variants, Arial will likely fall back to the sans-serif system font.

Verdana is also well supported but looks a bit odd in this day and age.

You could instead go with the system font on each platform (eg, San Francisco for Mac/iOS, Segoe UI for Windows, Roboto for Android, etc). However, this means that every platform will look a little different, especially for larger and heavier font styles. Personally I like San Francisco and Roboto (and they look fairly similar). However, I find Segoe UI in large and heavy looks quite different and unsuitable for a “serious” website. If you could use Roboto on Windows reliability, this approach would be better.. but Roboto is only included with Edge but not Chrome on Windows.

So basically, if you want a “serious” looking sans-serif font that is similar across platforms, then it’s either Arial OR it’s time to load your own font and take the performance penalty in return for the look and consistency across platforms.

Google Fonts is a good place to get a font to self host. You can then convert the downloaded ttf with woff2compress (also available on brew) to make it a smaller download and host as a woff2. The woff2 format is now supported by all modern browsers.

Talk: Winning at HTTPS

For the first time in a little while, I’ll be giving a talk at the Sydney ALT.NET user group:

HTTPS is ever more pervasive, with few sites still using plain HTTP. Want to be the guy or girl on the team who actually understands HTTPS, can set up certificates and fix issues that come up? Sometimes this is left to an ops team, but there are benefits and impacts that cannot be ignored in development.

James has migrated several sites from HTTP to HTTPS and has tips and tricks to share.

Tues 25 October from 6pm at ThoughtWorks Sydney office, Lvl8 51 Pitt St, Sydney.
RSVP on Meetup (for pizza and beer!)

You can find the slides from the night here.

Talk: Add a billion row data warehouse to your App.. with Redshift, sql and duct tape!

Come along to Sydney ALT.NET for a BIG data night.

I’ll be giving a talk on Redshift:

Started to hit the point where your transactional database is not the right place for running reporting queries and experimental data science? Keen to chuck in more data from web logs, CRMs, facebook, etc so you can start learning more about your users? Come along to Sydney ALT.NET on June 24th to see an easy way to do it with AWS Redshift, mapping SQL and some simple scripting duct tape.

We also have a co-presented talk on Azure’s Hadoop implementation, HD Insights and Power BI: The Power of the Elephant in the Microsoft Cloud given by Jibin Johnson and Simon Waight from the Azure User Group.

From 6pm at ThoughtWorks Sydney office Lvl8 51 Pitt St, 24 June 14.
Remember to get your free ticket. See you there!

nRake Microsoft Case Study

nRake is now the subject of a Microsoft case study. Check it out here:

UPDATE: Now on the Microsoft Case Study site.

ACS Alm Talk: Presentation Wrap Up & Slides

Thanks everyone who came along last night. It was a fun session, with a lot of lively discussion, especially around project management and software design. As mentioned during the talk, you might want to check out nRake for .NET builds and psDeploy for Powershell deployments. Here are the slides from the talk. If you have any more questions or areas to discuss, please feel free to drop me a line.

ACS Talk: The Ultimate ALM Environment (circa 2010)

I’ll be giving a presentation at an Australian Computer Society Special Interest Group on Wed 2 June, 6:30pm. More details here.

The abstract is:

Application Lifecycle Management (ALM) covers the whole software development lifecycle and associated processes including project management, business analysis, testing, build and deploy and development. Based on experiences in the field on projects with ThoughtWorks and consulting with other teams, I will describe what I consider to be the ultimate ALM environment, using an agile approach and techniques. This talk will cover goals, assessment criteria, practices, tools, and physical workspace design.

Hope to see you there!

Podcast from ALM Conference

At the ALM Conference, Richard interviewed me for a podcast on the Ultimate ALM Environment circa 2010 as well as a little on build and deployment automation. Check out the podcast on Talking Shop!

Australian ALM Conference, and slides from ‘The Ultimate ALM Environment circa 2010’

The inaugural Australian ALM Conference has been an interesting 2 days. The first day had a number of insightful talks, especially interesting to hear Sam Guckenheimer on how Microsoft has been reshaping their internal development practices into a more agile model. Today, I enjoyed Richard‘s agile adoption talk (hear hear!) and the other highlight was the last presentation of the day, explaining what’s gone into the design of the new Windows 7 Mobile OS (though some things still seem under wraps). Also a pleasure to catch up with some old friends at the conference.

Conference organisation was very good (thanks to Anthony Borton and his team). The focus was very Microsoft centric, but next year, the plans are for a much wider variety of content. Lunar Park was a cosy conference venue and fun to go outside during the breaks and see kids screaming on rides and the sun shining on the bridge and harbour.

My presentation was 8.30am this morning (aargh!) but despite the early hour, there was a reasonable turn out and quite a few interested people asking questions. The plan was to co-present with Jason Yip, but he was called away to Perth so I presented solo. Unlike most other presentations at the conference, Visual Studio and TFS were barely mentioned. Instead I focused on current problems in each area of ALM, coming up with a criteria to assess this area, and what we usually do on projects to meet this criteria – eg, story walls, story maps, automated build and deploy etc. You can find the Powerpoint slides here. The slides are promises for a conversation (ie, mainly images with some notes), so don’t hesitate to contact me if you want to chat.

Also, thanks Richard for this photo from the presentation:

James Crisp presenting ‘The Ultimate ALM Environment circa 2010′

Talk: The ultimate (circa 2010) ALM environment

Jason Yip and I will be presenting on “The ultimate (circa 2010) ALM environment” at the Australian ALM Conference on 14 April. We’ll be talking about using agile methods and tools for ALM, rather than a vendor suite.

Here’s the blurb:

Based on our experiences in the field on projects and consulting with other teams, we will describe what we consider to be the ultimate development environment (which is not just about vendor tools). This session will discuss principles, practices, tools, and physical workspace design.

Hope to see you there!

Page 1 of 2

Powered by WordPress & Theme by Anders Norén